Contacter l'auteur / Contact the author

Recherche dans ce site / Search in this site

 

Du projet SETI@home à BOINC

Document L.Cook.

La plate-forme BOINC (IV)

Depuis l'an 2000, le projet SETI@home a couvert la plus grande partie du ciel visible d'Arecibo et démontré la validité de son approche dans l'analyse des données. Mais en l'espace de deux ans d'exploitation les caisses de l'institut se sont vidées et en 2002 SETI relança ses donateurs privés.

Mais comment pourrait-on arrêter SETI ? Etait-ce envisageable ? Vu le nombre de participants et la qualité des analyses, il n'en était pas question.

Début 2002, David Anderson et Dan Werthimer pensaient que SETI@home pouvait renaître tel le Phoenix et traiter les signaux radios d'un autre radiotélescope, celui de Parkes installé en Australie par exemple, qui permettrait de couvrir un angle de 70° sur la voûte céleste. Les scientifiques étaient prêts, de même que les installations, restait à financer le projet.

Le groupe de Berkeley pensait également améliorer l'analyse spectrale et étendre plus tard le projet aux données d'autres observatoires répartis autour du monde. Les idées ne manquaient pas et le planning était donc bouclé.

Mais il restait un problème technique à surmonter, et pas des moindres. Jusqu'en 2006 le client SETI@home reposait sur les seules données enregistrées à Arecibo et ce manque de flexibilité entravait le projet. En effet, le programme recherchait par exemple des signaux gaussiens qui durent environ 12 secondes, parce que c'est le temps qu'il faut à l'antenne d'Arecibo pour scanner n'importe quel point du ciel. Il n'était pas question de lui demander de rechercher des pulses d'une durée différente. Ce paramètre était en fait "hardcodé" dans l'application.

De la même manière, l'analyse s'effectuait rapidement lorsqu'il s'agissait de traiter un signal de 2 bits, comme étaient alors formatées les unités de travail envoyées aux utilisateurs. Mais si on voulait augmenter la sensibilité du système et travailler sur 8 bits par exemple, l'unité de travail ne pouvait pas être traitée sur les PC car elles n'étaient pas reconnues par le logiciel client. En fait toute donnée déviant des paramètres définis dans l'application n'était tout simplement pas traitée. Il en résultait que les premières versions du client SETI@home ne pouvaient pas analyser de données provenant d'un autre observatoire ni utiliser d'autres instruments que ceux pour lesquels il était programmé.

Le radiotélescope de Parkes de 64m. Document David McClenaghan/CSIRO.

Par exemple, SETI@home ne pouvait pas collecter les signaux SETI de l'observatoire radioastronomique australien de Parkes parce que les paramètres et les instruments utilisés sont très différents de ceux d'Arecibo. Pour les analyser, la communauté des utilisateurs de SETI@home devait télécharger une nouvelle version du client, spécialement conçue pour traiter les signaux de Parkes. Mais en faisant cela, on ne pouvait plus traiter les signaux d'Arecibo...

Il fallait donc améliorer le système et le rendre plus souple. C'est pourquoi David Anderson et son équipe ont développé BOINC, le "Berkeley Open Infrastructure for Networking Computing". Le produit fut distribué en 2003.

Comme l'ancienne version, cette interface fonctionne lorsque le processeur de votre ordinateur n'est pas utilisé et remplace optionnellement votre économiseur d'écran (screensaver).

BOINC est une plate-forme, un environnement multi-processeurs qui fonctionne en temps partagé; il est capable de gérer plusieurs projets simultanément, partageant le temps CPU entre plusieurs projets. Des variables sont attribuées à chaque unité de travail afin de déterminer le temps exact pris par chaque projet.

Chaque unité de travail est traitée trois fois avant que le système ne passe la main au process suivant, le projet en cours étant suspendu. Il ne s'agit pas donc pas de réel time-sharing, sauf si vous assignez physiquement un CPU par projet si votre ordinateur le permet.

La version BOINC de SETI@home est paramétrée de telle sorte que la bande passante du signal analysé, le taux angulaire ou le niveau de sensibilité de l'enregistrement (2 ou 8 bits, etc) n'est plus encodé en dur dans l'application ce qui offre plus de souplesses aux les programmeurs de Berkeley. 

En effet, les paramètres font à présent partie de l'information fournie avec chaque unité de travail. 

Ainsi, une unité de travail provenant d'Arecibo dira au programme client qu'elle a été enregistrée avec une sensibilité étalée sur 2 bits et que la largeur du beam est de 12 secondes. Une unité de travail provenant de Parkes ou de tout autre observatoire et enregistrée à une plus haute résolution contiendra d'autres paramètres auxquels s'ajustera automatiquement SETI@home.

Comme toutes les applications distribuées, vous pouvez installer SETI@home directement à travers l'interface BOINC Manager que vous pouvez télécharger sur le site de l'Université de Berkeley.

Télécharger le client BOINC

La convergence des applications distribuées vers BOINC

Depuis 2006, SETI@home fonctionne exclusivement sous BOINC et les deux systèmes y ont gagné : SETI@home tire avantage de la flexibilité de l'environnement BOINC, cette interface devenant un noyau de plus en plus prisé pour la gestion des "grid applications" comme on les appelle, les applications distribuées.

En effet, parmi tous les projets (139 en 2013) supportés par BOINC citons notamment :

- Astronomie : SETI@home, Cosmology@Home, Asteroids@home, Milkyway@home, theSkyNet POGS

- Astronautique : Constellation

- Physique : Einstein@Home, LHC@home, uFluids, eOn, Iberdvis

- Météorologie : Climateprediction.net, Weather@home

- Biologie et Médecine : SIMAP, Rosetta@home, Docking@Home, FightMalaria@Home, Malariacontrol.net, GPUGrid.net

- Chimie : Spinhenge@home, Leiden Classical

- Environnement : Radioactive@Home

- Informatique : DistrRTgen, VoIPEx

- Informatique quantique : OProject@Home

- IA et Neurosciences : FreeHAL, MindModeling@Home

- Mathématiques : PrimeGrid, ABC@home, Collatz Conjecture, NFS@home, SAT@home

- ONG : World Community Grid

- Séismologie : Quake Catcher Network (avec sonde USB)

- Jeux de statégies : Chess960@Home.

Il faut y ajouter des analyseurs de performances de l'interface BOINC et des applications tests.

Quatre applications distribuées (grid applications) parmi les nombreux projets tournant dans l'environnement BOINC sous Windows. De gauche à droite, Quake Catcher Network, Einstein, Spinhenge et Climateprediction. Documents T.Lombry.

Ces projets font avancer la Science. Einstein@Home par exemple atteint une puissance de calcul globale supérieure à 500 TFLOPS grâce à la participation de 350000 internautes et plus de 6 millions d'ordinateurs. 

Ainsi que l'explique cet article publié en 2013 et ses références ainsi que celui publié par l'AEI en 2015, depuis 2009 Einstein@Home a permis aux astronomes de découvrir des dizaines de pulsars et un jour peut-être, des ondes gravitationnelles. L'étude des pulsars permet de mieux comprendre la fin de vie des étoiles peu massives.

Grâce à Rosetta@home, les biologistes et les biochimistes peuvent créer de nouveaux enzymes et vaccins pour lutter contres des parasites toujours plus résistants.

Enfin, grâce à Quake Catcher Network et une sonde USB connectée à votre ordinateur, les séismologues peuvent détecter et suivre l'activité séismique en temps réel à travers le monde, etc.

Paramétrage de BOINC

En pratique, si vous avez déjà souscrit au client SETI@home, votre compte sera simplement transféré sous BOINC.

La langue de l'interface BOINC Manager dépendra des paramètres que vous aurez configurés via le menu "Outils", Options, Langue. 

C'est par le biais de BOINC Manager que vous pourrez ajouter des projets via le Menu "Outils", Rejoindre un projet... (Tools, Attach to projet...). Comme pour tous les projets, pour SETI@home par exemple, le système vous demandera un identifiant (adresse email et un mot de passe) puis se connectera sur le site de l'Université de Berkeley (http://setiathome.berkeley.edu). Vous pouvez également rejoindre une équipe.

Lorsque le projet sera activé, le nombre d'unités de travail ou crédits déjà traités sera simplement réinitialisé à 0 sous BOINC sans affecter le compteur original.

A gauche, test de puissance de l'ordinateur juste après l'installation de BOINC Manager (v7.6.9 de 2015) et avant que les projets ne soient installés ou lancés pour la première fois. Au centre, l'installation de BOINC Manager comme service ne permet pas d'exploiter la rapidité de calcul des CUDA de la carte graphique contrairement à l'installation standard. A droite, la vue simple de l'interface BOINC manager.

L'interface BOINC propose des fonctions supplémentaires par rapport à l'ancien client SETI@home. Elle offre par exemple la possibilité de définir l'usage des processeurs (dans les systèmes multi coeurs), des processeurs graphiques, la capacité disque réservée à chaque projet, le temps de travail ou l'occupation mémoire. Ces paramètres sont identiques pour tous les projets. Vous pouvez lancer BOINC au démarrage de l'ordinateur, y compris l'installer comme un service pour éviter d'éventuels conflits de mémoire notamment.

Seule contrainte, si vous l'installez comme service comme indiqué ci-dessus-au centre, BOINC ne pourra pas exploiter la vitesse et la puissance de calcul des coeurs de processeurs de la carte graphique (CUDA) car le service démarre avant les pilotes de la carte. Aussi, si vous voulez exploiter les CUDA, n'installez pas BOINC comme service mais plutôt de manière standard (avec tous ses processes qui s'afficheront dans le Gestionnaire de tâches de Windows).

Si vous désirez modifier les paramètres de SETI@home ou de BOINC par la suite, ne les cherchez pas sur votre ordinateur, ils n'y sont pas... Dans BOINC Manager, choisissez le projet ou la tâche, ensuite, dans le menu affiché à gauche cliquez sur "Home page". Une fois sur le site du projet, cherchez le lien "Votre compte" ou "Your account". Procédez de même pour les autres projets.

A l'inverse de l'ancien client Windows de SETI@home, la fenêtre graphique n'apparaît pas au lancement de BOINC Manager, ce dernier ne faisant que gérer et traiter les données des différents projets installés. Pour afficher le graphique, vous devez tout d'abord attacher (charger) le projet SETI@home sous BOINC puis sélectionner l'onglet Tâches (Tasks) et cliquer sur le projet SETI@home. Ensuite, sur le menu affiché à gauche, sélectionnez la commande "Montrer les graphiques" (Show graphics) si elle est activée (certains projets n'ont pas implémenté de représentation graphique). La même procédure s'applique aux autres projets.

La version de SETI@home sous BOINC tire avantage du langage OpenGL et présente une interface en trois dimensions que vous pouvez agrandir et orienter dans toutes les directions grâce à la souris. Le GUI vaut assurément le détour. 

La version 7 de SETI@home est environ 10 fois plus sensible que la version 3. Cette version améliorée est également très bien optimisée. Bien qu'elle paraisse plus lente dans l'absolu que la version précédente car les taux angulaires sont différents, la nouvelle version analyse réellement plus de données que la version antérieure, et à taux angulaire constant elle est deux fois plus rapide que l'ancienne version.

A voir : SETI@home World Visualization

Flux de transmission des Work Units entre les utilisateurs et l'Université de Berkeley

A gauche, l'interface BOINC Manager (affiché en mode "vue avancée") permet de gérer plusieurs projets distribués simultanément. Dans cet exemple, l'avantage des ordinateurs multi-processeurs est de pouvoir assigner une tâche à chaque processeur tel que cela été défini dans les préférences. A droite, l'interface tridimensionnelle et customisée de SETI@home v7 disponible depuis le 17 mars 2011 écrite en OpenGL pour BOINC.

Unités de travail et crédits

Pour les statistiques, ainsi que nous l'avons évoqué, il a fallu remplacer le nombre d'"unités de travail" par les "crédits". Ceci parce que la plate-forme BOINC est un planificateur de tâches, un scheduler gérant différents projets. Chaque projet dispose de sa propre méthode de traitement et les durées de calcul sont très variables. Ainsi le projet "Climate prediction" doit tourner plus d'un mois non stop pour traiter une seule unité de travail alors que sur la même machine Einstein@home requiert mois de 25 heures de calculs et SETI@home entre 1 et 5 heures.

Afin que les performances puissent être comparables entre projets et qu'on puisse établir un comparatif (benchmark) entre les machines, le nouveau système tient compte des performances de calcul de l'ordinateur indépendamment du temps de traitement. Bien que les unités de travail aient toujours une taille de 367 KB sous Windows, elles se différencient par leur taux angulaire. De ce fait, une petite unité de travail (en terme de durée) recevra moins de crédits qu'une unité plus longue. En utilisant les crédits, produit du temps CPU par la puissance, on obtient une mesure réelle du temps de calcul du systèmeindépendamment du projet.

Ainsi le même Pentium III de 500 MHz qui présente une puissance de calcul de 0.4 TFLOPS (indice Whetstone) se voit dorénavant attribuer 65 crédits pour une unité de travail traitée en 32 heures alors qu'un ordinateur cadencé à plus de 3 GHz et présentant une puissance de calcul d'environ 3 TFLOPS reçoit au moins 200 crédits par unité traitée.

Le concept de crédit est en fait la seule solution pour établir des comparatifs objectifs dans un parc hétérogène de machines. Au début les crédits étaient basés sur un comparatif réalisé avec la version 4.x de SETI@home. Les versions plus récentes utilisent les fameux FLOPS : elles comptent le nombre de FLOPS nécessaires au traitement d'une unité de travail tout en tenant compte du taux angulaire (AR) selon les relations suivantes exprimées en TFLOPS :

Si AR < 0.2255°,  TFLOPS = 3.54 (0.0327 * AR)

Si 0.2255°  £  AR  £  1.1274°, TFLOPS = 3.74 * AR -0.1075

Si AR > 1.1274°, TFLOPS = 3.37 * AR -0.0065

A partir de ce résultat le temps de calcul d'une unité de travail vaut :

Tcal = 278 (TFLOPS * CpF / MHz )

avec CpF le nombre de cycle d'horloge par FLOPS. Il tient compte de la vitesse du processeur et de la quantité de mémoire cache processeur de niveau 2 (L2). 

Pour chaque unité de travail renvoyée et validée, le système vous affiche le nombre de crédits et le temps total de traitement en secondes. Ce résultat est accessible en cliquant sur le bouton "Vos résultats" (Your results) de BOINC Manager qui vous transfert sur le site de SETI@home. A partir de ces données et de la formule précédente vous pouvez calculer la valeur de CpF.

A titre d'information, un ordinateur cadencé à 1.1 GHz présente un CpF = 5.21. Une unité de travail représentant 4.10 TFLOPS correspond à un temps de calcul de 5h23m.

Avec ce nouveau système, les crédits sont mieux calculés qu'auparavant. Le système de comparaison présente toutefois quelques défauts; le résultat du benchmark est par exemple plus précis avec les systèmes disposant d'un petit cache processeur.

Dernier chapitre

Bénévolat et subsides

Page 1 - 2 - 3 - 4 - 5 -


Back to:

HOME

Copyright & FAQ