Client SMP Linux 6.34 standard et BigAdv

Publié le par Cobra

 

Bienvenue dans le tutoriel consacré au client SMP 6.34 pour Linux !

 

Sommaire


Introduction

Remarquons tout de suite que deux clients sont techniquement à même de faire du SMP, mais qu’en final nous n’en retiendrons qu’un seul :

  • 6.02 (32/64 bits) : en tant que client SMP, il est obsolète, et, s’il est toujours présent, c’est du fait qu’il est le seul des deux à pouvoir fonctionner dans un environnement 32 bits réservé exclusivement au mode uniprocesseur classique.
  • 6.34 (64 bits) : il est plus récent, plus évolué et plus complet. Et c’est lui qui fera l’objet de ce tutoriel.

 

Le client SMP utilise l’architecture parallèle des processeurs de l’ordinateur, d’où son nom complet : « Symetric MultiProcessing ».  Il n’est pas classé parmi les clients dits « haute performance », mais  il est considéré comme tel, et le délai pour retourner les résultats est très court (quelques jours). L’ordinateur doit donc être multi-core, performant, stable, et une distribution Linux 64 bits est obligatoire.

 

Cette caractéristique « haute performance » fait que c’est un client bien rémunéré. D’ailleurs, les chercheurs de Stanford incitent les donateurs à retourner les résultats le plus rapidement possible, c’est pourquoi un « bonus » a été institué : plus vite le calcul est rendu et plus important sera la rétribution en points. Pour profiter de ce « bonus », le donateur doit configurer le client en mentionnant son passkey personnel fourni par Stanford, avoir rendu 10 unités SMP, et réussir à renvoyer au moins 80 % des unités qui lui sont attribuées.

 

Le client SMP permet de traiter des projets SMP « standards » et des projets spéciaux « BigAdv ». Un chapitre particulier, à la fin de ce tutoriel, est consacré aux projets « BigAdv ».

Les pré-requis

  • Processeurs : dualcores au minimum, mais quadcores ou davantage fortement recommandés.
  • Systèmes d’exploitation : distributions Linux 64 bits obligatoires.
  • Librairie 32 bits : dans cet environnement 64 bits, une petite librairie 32 bits est requise.
  • Un passkey est obligatoire pour bénéficier de la rétribution avec bonus. Il faut le demander à Stanford ici, et il sera communiqué par mail.
  • Une connexion internet haut débit est nécessaire.

Téléchargement/Installation/Configuration

Nous utilisons la procédure officielle préconisée pour télécharger, installer, lancer et configurer le client, c’est-à-dire en ligne de commande dans le Terminal. Selon l’interface graphique, l’emplacement du Terminal diffère. Sous « Gnome » : Applications > Accessoires > Terminal.

 

1 – Nous devons procéder au téléchargement et à l’installation de la petite librairie 32 bits, si elle n’est pas déjà intégrée au système d’exploitation :

  • Pour les distributions basées sur Debian (p. ex. Ubuntu) :
    apt-get install ia32-libs
  • Pour les distributions basées sur RedHat :
    yum install compat-libstdc++

 

2 – Nous créons un dossier pour notre client que nous appellons par exemple « folding » :

mkdir -p ~/folding

 

3 – Nous ouvrons le dossier « folding » pour y télécharger le client :
cd ~/folding

 

4 – Nous téléchargeons le client : 

wget http://www.stanford.edu/group/pandegroup/folding/release/FAH6.34-Linux64.tgz

 

5 – Nous dézippons le fichier téléchargé :
tar xzf FAH6.34-Linux64.tgz

 

6 – Nous rendons le client exécutable, si cela s’avère nécessaire :
chmod +x fah6

 

7 – Nous lançons la configuration du client :
./fah6 -configonly


NB : Certaines captures d'écran ci-après peuvent être de la version précédente 6.29, mais cela ne change en rien quant à la procédure.

 

Le client attend que nous entrions les éléments de configuration. La progression se fera ligne après ligne.
Les réponses aux questions sont suggérées entre les [crochets]. Chaque fois que nous serons d’accord sur une proposition par défaut, nous pourrons tout simplement presser sur la touche « Entrée ».

 

 

User name [Anonymous]?
Nous entrons ici notre pseudo de plieur.

 

Team Number [0]?
Stanford a attribué le numéro 51 à l’équipe Alliance Francophone, nous devons entrer 51.

 

Passkey []?
Le passkey est obligatoire pour l’obtention du bonus.
On le demande à Stanford et il nous est envoyé par mail.
Pour des infos sur ce passkey et comment l’obtenir :
http://folding.stanford.edu/English/FAQ-v6#ntoc3
http://fah-web.stanford.edu/cgi-bin/getpasskey.py

 

Ask before fetching/sending work <no/yes> [no]?
Si nous avons une connexion permanente à internet, nous répondons no, sinon yes.
Si nous répondons yes, lorsque le traitement sera achevé et que le client aura besoin de se connecter, il nous le demandera par l’affichage d’une petite fenêtre. Mais pour ce type de client, une connexion permanente est recommandée.

 

Use proxy <yes/no> [no]?
Rares sont les particuliers qui utilisent un proxy, répondons no !
Mais si nous en utilisons un (vu dans Options Internet), répondons yes, puis renseignons les demandes d’informations relatives au proxy.

 

Acceptable size of work assignment an work result packets…
Le client SMP traite de grosses unités de travail, il y a donc de gros transferts en download et en upload, aussi la mention big est la configuration requise.

 

Change advanced options <yes/no> [no]?
Nous inscrivons yes pour avoir accès à la configuration avancée.

 

Core Priority <idle/low> [idle]?
La configuration par défaut est recommandée : idle.

 

Disable highly optimized assembly code <no/yes> [no]?
Il est bien sûr préférable que les optimisations soient activées. Il n’y a donc pas lieu de les désactiver, nous laissons no.

 

Interval, in minutes, between checkpoints <3/30> [15]?
Le programme fera périodiquement une sauvegarde, en plus de la sauvegarde réalisée à chaque pourcent. Nous pouvons laisser 15 mn par défaut.

 

Memory, in MB, to indicate…
C’est la mémoire que nous allouons au programme, ce qui ne veut pas dire qu’il va vraiment s’en servir dans la totalité. Actuellement elle est loin d’atteindre 512 Mo, sauf pour le client SMP BigAdv comme expliqué dans la dernière partie de ce tutoriel. Nous pouvons laisser tel quel.

 

Set -advmethods flag always…
Nous inscrivons yes pour aider les chercheurs à tester un nouveau core ou tenter d’avoir des unités expérimentales à plus fort rendement de points, mais il est à noter que le risque d’instabilité est plus important. Si nous ne voulons pas courir ce risque, nous laissons tel quel.

 

Ignore any deadline information…
Nous laissons no par défaut.

 

Machine ID <1-16> [1]?
C’est le numéro attribué par défaut, nous pouvons le garder si nous ne l’avons pas déjà affecté à un autre client installé sur le même ordinateur.
Ce numéro est très important. Si nous avons plusieurs clients sur le même ordinateur, nous devons préciser un numéro différent par client.

 

Disable CPU affinity lock <no/yes> [no]?
Nous pouvons laisser sur no par défaut.

 

Additional client parameters []?
Le paramètre -smp est obligatoire pour obtenir des unités SMP. Il permet de détecter automatiquement jusqu’à 32 cores. Son omission a pour conséquence l’attribution d’unités classiques pour monocore.
Il est également recommandé de mettre le paramètre -verbosity 9. Il permet de régler le niveau des informations qui seront présentées à l’écran ou mentionnées dans le FAHlog.txt. Par défaut, le niveau est 3 mais il est plus intéressant de le porter à son maximum qui est 9, afin d’avoir toutes les informations disponibles, en vue d’une meilleure compréhension lorsqu’un problème survient.

 

IP address to bind core to (for viewer) []?
Cela est pour le futur, nous pouvons presser sur la touche « Entrée ».

 

Après validation de cette dernière ligne de configuration, le client enregistre les informations et se connecte automatiquement aux serveurs de Stanford qui lui communiquent un identifiant (l’User ID) pour l’ordinateur.

 

 

8 – Nous avons terminé la procédure de configuration et allons maintenant lancer, dans la foulée, la procédure de traitement proprement dite :
./fah6

 

Aucun paramètre n’est plus nécessaire car déjà enregistré dans les options de configuration, surtout le paramètre -smp obligatoire qui a été inscrit sur la ligne Additional client parameters.

 

 

Et le traitement démarre… pourcentage par pourcentage jusqu’à 100 %, puis les résultats sont envoyés sur les serveurs de Stanford. Et une autre unité de travail est téléchargée automatiquement pour traitement, et ainsi de suite…

Remarques basiques sur le Terminal

  • Pour avoir le Terminal sous la main, nous pouvons le placer dans le tableau de bord :
    Applications > Accessoires >clic droit sur Terminal >Ajouter ce lanceur au tableau de bord.
  • Pour minimiser le Terminal ouvert, nous cliquons sur le symbole habituel pour minimiser une fenêtre.
  • Pour fermer proprement le Terminal (arrêter le client), il doit être actif et nous faisons tout simplement un Ctrl+c. Si, ce faisant, les calculs s'arrêtent bien mais le Terminal ne se ferme pas (le client affiche éventuellement « Have a nice day »), il y a lieu de le fermer en cliquant sur la petite croix habituelle.
  • Si nous avons omis le paramètre -smp sur la ligne de configuration Additional client parameters, il sera attribué au client une unité classique pour monocore.  Dans un tel cas, il y a lieu de fermer le client par Ctrl+c, d'aller manuellement dans le dossier « folding » et supprimer le dossier work et le fichier queue, puis relancer le client pour modification :
    cd ~/folding

    ./fah6 -configonly
  • Pour lancer ou relancer le client, nous ouvrons le Terminal et entrons les lignes de commandes :
    cd ~/folding
    ./fah6
  • Il est toujours possible de modifier la configuration avec le paramètre -configonly ou -config :
    ./fah6 -configonly  ou ./fah6 -config

 

Pour plus d'informations sur les paramètres, voir Paramètres et conditions d'utilisation !

Cas particulier du client SMP spécial BigAdv

Des projets spéciaux sont regroupés sous l'appelation BigAdv. Les conditions d'éligibilité à ces projets sont drastiques du fait du nombre important d'atomes dans la simulation, de la complexité des systèmes simulés, et du besoin urgent des résultats par les chercheurs :

  • Processeurs : 8 cores physiques minimum recommandés (8 cores logiques acceptés)
  • Ram : la règle dicte entre 0.5 et 1 Go par core
  • Internet : du fait de gros transferts de données (jusqu'à 120 Mo pour une WU), un haut débit rapide est nécessaire

 

Le client SMP est le même que pour les projets standards. Cependant, il y a lieu de rajouter le paramètre -bigadv. Sur la ligne de configuration Additional client parameters, nous inscrivons donc les paramètres suivants : -smp -bigadv -verbosity 9.

 

Sur la ligne Set -advmethods flag always... il est recommandé de laisser l'Advmethods désactivé !

 

Le fonctionnement du bonus est identique pour les deux types de projets :

  • Utilisation obligatoire du passkey
  • Avoir renvoyé préalablement 10 unités SMP (standards ou BigAdv)
  • Réussir à calculer et renvoyer au moins 80 % des unités attribuées, tous projets SMP confondus

 

Script pour lancer le client

Nous avons vu que, pour lancer le client déjà configuré, nous ouvrons normalement le Terminal, et nous entrons les deux lignes de commandes :

cd ~/folding
./fah6

 

Mais nous pouvons lancer le client directement à partir d'un "lanceur" placé sur le bureau :

 

1 - Nous nous plaçons dans le dossier du client que nous avons appelé « folding » :
Raccourci > Dossier personnel > folding

 

2 - Nous faisons un clic droit et sélectionnons « Nouveau document » que nous nommerons, par exemple, « LanceurSMP ».

 

3 - Nous ouvrons le document vierge LanceurSMP et entrons les deux lignes de commandes habituelles :

cd ~/folding
./fah6

 

Nous cliquons sur « Enregistrer » et fermons le document.

 

4 - Nous ouvrons le Terminal et allons rendre le script exécutable :
cd ~/folding

sudo chmod 777 LanceurSMP

 

Nous fermons le Terminal.

 

5 - Nous faisons un clic droit sur le bureau et sélectionnons « Créer un lanceur ».

Nous nommons le lanceur, par exemple : « SMP Linux ».

Nous indiquons le chemin d'accès du script LanceurSMP, via « Parcourir ».

Pour le Type, nous privilégions « Application dans un Terminal », afin que le client se lance dans le Terminal, et non en mode silencieux.

 

Le lanceur est maintenant parfaitement fonctionnel et s'installe bien sur le bureau :

 

http://nsm05.casimages.com/img/2010/12/20//101220092252221007339910.png

 

Il suffit maintenant de double-cliquer sur le lanceur pour faire exécuter le client SMP Linux dans le Terminal.

Correctifs

Certaines versions des distributions Linux présentent des problèmes. Des plieurs, Linuxiens chevronnés, ont proposé des solutions de contournement :

 

Cette liste sera mise à jour...

 

Haut de page

 

 

 

 

 

Pour être informé des derniers articles, inscrivez vous :

Commenter cet article

Cobra 19/01/2011 05:07



Oups, je t'avais oublié


 


Tu sais que je ne suis pas un pinguoin qui respire sous l'eau Alors, je préfère laisser à d'autres le soin d'écrire
les lignes de commandes qui sortent de l'ordinaire terrestre



ju 14/01/2011 19:57



Merci a toi de faire tous ces tutos :)


Si j'puis m'permettre une petite remarque (la dernière promis) les 2 solutions sont identiques (et celle de la fedora aussi): le but est de recupérer/installer le paquet nsdc, d'editer le fichier
nscd.conf (l'emplassement difère selon les versions de linux...) et de mettre yes dans la ligne "enable-cache hosts no" et de relancer le service avec un restart.


Une simple ligne d'explication peu peut être suffir plutot que de renvoyer ailleurs par version d'ubuntu, et au pire mettre le lien vers fah-addict si besoins est...


m'enfin c'est juste pour être chiant, hein :p



Cobra 14/01/2011 06:46



Merci Ju


 


J'ai créé une rubrique "Correctifs". Pour l'instant, j'ai retenu les correctifs pour Ubuntu 10.04 et 10.10. Celui pour Fedora 14 est trop spécifique, assez confus, et concerne un OS 32 bits, donc
le client 6.02.


 


Si le hasard veut que tu en vois d'autres, je prends


 


Merci encore



ju 11/01/2011 19:29



Bin que ce soit sur la fedora 14 sur le forum de Stanford ou sur ubuntu 10.04 ici ou la 10.10
sur fah-addict la solution de modifier le fichier conf de
nsdc fonctionne .


voili-voilou ;)



Cobra 10/01/2011 04:21



Coucou Ju,


J'ai lu qu'il y a des soucis avec certaines versions Linux, surtout les dernières. Il faudrait en effet que je dise un mot là-dessus, juste ce qu'il faut pour ne pas alourdir le tuto.


Si tu as des sources, n'hésite pas à me les communiquer !


A plus