Auteur Sujet: Configuration de plusieurs instances BOINC  (Lu 426 fois)

0 Membres et 1 Invité sur ce sujet

JeromeC

  • CàA
  • Messages: 21475
  • Boinc'eur devant l'éternel
  • *****
  •   
Configuration de plusieurs instances BOINC
« le: 26 mars 2018 à 17:29 »
Et non je n'ai pas honte, je pompe intégralement et (presque) littéralement un long tuto all in English qui se trouve ici :

http://www.overclock.net/forum/365-overclock-net-boinc-team/1628924-guide-setting-up-multiple-boinc-instances.html

(mais au moins je cite mes sources ET je me suis fadé la relecture et adaptation de Google trad alors bon je mérite un bisou ;))

--------------------------------------------

Configuration de plusieurs instances BOINC

Un des moyens les plus faciles de faire du cache est de configurer plusieurs instances de BOINC sur un seul ordinateur. [cette phrase a des contre-exemples, notamment du fait de l'ingénierie locale AF]

Cela a plusieurs avantages comme:
  • Etre capable de couper facilement la communication réseau à un projet particulier tout en permettant aux autres de fonctionner
  • Exécution de plusieurs projets NCI [moralement répréhensible]
  • Obtenir plus de travail pour les projets avec un nombre de tâches limité
  • Pas consommation de ressources par des MV [l'usage de machine virtuelle pouvant servir de contournement pour faire la même chose, mais une VM consomme des ressources CPU par elle même]
  • Pas de changement de disque dur ou perte de production lorsqu'un disque dur termine son travail
  • Pas déconner avec les fichiers hôtes [ce qui reste malgré tout une méthode pas trop complexe]

Les étapes requises pour configurer plusieurs instances de boinc dans Windows sont décrites ci-dessous. J'utilise Win7 donc je suppose que cela fonctionnerait dans Win8 / 10. Faites défiler vers le bas pour la version Linux.

Configuration d'une deuxième instance BOINC dans Windows

1. Créez un nouveau dossier pour les données du projet

Mon dossier BOINC est dans C:\ProgramData\BOINC donc je viens de créer un dossier supplémentaire appelé BOINC2. Incrémentez le # pour chaque instance supplémentaire.

2. Editez le fichier cc_config.xml

Il est situé dans le dossier BOINC principal: C:\ProgramData\BOINC

Incluez l'option allow_multiple_clients dans cc_config.xml. La mienne ressemble maintenant à ceci:
<cc_config>
 <options>
   <use_all_gpus>1</use_all_gpus>
   <allow_multiple_clients>1</allow_multiple_clients>
 </options>
</cc_config>

Ajoutez également cette ligne si le client supplémentaire est sur un PC distant:
<allow_remote_gui_rpc>1</allow_remote_gui_rpc>
3. Créez un fichier de commandes dans le nouveau dossier BOINC

Cela permet de configurer le dossier et peut être utilisé pour démarrer le BM. Incluez ces 2 lignes dans le fichier batch. Je nomme le mien boinc2.bat et incrémente le # pour chaque instance (cette façon de faire est généralement une bonne pratique).
"c:\Programme\BOINC\boinc.exe" --allow_multiple_clients --redirectio --detach_console --gui_rpc_port 31418 --dir C:\ProgramData\BOINC2exit[le exit en bout de ligne ne me paraît pas très catholique, à tester]

Mettez à jour le répertoire d'installation (si différent) et le répertoire BOINC2 à l'emplacement de votre dossier BOINC avec son vrai nom. BOINC2 si vous faites comme moi.

Le port par défaut est 31416, donc incrémentez le numéro de port pour chaque client supplémentaire. J'ai commencé à 31418 et je suis parti de là.

4 Exécutez le fichier Batch

Il démarrera une autre instance BOINC pointant ainsi sur le nouveau répertoire de données spécifié dans le fichier batch. Vous devriez voir un autre boinc.exe en cours d'exécution aussi [visible dans les processus du gestionnaire de tâches]. Je me retrouve avec un dossier et 12 fichiers incluant le fichier batch quand c'est fait.

Pour plus d'une instance, j'ai créé un autre fichier batch et mis à jour le dossier et le numéro de port BOINC2. A partir de là, la première ligne du fichier batch peut être combinée en une seule pour démarrer toutes les instances à la fois.


Connexion du gestionnaire BOINC à la nouvelle instance. (Optionnel)

Je dis optionnel car à partir de là tout peut être contrôlé via BOINCTasks. Tout le monde ne l'utilise pas alors voici comment faire fonctionner une autre instance de BM pour se connecter au nouveau client BOINC.
[mais franchement si vous commencez à en être à ce niveau de magouille, utilisez BoincTasks ! ça marche même sous Linux et Mac OS via Wine]

1. Créer un nouveau raccourci

J'avais déjà un raccourci BM sur mon bureau alors je l'ai copié et renommé BOINC2 pour que je sache à quelle instance il appartenait.

2. Copiez le mot de passe dans la seconde instance de Boinc

L'un des fichiers créés après l'exécution du fichier de commandes est gui_rpc_auth.cfg avec un tas de lettres et de chiffres aléatoires dedans.

3. Modifier le raccourci BOINC2

Modifiez la ligne "Cible" pour inclure le nouveau numéro de port et le nouveau mot de passe. C'est ce à quoi ressemble le mien pour ma 2ème instance.

"C:\Programme\BOINC\boincmgr.exe" /m /n 127.0.0.1 /g 31418 /p 37cf632b718387f4675342371b4055cc

Je n'utilise pas de mot de passe pour me connecter à mes clients, en local ou sur le réseau. Votre mot de passe sera différent du mien.

Si je me souviens bien, le nouveau BM ne s'est pas connecté instantanément la 1ère fois. Il était à la recherche de l'hôte, mais je pense qu'il se connecte à l'hôte après quelques secondes.

A partir de maintenant, cette instance peut être traitée comme un autre ordinateur, ajoutez / supprimez des projets comme vous le souhaitez.  Je dois toujours changer les préférences pour calculer pendant que l'ordinateur est occupé et et pareil pour le GPU.


Configuration de BOINCTasks (facultatif)

Ceci est également facultatif. J'utilise BOINCTasks pour contrôler toutes mes instances BM localement et à travers le réseau. Je n'ai même jamais ouvert d'instance BM.

1. Ajouter un ordinateur

Sélectionnez l'onglet Ordinateur, puis Ordinateur dans le menu Fichier et sélectionnez Ajouter un ordinateur.

2. Donnez un nom à l'ordinateur

J'ai incrémenté le nom de l'ordinateur sur lequel il était, 3770k-2. Ce n'est pas le nom complet de l'ordinateur, donc ça peut être n'importe quoi. Encore une fois, j'ai simplement incrémenté et gardé l'indice cohérent.

3. Spécifiez l'adresse IP

L'instance est sur le même ordinateur que BoincTasks, donc c'est toujours localhost. Je ne sais pas si c'est nécessaire mais j'ai ajouté l'index à la fin pour que BOINC2 ait "localhost2" comme adresse IP. Ça marche pour moi.

4. Spécifiez le port

Utilisez le même port que celui figurant dans le premier fichier batch. BOINC2 pour moi était 31418.

5. Donnez le mot de passe à BOINCTasks

Même chose ici, collez le mot de passe pour BOINC2 à partir du fichier gui_rpc_auth.cfg.


Après cela, je peux contrôler les instances de Boinc avec BoincTasks. En fait, je n'ai jamais de fenêtres BM ouvertes sur mon bureau et encore moins une pour chaque instance. Voici à quoi ressemblent certaines de mes instances dans BOINCTasks


J'ai d'abord configuré plusieurs clients pour exécuter Goofy pour les points et les heures WUProp car c'est une application NCI avec des badges, mais cela devrait aider le Pentathlon à venir.
[ET CA C'EST LE MAL ! Il y a un long sujet sur le forum de WUProp à ce sujet, et à l'heure où j'écris cela a dégouté Seb sur le long terme]

Tous les fichiers app_config.xml ou gpu.config devront être copiés dans les nouveaux dossiers de projet créés dans les dossiers BOINC #.


Version Linux


J'utilise Mint, il y a donc peut-être des ajustements à faire en fonction des distribs ou de l'installation de boinc. Je rappelle que Linux est sensible à la casse. Toutes les commandes ci-dessous peuvent être entrées dans une fenêtre de terminal qui peut être ouverte en appuyant sur Ctrl + Maj + T à la fois.

1. Créez un répertoire de données pour plusieurs instances BOINC

Pour chaque instance BOINC supplémentaire que vous souhaitez exécuter, il suffit d'incrémenter le # pour chaque instance. J'ai fait le mien juste dans le dossier normal de boinc-client avec cette commande dans le terminal.

sudo mkdir /var/lib/boinc2
2. Créez le fichier cc_config.xml

Tout comme la version de Windows, créez le fichier cc_config.xml et collez ces quelques lignes pour un accès facile via l'accès distant BM ou BOINCTasks.

sudo gedit /var/lib/boinc2/cc_config.xml
Utilisez votre éditeur de texte de votre choix. J'ai utilisé gedit et nano. L'un ou l'autre fonctionne.

3. Coller le texte dans cc_config.xml

Copiez dans ces lignes et enregistrez.

<cc_config>
 <options>
  <use_all_gpus>1</use_all_gpus>
  <allow_multiple_clients> 1 </allow_multiple_clients>
 </options>
</cc_config>

Ajoutez également cette ligne si le client supplémentaire est sur un PC distant:

<allow_remote_gui_rpc>1</ allow_remote_gui_rpc>
4. Créez un gui_rpc_auth.cfg vide

J'ai trouvé qu'il était plus facile de créer un fichier vide sous Linux, alors créez un fichier vide et sauvegardez. Il peut probablement être fait la même chose dans Windows mais bon j'ai déjà écrit la version Windows.

sudo gedit /var/lib/gui_rpc_auth.cfg
5. Démarrez l'instance client BOINC

Exécutez cette commande pour démarrer l'instance BOINC avec le numéro de port et le répertoire ajustés.

sudo /usr/bin/boinc --daemon --allow_multiple_clients --gui_rpc_port 31422 --dir /var/lib/boinc2
Pour plus d'instances, j'ai ajusté le port # et le dossier boinc #. De là, vous pouvez surveiller avec BOINCTasks ou un gestionnaire BOINC.


Configuration de WUProp
[ET LA DE NOUVEAU C'EST LE MAL]

Pour permettre à WUProp de rassembler des données sur tous les projets que vous exécutez sur les instances BOINC supplémentaires, il aura besoin d'un fichier app_config.xml pour utiliser le port rpc_gui configuré avec le client. Accédez à chacun de vos dossiers de données boinc et créez un fichier app_config.xml et collez-y les éléments suivants:

<app_config>
 <app_version>
   <nom_app>data_collect_v4</app_name>
   <classe_plan>nci</classe_class>
   <avg_ncpus>0.01</avg_ncpus>
   <cmdline>-p 31418</cmdline>
 </app_version>
</ app_config>

Si vous avez configuré la même structure de dossier que moi, le dossier se trouvera ici:

Windows: C:\ProgramData\BOINC2\projects\wuprop.boinc-af.org/app_config.xm
Linux: /var/lib/boinc2/projects/wuprop.boinc-af.org/app_config.xml

Ajustez le numéro de port dans l'option cmdline pour correspondre à cette instance BOINC. Par ma configuration au-dessus de mon port Windows pour BOINC2 était 31418 et ceci est mon fichier. Assurez-vous que BM a relu les fichiers app_config.xml pour récupérer la modification.

--------------------------------------------

Remarques :
- je pars du principe qu'il faut connaitre et étudier le MAL pour pouvoir le comprendre et lutter contre lui
- je n'offre aucun support pour ce tuto :)
« Modifié: 26 mars 2018 à 17:31 par JeromeC »
Parce que c'était lui, parce que c'était moi.

Jakez Sulli

  • DROITS - Journalistes
  • Messages: 922
  • Boinc'eur Respectable
  • *
  •   
    • Alliance Francophone
Re : Configuration de plusieurs instances BOINC
« Réponse #1 le: 16 octobre 2018 à 10:46 »
 :kookoo: Good job JeromeC  :jap: tks.
« La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.» - Albert Einstein
 

GuL

  • Messages: 1657
  • Boinc'eur devant l'éternel
  • *****
  •   
Re : Configuration de plusieurs instances BOINC
« Réponse #2 le: 17 octobre 2018 à 21:14 »
Un grand merci Jérôme pour cet article fort intéressant  :jap: