Aktionen

Exclude gpu

Aus SETI.Germany Wiki

Die Konfigurationsanweisung exclude_gpu ist ein Behelfsbefehl innerhalb der Datei cc_config.xml. Er soll künftig verhindern, dass eine oder mehrere Grafikkarten bei BOINC zum Berechnen der angegebenen Projekte von Workunits herangezogen werden.

Berkeley hat das "Idle-Problem leer laufender Grafikkarten" bei Beta-Version 6.13.8 bzw 6.13.9 korrigiert, so dass beide Karten separat geführt werden und die exclude-flags werden im Manager erfolgreich aufgezeigt. Jedoch können gar nicht rechentaugliche Karten, beispielsweise die im Test verwendete ATI 4250 dazu führen, dass BOINC nicht mehr startet, wenn man gleichzeitig das use_all_gpu-Flag auf 1 setzt. Symptom: ewig langes warten auf localhost, während Boinc Dump-Files auf die Festplatte schreibt; Program-Exit-Code: 0x80000003.

Grafikkarten mit NULL Rechenfähigkeit sollten also deaktiviert sein --> ignore_Grafikhersteller_dev - siehe cc_config.xml


Im Developer-Forum rät man momentan gänzlich davon ab, Version 6.13.8/9 und test4theory auf einem Mac zu testen, da es zu Sicherheitsproblemen in zusammenhang mit der Sandbox führt!


Theoretischer Grundgedanke

Um bestimmte (Sub-)Projekte zu priorisieren, oder wenn in Mehr-Grafikkarten-Systemen einzelne Karten nicht bei allen (Sub-)Projekten rechnen können, kann die Option herangezogen werden, um einzelne Grafikkarten von bestimmten Projekten abzuziehen. Genauer: Die Berechnung für diese Grafikkarten für diese Projekte konsequent zu unterbinden. Es stellt somit eine feinere Option dar als der Befehlssatz <ignore_nvidia_dev>N</ignore_nvidia_dev>, <ignore_ati_dev>N</ignore_ati_dev>, welcher nur die Option bietet Grafikkarten überall mitrechnen zu lassen oder eben nicht.

Der Befehlssatz findet ab BOINC-Version 6.13.x Anwendung (BOINC 6.13.x steht momentan noch in der Entwicklung (BETA). Die Nutzung läuft auf also eigene Gefahr!).


Grundform

<exclude_gpu>

<url>project_URL</url>
[<device_num>N</device_num>]
[<type>nvidia|ati</type>]
[<app>appname</app>]

</exclude_gpu>

Der exclude-Befehl ist der Gestalt, dass immer feiner ausgesiebt werden kann, bis hin zu einzelnen Anwendungen, die bei einer gewählten Grafikkarte nicht gerechnet werden sollen. Daher sind die Teilbefehle als optionale Wahlmöglichkeit in [] geschrieben.

Andererseits ist der Befehl grob genug, dass nicht unbedingt alle Teile angegeben werden müssen. Hat ein Projekt beispielsweisemehrere Applikationen und eine Grafikkarte soll auf keiner von diesen rechnen, kann man den Teil <app>appname</app> auslassen, so dass BOINC von sich aus ausgeht, dass alle Teile eines Projektes ausgenommen sind.

Da der exclude-Befehl in der cc_config.xml nicht vorgegeben ist, muss der Anwender bei Bedarf/Wunsch manuell tätig werden. Beachte: Vor dem Verändern von Dateien (hier also der cc_config.xml) sollten diese zunächst als Sicherungskopie andernorts abgelegt werden!

Einzelbeschreibung

<exclude_gpu> und </exclude_gpu> starten bzw. beenden den Befehlssatz - es können mehrere solcher Befehlssätze in die cc_config.xml eingebettet werden.

<url>project_URL</url> kann angegeben werden, um eine Grafikkarte bei einem bestimmten Projekt aus zu nehmen. Wenn zum Beispiel die Voraussetzungen der Grafikkarte sonst für alle Projekte genügen, jedoch für eben eines nicht, dann sollte von <url>project_URL</url> gebrauch gemacht werden. Zudem lässt sich hierdurch bei Nutzung zweier Grafikkarten bestimmen, dass eine Grafikkarte immer für Projekt A, die andere immer für Projekt B rechnet.

[<device_num>N</device_num>] Kann genutzt werden, um genau anzugeben, welche Grafikkarte ausgenommen werden soll. N steht hierbei als Hilfsvariable für 1, 2, ..., n Grafikkarten. Welche Grafikkarte auf Nummer 1 und welche auf Nummer 2, bzw. auf n-ter Position steht, kann man im Boinc-Manager unter Meldungen ablesen. Die Grafikkarten werden am Anfang aufgelistet. Beispiel:

24.10.2011 20:06:35 |  | ATI GPU 0: ATI Radeon HD 5700 series (Juniper) (CAL version 1.4.1546, 1024MB, 991MB available, 1152 GFLOPS peak)

Wobei ATI GPU 0 hier für die erste Grafikkarte steht; BOINC beginnt das Zählen der Grafikkarten bei 0.

[<type>nvidia|ati</type>] Anstatt mit device_num direkt anzugeben, welche Grafikkarte nicht mitrechnen soll - kann man auch bei Mehr-Grafikkartensystemem unterschiedlicher Hersteller, direkt einen Hersteller ausklammern. ATI oder NVIDIA.

[<app>appname</app>] Manche Projekte liefern Aufgaben für mehrere Subprojekte. Beispielsweise liefert SETI@home Aufgaben für Multibeam oder Astropulse. An dieser Stelle kann nun angegeben werden, ob man nur eine *.exe-Datei ausklammern möchte, wenn eine Karte die dortigen Minimal-Spezifikationen für dieses Subprojekt nicht erreicht. So kann man mit zwei Grafikkarten bestimmen, dass sich beide Grafikkarten die Subprojekte untereinander aufteilen.

Beispiel am Code

<cc_config>

<options>
<use_all_gpus>1</use_all_gpus>
<exclude_gpu>
<url>http://www.primegrid.com/</url>
<device_num>1</device_num>
</exclude_gpu>
<exclude_gpu>
<url>http://boinc.thesonntags.com/collatz/</url>
<device_num>0</device_num>
</exclude_gpu>
<exclude_gpu>
<url>http://setiathome.berkeley.edu</url>
<device_num>0</device_num>
<app>MB_6.10_win_SSE3_ATI_r177.exe</app>
</exclude_gpu>
</options>
<log_flags>
</log_flags>

</cc_config>

Das gegebene System besitzt zwei Grafikkarten: Eine Grafikkarte auf Platz 0 und eine Grafikkarte auf Platz 1. Beide Karten sind rechenfähig (warum das wichtig ist, siehe oben). Beide Karten können zur Berechnung bei PrimeGrid, als auch bei Collatz Conjecture und SETI@home hergenommen werden. Da aber nicht beide Karten unbedingt alle drei Projekte durcheinander weg rechnen sollen wurde die Grafikkarte 0 bei Collatz ausgenommen und rechnet bei Seti auch keine Enhanced (Multibeam). Während die Karte an Stelle 1 kein Primegrid rechnen wird, ansonsten aber alle Projekte/Subprojekte.

Arbeitet man mit der Excludierung einzelner Subprojekte muss darauf geachtet werden, ob (Programmupdate bei den Lunatics-Treibern für SETI oder bei den Projekten) die Dateinamen stimmig sind. In dem Falle muss die cc_config.xml neu angepasst werden. Gerade wenn man mit den Optimierte_Anwendungen von Lunatics arbeitet, ändern sich bei neueren Installern/Dateiversionen, deren Bezeichnungen! Korrigiert man anschließend die cc_config.xml nicht, kann dies zu fehlerhaften Berechnungen oder keinen Berechnungen führen!


Anmerkung: Möchte man generell eine bestimmte Grafikkarte vom Berechnen ausnehmen, sollte man einen anderen Befehlssatz verwenden: <ignore_nvidia_dev>N</ignore_nvidia_dev>, <ignore_ati_dev>N</ignore_ati_dev> Siehe hierzu auch die Hilfeseite von Boinc.Berkeley.edu oder im wiki den Eintrag zur cc_config.xml.

Single Sign On provided by vBSSO