FAQ Technique > Tutoriels
[REALISATION] Optimiser BOINC en modifiant les fichiers config
arnaud25:
//EDIT par LOCTET : Je commence à rassembler ici les posts sur ces diverses astuces (me MP pour m'indiquer ceux que je n'aurais pas trouvés ...) ne poster ici que les réalisations, pour les discussions voir [DISCUSSIONS] Optimiser BOINC en modifiant les fichiers config //
Salut,
A partir de la version 5.8 et notamment 5.8.2 (onglet: Avancé-> lire le fichier de config et lire le fichier de préférences), Boinc peut lire le fichier cc_config.xml et global_prefs_override.xml
Le fichier cc_config.xml:
Ce fichier permet à Boinc de faire 2 choses:
-Envoyer des messages plus précis de ce que fait Boinc et de ce que font les applications (checkpoints, pid, arrêt et reprise des applis, communications avec les serveurs, etc)
-Lui passer des options avancées.
Il est donc utile pour ceux qui font du béta-test pour leurs projets favoris, qui font tourner des projets pas très stable ou qui sont simplement curieux
Deux tutos en anglais:
http://boinc.berkeley.edu/client_msgs.php
http://boincfaq.mundayweb.com/index.php?view=91
Certaines options renvois des quantités énormes de données pas très utiles pour l'utilisateur lamba et d'autres sont assez utiles.
Typiquement le fichier se présente ainsi:
--- Citer ---
<cc_config>
<log_flags>
<task>1</task>
<file_xfer>1</file_xfer>
<sched_ops>1</sched_ops>
<state_debug>0</state_debug>
<task_debug>1</task_debug>
<file_xfer_debug>0</file_xfer_debug>
<sched_op_debug>0</sched_op_debug>
<http_debug>0</http_debug>
<work_fetch_debug>0</work_fetch_debug>
<unparsed_xml>0</unparsed_xml>
<proxy_debug>0</proxy_debug>
<time_debug>0</time_debug>
<http_xfer_debug>0</http_xfer_debug>
<measurement_debug>0</measurement_debug>
<poll_debug>0</poll_debug>
<guirpc_debug>0</guirpc_debug>
<scrsave_debug>1</scrsave_debug>
<rr_simulation>0</rr_simulation>
<cpu_sched>0</cpu_sched>
<app_msg_send>0</app_msg_send>
<app_msg_receive>0</app_msg_receive>
<mem_usage_debug>0</mem_usage_debug>
<network_status_debug>0</network_status_debug>
</log_flags>
<options>
<save_stats_days>N</save_stats_days>
<dont_check_file_sizes>0|1</dont_check_file_sizes>
<http_1_0>0|1</http_1_0>
<ncpus>N</ncpus>
<max_file_xfers>N</max_file_xfers>
<max_file_xfers_per_project>N</max_file_xfers_per_project>
</options>
</cc_config>
--- Fin de citation ---
1: la balise est active.
0: la balise est inactive.
N: nombre
la balise <log_flags> </log_flags> permet d'avoir plus de messages
la balise <options> </options> permet de passer les options avancées
Vous pouvez carrement supprimer les balises que vous ne voulez pas utiliser ou supprimer la partie <options> </options> si vous ne voulez pas passer d'options.
Le fichier global_prefs_override.xml
Il permet de passer outre les préférences choisies sur le site web et qui s'appliquent à plusieurs machines.
En mettant ce fichier dans le dossier Boinc de chaque machine, vous pouvez définir des préférences pour chaque machine
Exemple:
Machine 1: récupère du travail tout les jours, travaille tout le temps,....
Machine 2: récupère du travail tout les 5 jours, travaille entre 8h et 20h,...
Machine 3: récupère du travail tout les 8 jours, travaille entre 22h et 6h,.....
etc....
Typiquement ce fichier est ainsi composé:
--- Citer ---<global_preferences>
<run_on_batteries>0</run_on_batteries>
<run_if_user_active>1</run_if_user_active>
<start_hour>0</start_hour>
<end_hour>0</end_hour>
<net_start_hour>0</net_start_hour>
<net_end_hour>0</net_end_hour>
<leave_apps_in_memory>1</leave_apps_in_memory>
<confirm_before_connecting>0</confirm_before_connecting>
<hangup_if_dialed>0</hangup_if_dialed>
<work_buf_min_days>0.1</work_buf_min_days>
<max_cpus>2</max_cpus>
<cpu_scheduling_period_minutes>60</cpu_scheduling_period_minutes>
<disk_interval>60</disk_interval>
<disk_max_used_gb>100</disk_max_used_gb>
<disk_max_used_pct>50</disk_max_used_pct>
<disk_min_free_gb>0.1</disk_min_free_gb>
<vm_max_used_pct>75</vm_max_used_pct>
<idle_time_to_run>3</idle_time_to_run>
<max_bytes_sec_down>0</max_bytes_sec_down>
<max_bytes_sec_up>0</max_bytes_sec_up>
<cpu_usage_limit>100</cpu_usage_limit>
</global_preferences>
[ <host_venue>venue</host_venue> ]
--- Fin de citation ---
Tuto:
http://boinc.berkeley.edu/prefs_override.php
http://boincfaq.mundayweb.com/index.php?view=92
@+
cedricdd:
--- Code: ---<app_info>
<app>
<name>collatz</name>
<user_friendly_name>collatz</user_friendly_name>
</app>
<file_info>
<name>collatz_3.11_windows_x86_64__opencl_amd.exe</name>
<executable/>
</file_info>
<app_version>
<app_name>collatz</app_name>
<version_num>311</version_num>
<flops>1.0e11</flops>
<api_version>7.0.28</api_version>
<coproc>
<type>ATI</type>
<count>0.5</count>
</coproc>
<plan_class>ati13ati</plan_class>
<avg_ncpus>0.01</avg_ncpus>
<max_ncpus>1.0</max_ncpus>
<cmdline></cmdline>
<file_ref>
<file_name>collatz_3.11_windows_x86_64__opencl_amd.exe</file_name>
<main_program/>
</file_ref>
</app_version>
</app_info>
--- Fin du code ---
Avec celui la tu vas avoir deux tâches en même temps aux valeurs par défaut, si tu veux essayer de régler pour avoir une seule tâche à 100% ou si même avec deux sans rien changer d'autre tu n'es pas encore à 100%, pour modifier les valeurs c'est dans les balises <cmdline></cmdline> qu'il faut le faire, en utilisant ceci:
I<items> - Items par kernel. Doit être une puissance de 2. 65536 est la valeur par défaut. Des valeurs plus grandes utilisent plus de mémoire GPU et améliorent l'utilisation du GPU tandis que des valeurs plus basses améliorent le temps de réponse. Il n'est pas conseillé de descendre plus bas que 8192. Utiliser une valeur trop grande peut entrainer un crash du driver. La valeur optimal est différente pour chaque modèle de GPU.
K<kernels> - Kernels par réduction. Doit être divisible par 2. 16 est la valeur par défaut. Des valeurs plus larges améliorent l'utilisation du GPU. La plage de valeurs conseillée est de 4 à 256.
S<milliseconds> - Attendre n milliseconde à chaque boucle le temps que les kernels se terminent. La valeur par défaut est 1. Affecter 0 entrainera une rapidité maximum -- mais en entrainant l'utilisation d'un CPU à 100%
Par exemple <cmdline>I65536 K16 S1</cmdline> c'est les valeurs par défaut.
Spica:
voila le mien sur NVIDIA...
--- Citer ---<app_info>
<app>
<name>collatz</name>
</app>
<file_info>
<name>collatz_3.11_windows_x86_64__cuda42.exe</name>
<executable/>
</file_info>
<file_info>
<name>cudart64_42_9.dll</name>
<executable/>
</file_info>
<app_version>
<app_name>collatz</app_name>
<version_num>311</version_num>
<plan_class>cuda42</plan_class>
<avg_ncpus>0.011</avg_ncpus>
<max_ncpus>1</max_ncpus>
<flops>1.0e11</flops>
<coproc>
<type>CUDA</type>
<count>1</count>
</coproc>
<cmdline>K256 I2097152 S1</cmdline>
<file_ref>
<file_name>collatz_3.11_windows_x86_64__cuda42.exe</file_name>
<main_program/>
</file_ref>
<file_ref>
<file_name>cudart64_42_9.dll</file_name>
</file_ref>
</app_version>
</app_info>
--- Fin de citation ---
la ligne cmdline: cedric t'ecrivais par defaut : <cmdline>I65536 K16 S1</cmdline>
tu remarqueras ma ligne, elle est differente car j'ai un peu optimisé.
Pour 2 collatz ensemble, mettre
<coproc>
<type>CUDA</type>
<count>0.5</count>
</coproc>
Perso, je ferais: essaie le mien tel quel: si ca plante, c'est que tu n'as pas les cudart machin... et il faut modifier. De toute facon, l'app_info que je te donne, c'est pas moi qui l'ai fait mais c'est celui qui est fabriqué quand tu vas chercher les optis sur la page des optis de Collatz. Tu essaies et si ca marche tu passe de 1 Ut à 2 ..et tu me dis si ca marche, ca lm'interesse de savoir. En ce moment, je suis en phase plutot GPU GRID mais si l'AF decide d'aller chercher la premiere place au general sur Collatz, alors...je donnerais un coup de main!
bref, tiens nous au courant.... :hello:
pour les app_info de maniere 'automatique', c'est pas faisable mais realiste, avec un peu d'experience, cedric est un pro, perso, je suis pas trop nul...
LOCTET SetiOne:
Poursuite de la (tentative) de synthèse dans un post unique de l'utilisation des app_info et cc_config
1 Le fichier cc_config.xml
- a mettre dans le dossier indiqué dès les premières lignes du Journal des événements de BOINC Manager, exemple avec une installation personnalisée sous Windows
--- Citer ---12/04/2013 13:22:46 | | Data directory: F:\BoincData
--- Fin de citation ---
- pour effet immédiat des options qui y sont consignées : menu BOINC >Avancé>Lire le fichier de configuration
1.1 - Envoi immédiat des résultats (Source)
--- Code: ---<cc_config>
<options>
<report_results_immediately>1</report_results_immediately>
</options>
</cc_config>
--- Fin du code ---
1.2 - CONFIG biGPU
Faire reconnaître les 2 GPU par BOINC (source 1 - source 2)
--- Code: ---<cc_config>
<options>
<use_all_gpus>1</use_all_gpus>
</options>
</cc_config>
--- Fin du code ---
Attribuer un projet différent à chaque GPU (source)
Si version de BOINC > 6.13 (exemple) :
la carte 1 ne fait que du Milkyway (car device 0 exclu) et la carte 0 que du Collatz (car device 1 exclu....)
--- Code: ---<cc_config>
<options>
<exclude_gpu>
<url>http://boinc.thesonntags.com/collatz/</url>
<device_num>1</device_num>
</exclude_gpu>
<exclude_gpu>
<url>http://milkyway.cs.rpi.edu/milkyway/</url>
<device_num>0</device_num>
</exclude_gpu>
</options>
</cc_config>
--- Fin du code ---
pour faire du Milky sur la carte 0 et du Collatz sur la 1
--- Code: ---<cc_config>
<options>
<exclude_gpu>
<url>http://boinc.thesonntags.com/collatz/</url>
<device_num>0</device_num>
</exclude_gpu>
<exclude_gpu>
<url>http://milkyway.cs.rpi.edu/milkyway/</url>
<device_num>1</device_num>
</exclude_gpu>
</options>
</cc_config>
--- Fin du code ---
2 Le fichier app_info.xml
- à placer dans le sous dossier "projects\nom du projet concerné", dossier qui se trouve sous le chemin indiqué dès les premières lignes du Journal des événements de BOINC Manager, exemple avec une installation personnalisée sous Windows
--- Citer ---12/04/2013 13:22:46 | | Data directory: F:\BoincData
--- Fin de citation ---
donc pour Yoyo par exemple, à placer dans F:\BoincData\projects\www.rechenkraft.net_yoyo
- il faut arrêter redémarrer BM, mais attention dans bien des cas les WU en cours seront perdues (choisissez votre moment !)
2.1 Charger vos cartes GPU à 100% exemple pour POEM (source)
Paramètres à changer selon :
<name>poemcl_0.1_x86_64-pc-linux-gnu__opencl_ati_100</name> nom exact de l'exe présent dans le sous répertoire du projet
<api_version>7.0.28</api_version> par le numéro exact de la version de votre BOINC Manager
- Pour Gnu/Linux avec une ATI :
--- Code: ---<app_info>
<app>
<name>poemcl</name>
<user_friendly_name>POEM++ OpenCL</user_friendly_name>
</app>
<file_info>
<name>poemcl_0.1_x86_64-pc-linux-gnu__opencl_ati_100</name>
<executable/>
</file_info>
<app_version>
<app_name>poemcl</app_name>
<version_num>1</version_num>
<plan_class>opencl_ati_100</plan_class>
<avg_ncpus>0.5</avg_ncpus>
<max_ncpus>0.5</max_ncpus>
<flops>2.1e10</flops>
<coproc>
<type>ATI</type>
<count>0.5</count>
</coproc>
<cmdline></cmdline>
<file_ref>
<file_name>poemcl_0.1_x86_64-pc-linux-gnu__opencl_ati_100</file_name>
<main_program/>
</file_ref>
</app_version>
</app_info>
--- Fin du code ---
- Pour Windows avec une ATI :
--- Code: ---<app_info>
<app>
<name>poemcl</name>
<user_friendly_name>POEM++ OpenCL</user_friendly_name>
</app>
<file_info>
<name>poemcl_0.1_windows_intelx86__opencl_ati_100</name>
<executable/>
</file_info>
<app_version>
<app_name>poemcl</app_name>
<version_num>1</version_num>
<plan_class>opencl_ati_100</plan_class>
<avg_ncpus>0.5</avg_ncpus>
<max_ncpus>0.5</max_ncpus>
<flops>2.1e10</flops>
<coproc>
<type>ATI</type>
<count>0.5</count>
</coproc>
<cmdline></cmdline>
<file_ref>
<file_name>poemcl_0.1_windows_intelx86__opencl_ati_100</file_name>
<main_program/>
</file_ref>
</app_version>
</app_info>
--- Fin du code ---
- Pour Windows avec une NVIDIA :
--- Code: ---<app_info>
<app>
<name>poemcl</name>
<user_friendly_name>POEM++ OpenCL</user_friendly_name>
</app>
<file_info>
<name>poemcl_1.3_windows_intelx86__opencl_nvidia_100</name>
<executable/>
</file_info>
<app_version>
<app_name>poemcl</app_name>
<version_num>103</version_num>
<avg_ncpus>2</avg_ncpus>
<max_ncpus>2</max_ncpus>
<flops>5233400958.051761</flops>
<plan_class>opencl_nvidia_100</plan_class>
<api_version>7.0.28</api_version>
<file_ref>
<file_name>poemcl_1.3_windows_intelx86__opencl_ati_100</file_name>
<main_program/>
</file_ref>
<coproc>
<type>CUDA</type>
<count>1</count>
</coproc>
</app_version>
</app_info>
--- Fin du code ---
2.2 Pour les projets attribuant 1 WU par core au lieu de faire calculer 1WU par tous les cores, exemple Edges (source, merci cedricdd)
--- Code: ---<app_info>
<app>
<name>public_autodock_vina_1_1_2</name>
<user_friendly_name>Autodock VINA</user_friendly_name>
<non_cpu_intensive>0</non_cpu_intensive>
</app>
<file_info>
<name>public_autodock_vina_1_1_2_1.03_windows_intelx86.exe</name>
<executable/>
</file_info>
<file_info>
<name>public_autodock_vina_1_1_2_1.03_windows_intelx86.zip</name>
</file_info>
<file_info>
<name>wu_script.sh_1.03_windows_intelx86</name>
</file_info>
<app_version>
<app_name>public_autodock_vina_1_1_2</app_name>
<version_num>103</version_num>
<platform>windows_intelx86</platform>
<avg_ncpus>4.000000</avg_ncpus>
<max_ncpus>4.000000</max_ncpus>
<flops>2993490510.771409</flops>
<api_version>6.1.5</api_version>
<file_ref>
<file_name>public_autodock_vina_1_1_2_1.03_windows_intelx86.exe</file_name>
<main_program/>
</file_ref>
<file_ref>
<file_name>public_autodock_vina_1_1_2_1.03_windows_intelx86.zip</file_name>
<open_name>public_autodock_vina_1_1_2_1.03_windows_intelx86.zip</open_name>
</file_ref>
<file_ref>
<file_name>wu_script.sh_1.03_windows_intelx86</file_name>
<open_name>wu_script.sh</open_name>
</file_ref>
</app_version>
</app_info>
--- Fin du code ---
On pourra récupérer que des tâches Vina, j'ai pas les infos pour les autres, ne pas oubliez de changer en fonction du votre nombre de CPU.
2.3 Pour forcer un projet GPU à utiliser 1 CPU entier (merci Phil1966) exemple Primgrid Genefer short ou longues (wr)
--- Code: ---<app_config>
<app>
<name>genefer</name>
<gpu_versions>
<gpu_usage>1</gpu_usage>
<cpu_usage>1</cpu_usage>
</gpu_versions>
</app>
<app>
<name>genefer_wr</name>
<gpu_versions>
<gpu_usage>1</gpu_usage>
<cpu_usage>1</cpu_usage>
</gpu_versions>
</app>
</app_config>
--- Fin du code ---
2.4 Pour optimiser Einstein (merci [AF>Amis des Lapins] Jean-Luc) http://forum.boinc-af.org/index.php/topic,2265.msg378370.html#msg378370
2.5 calculer sur Milkyway avec un MAC (source) merci Prof
1° Stopper Boinc
2° Créer un app_info.xml avec le code suivant :
--- Code: ---<app_info>
<app>
<name>milkyway_separation__modified_fit</name>
</app>
<file_info>
<name>milkyway_separation__modified_fit_1.36_x86_64-apple-darwin__opencl_ati_101</name>
<executable />
</file_info>
<app_version>
<app_name>milkyway_separation__modified_fit</app_name>
<version_num>136</version_num>
<avg_ncpus>0.040000</avg_ncpus>
<max_ncpus>0.567833</max_ncpus>
<plan_class>opencl_ati_101</plan_class>
<file_ref>
<file_name>milkyway_separation__modified_fit_1.36_x86_64-apple-darwin__opencl_ati_101</file_name>
<main_program/>
</file_ref>
<coproc>
<type>ATI</type>
<count>1.0000</count>
</coproc>
</app_version>
</app_info>
--- Fin du code ---
3° Télécharger l'appli milkyway_separation__modified_fit_1.36_x86_64-apple-darwin__opencl_ati_101
4°Placer l'app_info & l'appli dans le dossier milkyway du dossier Projects du dossier Boinc data
5° Prévoir sur l'appli un petit coup de "sudo chmod +x" dans le terminal pour rétablir les permissions
6° Réinstaller Boinc
7° Relancer
2.6 Pour optimiser SETI avec les LUNATICS (merci Phil1966) http://forum.boinc-af.org/index.php/topic,2282.msg407670.html#msg407670
Infomat:
C'est une belle tentative :love: :jap:
Je me sers tout de suite du premier... :kookoo:
Navigation
[#] Page suivante
Utiliser la version classique