Jedná se o soubor app_config.xml, který se podobně jako soubor app_info.xml umísťuje do projektového adresáře. Např. pro projekt WCG to bude do adresáře D:\Boinc\Data\projects\www.worldcommunitygrid.org\ (v závislosti na instalačním adresáři BOINC).
Nastavení pomocí souboru app_config.xml použijeme tehdy, pokud si sami chceme řídit počet současně běžících jednotek konkrétní aplikace. Nejčastěji použijeme tehdy, pokud chceme zvýšit počet běžících jednotek na GPU. Můžeme ale i použít pokud chceme omezit počet současně spuštěšných jednotek na CPU, například u některých paměťově velice náročných aplikacích (WCG-CEP2, RNA World, ...)
Struktura souboru app_config.xml
Kód: Vybrat vše
<app_config>
<app>
<name>xxx</name>
<max_concurrent>x</max_concurrent>
<gpu_versions>
<gpu_usage>x</gpu_usage>
<cpu_usage>x</cpu_usage>
</gpu_versions>
</app>
</app_config>
Sekce <gpu_versions> je nepoviná a můžete ji použít pro nastavení GPU jednotek dané aplikace.
<name>xxx</name> ... zkrácený název aplikace, který nejdete v sekci <name>xxx</name> daného projektu v souboru client_state.xml.
<max_concurrent>X</max_concurrent> ... maximální počet souběžně běžícich úkolů (na GPU i CPU současně) dané aplikace v jednom okamžiku. První budou naplněny GPU úkoly (pokud jsou k dispozici) a až poté CPU úkoly. Pokud je např. na systému s jednou GPU nastaveno 5 a gpu_usage je nastaveno na 0.25 a jsou k dispozici úkoly pro CPU a GPU zároveň, spustí se 4 úkoly na GPU a jeden úkol na CPU.
<gpu_usage>x</gpu_usage> ... jakou část GPU si vezme pro sebe jedna spuštěná jednotka. Neboli obrácená hodnota počtu souběžně běžícich úkolů na GPU. Chci-li, aby mi na GPU běžely 4 jednotky najednou, nastavím 1/4 tedy 0.25. Jedná se o nastavení na jednu GPU. Mám-li nastaveno 0.25 a mám dvě GPU, poběží mi celkem 8 jednotek.
<cpu_usage>x</cpu_usage> ... jakou část CPU si vezme pro sebe jedna spuštěná GPU jednotka. Nejedná se o skutečné nastavení zatížení CPU, ale jedná se pouze o informaci pro BOINC scheduler, kolik výkonu CPU si má rezervovat jedna GPU jednotka. Pokud mám 4-jádro a jednu GPU, a nastavím si <gpu_usage>0.25</gpu_usage> a <cpu_usage>0.25</cpu_usage> poběží mi 4 jednotky na GPU a 3 jádra budou volná pro CPU jednotky. Pokud si nastavím <gpu_usage>0.25</gpu_usage> a <cpu_usage>0.50</cpu_usage> poběží mi 4 jednotky na GPU a pouze 2 jádra budou volná pro CPU jednotky.
Jaká je vazba mezi app_config.xml a app_info.xml zatím netuším, ani nemám vyzkoušené co se stane, když budou nastaveny oba konfigurační soubory s naprosto odlišným nastavením.
EDIT by nenym: přednost má app_config.xml.
Oproti souboru app_info.xml má nastavení pomocí app_config.xml tu výhodu, že se nemusí vyjmenovávat konkrétní aplikační spustitelný souobor, proto při změně verze aplikace (ale zachování jména aplikace) se nemusí na straně klienta nic znovu nastavovat. Rovněž tak pokud v app_config.xml některá aplikace chybí, neznamená to že se nebude počítat, pouze se použije standardní nastavení.
EDIT : více na wiki
EDIT by nenym:
Úplná struktura souboru
Kód: Vybrat vše
<app_config>
[<app>
<name>Application_Name</name>
<max_concurrent>1</max_concurrent>
[<report_results_immediately/>]
[<fraction_done_exact/>]
<gpu_versions>
<gpu_usage>.5</gpu_usage>
<cpu_usage>.4</cpu_usage>
</gpu_versions>
</app>]
...
[<app_version>
<app_name>Application_Name</app_name>
[<plan_class>mt</plan_class>]
[<avg_ncpus>x</avg_ncpus>]
[<ngpus>x</ngpus>]
[<cmdline>--nthreads 7</cmdline>]
</app_version>]
...
[<project_max_concurrent>N</project_max_concurrent>]
[<report_results_immediately/>]
</app_config>
<project_max_concurrent>x</project_max_concurrent> je funkční od verze 7.4.9