App config.xml
Aus SETI.Germany Wiki
BOINC .. BOINC installieren .. Boincsteuerung .. Boincfinetuning .. Remotezugriff
App_config.xml .. App_info.xml .. Cc_config
Mit einer app_config.xml kann eingestellt werden, wie viele Instanzen der gleichen Anwendung gleichzeitig höchstens laufen dürfen und welche GPU- und CPU-Anteile BOINC für GPU-Anwendungen reservieren soll. Dadurch ist beispielsweise möglich, mehrere WUs gleichzeitig auf einer Grafikkarte laufen zu lassen, um gegebenenfalls die Auslastung zu verbessern, oder zu verhindern, dass zu viele WUs eines sehr ressourcenhungrigen Projektes gleichzeitig laufen.
Zudem ist es möglich, bei einigen CPU Projekten Multithreading zu verwenden. Daduch können mehrere CPU Kerne an einer WU arbeiten.
Damit BOINC die in der Datei getroffenen Einstellungen berücksichtigt, muss sie im Unterverzeichnis projects\Projekt-URL
des BOINC-Datenverzeichnisses liegen (wobei Projekt-URL
für die URL des jeweiligen Projektes steht).
Aufbau
Eine app_config.xml hat stets folgenden Aufbau:
<app_config>
- <app>
- <name>NAME_KURZ</name>
- <max_concurrent>n</max_concurrent>
- <gpu_versions>
- <gpu_usage>x.x</gpu_usage>
- <cpu_usage>y.y</cpu_usage>
- </gpu_versions>
- </app>
</app_config>
Die Einrückungen und auch die Zeilenumbrüche dienen nur der Übersichtlichkeit und könnten genauso gut weggelassen werden. Der rot markierte Teil ist nur für GPU-Anwendungen relevant. Für Projekte mit mehreren Subprojekten kann die app_config.xml mehrere <app>-Blöcke enthalten.
<name>NAME_KURZ</name>
- Der Kurzname des Subprojektes, wie er beispielsweise in der client_state.xml zu finden ist. Groß-/Kleinschreibung muss beachtet werden. Nicht zu verwechseln mit dem user_friendly_name.
<max_concurrent>n</max_concurrent>
- Gibt an, dass höchstens n WUs mit dieser Anwendung gleichzeitig ausgeführt werden dürfen.
<gpu_usage>x.x</gpu_usage>
- Gibt an, wieviele GPUs BOINC für eine WU mit dieser Anwendung reservieren soll. Möchte man zwei WUs auf einer Grafikkarte ausführen, gibt man 0.5 an, für drei WUs 0.33, für vier WUs 0.25, usw.
<cpu_usage>y.y</cpu_usage>
- Gibt an, wieviele CPUs BOINC für eine WU mit dieser Anwendung reservieren soll. Man kann sich hier an der wahren Auslastung orientieren (z.B. 0.1, wenn die GPU-Anwendung 10% eines CPU-Kerns belegt) oder auch absichtlich mit dem Wert 1 einen kompletten CPU-Kern freihalten.
<fraction_done_exact/>
- Die Zeit der Restberechnung erfolgt anhand der Zeit für die bisherige Berechnung der WU, nicht anhand der für das Projekt üblichen Zeit.
<app_version>Parameter für die Ausführung der WU</app_version>
- Hier werden die unteren Parameter eingefügt, welche die Art der Bearbeitung der WU bestimmen, zum Beispiel für Multithreading. Weiter unten wird dies am Beispiel von Primegrid gezeigt.
<app_name>NAME_KURZ</app_name>
- Der Kurzname des Subprojektes, wie er beispielsweise in der client_state.xml zu finden ist. Groß-/Kleinschreibung muss beachtet werden. Nicht zu verwechseln mit dem user_friendly_name. Muss unter "<app_version>" angegeben werden.
<cmdline>-t x</cmdline>
- Gibt an, wieviele Threads gleichzeitig für die Berechnung einer WU genutzt werden sollen. Da dieser Wert nur von der jeweiligen Anwendung erkannt wird, nicht aber vom BOINC Manager, sollte der nächste Parameter zusätzlich verwendet werden.
<avg_ncpus>x</avg_ncpus>
- Legt für Boinc die Anzahl der Threads fest, welche von der Anwendung belegt werden. Sollte beim Multithreading mit dem vorherigem Parameter verwendet werden.
Dezimalbrüche müssen mit einem |
app_config.xml für Primegrid
Hier eine vollständige app_config.xml für alle LLR Projekte und Genefer 21 auf CPU von Primegrid zum Rechnen einer WU auf 4 Kernen:
<app_config>
- <app>
- <name>llr321</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llr321</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrCUL</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrCUL</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrESP</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrESP</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrGCW</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrGCW</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrPSP</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrPSP</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrPPS</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrPPS</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrPPSE</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrPPSE</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrMEGA</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrMEGA</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrSOB</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrSOB</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrSR5</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrSR5</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrTPS</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrTPS</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrTRP</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrTRP</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app>
- <name>llrWOO</name>
- <fraction_done_exact/>
- <max_concurrent>1</max_concurrent>
- </app>
- <app_version>
- <app_name>llrWOO</app_name>
- <plan_class>mt</plan_class>
- <cmdline>-t 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- </app_version>
- <app_version>
- <app_name>genefer</app_name>
- <cmdline>-nt 4</cmdline>
- <avg_ncpus>4</avg_ncpus>
- <plan_class>cpuGFN21</plan_class>
- </app_version>
</app_config>
Die Subprojekte PPS, PPSE, MEGA und TPS (SGS) benötigen insgesamt länger, wenn eine WU auf mehreren Kernen gerechnet wird. Es skaliert also recht schlecht, allerdings können so auch ältere CPUs gute Zeiten erzielen, um mit etwas Glück einen Erstfund zu haben.
AP26 oder Sieve Subprojekte unterstützen kein Multithreading.
Fragen zu der app_config.xml bei Primegrid bitte hier stellen: Forum
Bemerkungen
- Es wird eine BOINC-Version ab 7.0.40 benötigt.
- Nach dem Erstellen oder Ändern der app_config.xml muss BOINC neu gestartet werden, damit die Änderungen übernommen werden.
- Ab BOINC-Version 7.0.54 ist kein Neustart mehr notwendig, neue oder geänderte app_config.xml-Dateien können über "Extras/Konfigurationsdatei einlesen" übernommen werden.