Soubor app_info.xml obecně slouží k "vnucení" projektu jinou aplikci, než používá projekt standardně pro používaný OS. Lze tak například používat různé optimalizované aplikace či (jako v totmo případě) rozběhnout např. 32b aplikaci na 64b systému. Celý princip spočívá v tom, že boinc při spouštění prohledá adresáře (složky) jednotlivých projektů po nalezení souboru s tímto názvem v adresáři (složce) projektu je zaslána serveru zpráva o výpoču na "anonymous" platformě. Server projektu tak nekontroluje "správnost" aplikace a k výpočtu je použita aplikce definovaná v souboru app_info.xml.
Nevýhodou použítí app_info.xml je samozřejmě to, že pokud se změní aplikace používaná v projektu (jako teď v případě E@H), tak musí dojít k "ručnímu" zásahu do souboru app_info.xml. Nezbytnou podmínkou je též podpora anonymous platformy ze strany serveru, což ne všechny projekty podporují (např. na Tanpaku jsem se bohužel nechytil).
Jak tedy vypadá soubor app_info.xml? Obecně je tvořen sekcí app_info, která obsahuje tři podsekce. První je sekce app, která definuje aplikaci. V sekci file_info jsou definovány všechny soubory, které jsou k výpočtu potřeba a též je definován "spustitelný" soubor. V poslední sekci app_version jsou pak "provázány" jednotlivé soubory s aplikací a konkrétné verzí. Z toho plyne, že mohou být v rámci jednoho souboru app_info.xml definovány různé aplikace, či různé verze stejné aplikace (to se používá při souběhu různých aplikací na výpočet, což v případě E@H momentálně není).
Příklad funkčního app_info.xml pro E@H a stávající etapu S5R2 je uveden zde:
Kód: Vybrat vše
<app_info>
<app>
<name>einstein_S5R2</name>
</app>
<file_info>
<name>einstein_S5R2_4.14_i686-pc-linux-gnu</name>
<executable/>
</file_info>
<file_info>
<name>einstein_S5R2_4.14_i686-pc-linux-gnu.so</name>
</file_info>
<app_version>
<app_name>einstein_S5R2</app_name>
<version_num>414</version_num>
<file_ref>
<file_name>einstein_S5R2_4.14_i686-pc-linux-gnu</file_name>
<main_program/>
</file_ref>
<file_ref>
<file_name>einstein_S5R2_4.14_i686-pc-linux-gnu.so</file_name>
</file_ref>
</app_version>
</app_info>