Boinc Scheduler: Unterschied zwischen den Versionen

Aus Planet 3DNow! Distributed Computing Wiki
Zur Navigation springen Zur Suche springen
Zeile 43: Zeile 43:
 
Beispiel:
 
Beispiel:
 
  Message from server: No work sent
 
  Message from server: No work sent
  (won't finish in time) Computer on 50% of time, BOINC on 25% of that, this project gets 20.0% of that
+
  (won't finish in time) Computer on 50% of time, BOINC on 25% of that, this project gets 20% of that
 
  No work from project
 
  No work from project
 
Der Server sagt damit, das der PC 50% der Zeit an ist, 25% davon Boinc rechnen darf und das Projekt von dieser Zeit 20% nur bekommt.
 
Der Server sagt damit, das der PC 50% der Zeit an ist, 25% davon Boinc rechnen darf und das Projekt von dieser Zeit 20% nur bekommt.

Version vom 27. Februar 2009, 13:40 Uhr

Der Boinc Scheduler ist zuständig zum Abarbeiten der Projekte gemäß der eingestellten Ressourcen Anteile.

Ressourcenanteil

Diese können von 1% bis 1000% eingestellt werden, stellen jedoch keine echten % Anteile dar. Die Summe der eingestellten Ressourcen aller Projekte entspricht dann dem Nenner, die Ressource des Projekts dem Zähler. Beispiel:

Projekt A ist auf 100% gesetzt; Projekt B ist auf 50% gesetzt; Projekt C ist auf 250% gesetzt -> A+B+C = 400

Projekt A bekommt 100/400 = 25%; Projekt B bekommt 50/400 = 12,5%; Projekt C bekommt 250/400 = 62,5%

Ohne die zusätzlichen Faktoren bedeutet diese, das Projekt C 2,5x mehr gerechnet wird als Projekt A, welches jedoch 2x mehr als Projekt B gerechnet wird.

Boinc Zeit Statistik

Boinc speichert in der client_state.xml unter dem abschnitt <time_stats> den Anteil in denen Boinc gestartet und aktiv ist.

<time_stats>
 <on_frac>0.XXX</on_frac>
 <active_frac>0.XXX</active_frac>
</time_stats>

Der Wert <on_frac> ist der Zeitanteil seit dem Boinc installiert wurde im Verhältnis zur Laufzeit des Boinc Clients, unabhängig davon ob er Berechnungen durchführt oder angehalten ist, sprich pausiert.

Beispiel: Boinc wurde vor genau 14 Tagen (14x24h) installiert, in dieser Zeit wurde der PC mit Boinc als Service Installation (Boinc startet automatisch mit dem OS) immer 8h lang eingeschaltet (10x8h). Dies ergibt 80 / 336 = <on_frac>0.238095238</on_frac> = ~24% Laufzeit des Boinc Clients

Der Wert <active_frac> ist der Zeitanteil seit dem Boinc installiert wurde im Verhältnis zur aktiven Laufzeit des Boinc Clients, also die Zeit in der WUs abgearbeitet/berechnet werden.

Beispiel: Boinc wurde vor genau 14 Tagen (14x24h) installiert, in dieser Zeit wurde der PC mit Boinc als Service Installation (Boinc startet automatisch mit dem OS) immer 8h lang eingeschaltet und davon durfte 4h am Tag der Boinc Client seine Berechnungen durch führen. Dies ergibt 40 / 336 = <active_frac>0.119047619</active_frac> = ~12% aktive Laufzeit des Boinc Clients, in der Berechnungen durchgeführt wurden.

STD und LTD Wert

Boinc speichert in der client_state.xml unter dem abschnitt <project> den jeweiligen Anteil in denen Boinc die Projekte rechnen lässt / aktiv ist.

<project>
 <short_term_debt>XXX</short_term_debt>
 <long_term_debt>XXX</long_term_debt>
</project>

Der Wert <short_term_debt>, übersetzbar mit "Kurzzeit Schuld" liegt im Bereich von 0-86400 (Sekunden/Tag). Dieser Werte soll die Abarbeitung der WUs im Zeitraum <24h gewährleisten. Beim nächsten Umschalten gemäß der Ressourcenaufteilung wird das Projekt mit dem höchsten <short_term_debt> Wert bevorzugt. Es zeigt sozusagen die Schuld des Clients bei den jeweiligen Projekt/24h an. Ist der Wert 0 hat Boinc seine Arbeit, gemäß der Ressorcen einstellung geleistet.

Der Wert <long_term_debt>, übersetzbar mit "Langzeit Schuld" liegt im Bereich von +-1000000 Sekunden. Dieser ist einer der Faktoren zur WU Anforderung durch Boinc bei dem entsprechenden Projekt. Bei einem negativen Wert wird keine Arbeit angefordert. Boinc hat "zuviel" an diesen Projekt gemäß Ressourcen einstellung gerechnet. Bei einem positiven Wert, wird je nach Höhe und Ressourcenanteil Arbeit angefordert unter Berücksichtigung des <active_frac> Wertes. Stehen die Werte alle im negativen Bereich, so erscheint unter Meldungen overcomitted und no new work fetch allowed. Boinc ist dann überarbeitet (overcomitted) und fordert keine neuen WUs (no new work fetch allowed). Dieser Modus wird dann auch earliest-deadline-first (EDF) genannt.

EDF (Panik) Modus

Neben den genannten Werten, beachtet Boinc auch die Deadline der WUs. Wenn es merkt das es "zuviel" Arbeit angefordert hat oder der <active_frac> Wert sinkt (Urlaub -> PC ist mehr aus, es wird mehr gearbeitet -> Boinc darf weniger rechnen) werden die WUs mit der nächsten Deadline bevorzugt gerechnet um ein "brauchbares" Ergebnis zu gewährleisten. In dieser Zeit fordert Boinc keine Arbeit mehr an. Mittlerweile prüfen auch die Projekt Server die Zeitstatistiken und verweigern die Zuteilung von WUs, wenn gemäß der Werte, in der geforderten Zeit nicht berechnet werden können. Beispiel:

Message from server: No work sent
(won't finish in time) Computer on 50% of time, BOINC on 25% of that, this project gets 20% of that
No work from project

Der Server sagt damit, das der PC 50% der Zeit an ist, 25% davon Boinc rechnen darf und das Projekt von dieser Zeit 20% nur bekommt.

Problem "No work sent" Lösungen

Verhaltensänderung

manuelle Steuerung der Projekt

direkte Manipulation client_state.xml

BoincDV

Weblinks