BOINC

par

Cher Procrastinateur, chère procrastinatrice

Vous procrastinez ! C’est bien ! Mais savez-vous que votre ordinateur le fait aussi très souvent ?

Alors qu’il pourrait changer le monde, trouver de nouveaux médicaments, étudier l’espace ! Et en plus de ne rien faire, il consomme quand même de l’électricité ?

Un gourmand fainéant !

Aujourd’hui, je vous propose de voir une manière utile de faire travailler votre ordinateur, sans vous déranger et en résolvant les problèmes de l’humanité. Sachez que de nombreuses recherches très sérieuses n’attendent que vous pour pouvoir progresser. Un réflexe le BOINC !!! Cet article va être très long. Pour remédier à cela, voici un sommaire qui vous permettra d’aller directement là ou vous le souhaitez.

  1. Introduction
  2. Quelques notions d’informatiques et d’architectures
  3. WTF ?? Qu’est-ce-que le Grid Computing ?
  4. BOINC et BAM
    4.1  Les projets
    4.2  Qu-allez vous gagner ?
  5. Utilisation
    5.1  Installation
    5.2 Prise en main


1. Introduction 

Pour simple rappel, le LHC ( Le Grand collisionneur de hadrons ) produit environ quinze Petaoctets de données par an soit quinze millions de gigaoctets. Pour traiter tous ces problèmes scientifiques, on a des supercalculateurs. Oui, mais ça coute cher et il n’y en a pas tant que ça ! Nous faisons alors appel à des grilles de calcul pour corriger ce manque !

La France est à l’heure où j’écris cet article, classé 9 éme dans le classement des supercalculateurs avec le fameux terra100 du CEA de la société BULL. Cependant tout le monde n’a pas accès à ces machines et elles coutent très cher.

Mais d’autres solutions existent. C’est par exemple ce qui est utilisé pour le LHC, le grid computing. Mais avant d’attaquer le gros morceau, il est nécessaire d’avoir des bases en informatique et nous allons voir tout cela simplement.

2. Quelques notions d’informatiques et d’architectures

Afin de bien comprendre la suite de l’article, il est nécessaire d’avoir quelques notions.

Mais ne vous inquiétez pas. Cela va être rapide et très facilement compréhensible. La partie qui va suivre est donc très simplifiée et utilisera de nombreux raccourcis. Si vous le souhaitez, on pourra créer un article poussé sur ces sujets.

       a) Processeurs

Voilà à quoi ressemble le processeur dans votre machine. En temps normal il est recouvert d'un système extracteur de chaleur.

Dans votre ordinateur il y a un composant crucial, c’est le processeur. C’est lui qui va nous intéresser. Le processeur est un élément qui sait faire des choses très basiques additionner, soustraire, multiplier , ranger des chiffres dans des cases, etc.

Lorsque l’on va lancer un programme, le processeur va charger une liste d’actions et les exécuter. Un processeur a plusieurs caractéristiques qui le définissent :

  • La mémoire qui lui permet de contenir les futures actions à exécuter (cette mémoire, c’est la mémoire cache , ce sont généralement des bascules-D bien plus rapide que la RAM) et stocker les résultats de ses calculs.
  • Sa fréquence qui détermine combien de fois par seconde il va exécuter un cycle. Par exemple si on dit qu’un processeur à une fréquence de 1Ghz cela signifie qu’il va faire 1 milliard de cycles par seconde.
  • Il y a aussi le nombre d’opérations par cycle (son inverse est le nombre de cycles par opération). Par exemple en gardant la même fréquence de processeur, si le nombre d’additions possible est de 2 par cycle, le processeur sera capable de faire 2 milliards d’additions par seconde !
  • Une autre caractéristique est le nombre de cœurs. La notion de cœur est un peu plus complexe. Cela signifie en gros qu’on a plusieurs processeurs dans un seul. Imaginons que nous avons un processeur avec 2 cœurs à 1 GHz capable de faire 2 opérations par cycles. Alors nous pouvons faire simultanément 2 fois 2 milliards d’additions par seconde ! Il ne faut donc pas considérer que l’on peut faire 4 milliards d’opérations les unes après les autres. On fait 2 fois 2 milliards d’opérations en parallèle.

        b) Programme

Un Programme est une suite d’instructions comme une recette de cuisine. Lorsqu’on lance un programme, le processeur reçoit des instructions par exemple :

 – additionne 2 et 8 puis multiplie le résultat par 10, compare cette valeur avec 20, etc.

Notre programme va donc contenir toutes ces actions. Quand il n’y a plus rien à exécuter, le programme est terminé. Imaginons que nous avons notre processeur 2 coeurs à 1 GHz et à 2 opérations par cycle. Ainsi que le programme suivant:

Additionner 2 et 9 puis stocker dans A

Additionner 8 et 5 puis stocker dans B

Additionner A et B puis stocker dans C

Si on considère que l’action de stocker prend autant de temps qu’une addition, nous avons alors 6 actions soit 3 cycles. Combien de temps cela va-t-il prendre pour exécuter le programme ? 3 nanosecondes !

Pourquoi ?

Nous allons introduire la notion de fil d’exécution ou thread. Un fil d’exécution est une suite d’opérations. Comme notre programme précédemment. Oui, mais un fil d’exécution ne peut s’exécuter que sur un cœur à la fois. Voilà pourquoi nous ne sommes pas allés deux fois plus vite. Car notre programme est pour le moment constitué d’un seul et unique fil d’exécution. Un programme peut avoir plusieurs fils d’exécution. Pour répartir les tâches sur les différents cœurs. Nous pouvons découper notre programme en deux fils d’exécutions.

Fils  2 : Additionner 2 et 9 puis stocker dans A

Fils 1 :Additionner  8 et 5 puis stocker dans B Attendre fin Fils 2  Additionner A et B puis stocker dans C

Ainsi nous allons avoir 2 opérations sur un coeur et 4 opérations sur le deuxième ( si l’attente est nulle). Nous allons exécuter le programme en 2 ns ! Maintenant, nous allons pouvoir continuer, car vous avez les bases suffisantes pour comprendre la suite.

3. WTF ?? Qu’est ce que le Grid Computing ?

Le Grid Computing ou Grille de calcul est un concept extrêmement intéressant et pratique. Comme nous l’avons vu précédemment, un programme peut-être divisé en fils d’exécutions pouvant être exécutés sur différents cœurs d’un processeur.

Imaginons maintenant que cela peut être fait, mais a une échelle plus grande. Sur différentes machines.

Imaginons que vous souhaitez analyser une réaction chimique. Cette simulation va être très gourmande en calcul.

Vous pouvez découper votre simulation et envoyer ces différentes parties à plusieurs machines au bout du monde. Quand chaque machine a fini le calcul, elle vous rend le résultat. Avec l’ensemble des résultats, vous avez la réponse à votre simulation.

C’est le Grid-Computing.

Cela est très intéressant, car il y a énormément d’ordinateurs dans le monde. Et cela va donc accélérer la vitesse à laquelle nous aurons notre réponse. Pour tout dire c’est la même chose sur un supercalculateur.

Il y a deux types de grille de calcul. Il y a les privées et les publiques. Le LHC utilise une grille de calcul privée (maintenant une petite partie de publique aussi). Mais nous allons nous intéresser aux grilles publiques ! Imaginons que nous sommes un petit laboratoire et que vous avez besoin d’une grande puissance de calcul. Vous n’avez pas accès aux supercalculateurs.

Vous vous rendez compte que dans le monde il y a énormément d’ordinateurs individuels des portables, des ordinateurs de bureaux, etc.

Ces ordinateurs ne sont pas utilisés à 100% de leurs capacités. Vous avez surement compris. L’idée des grilles publiques est d’utiliser cette fabuleuse puissance non utilisée de plus d’un milliard de machines sur terre.

 Par exemple pour écrire cet article en écoutant de la musique sur internet et en réparant mon installation d’Eve Online je n’utilise que 15% de mon processeur. 85% ne sont pas utilisés.

On peut ici voir que lors d'un usage "bureautique" d'un ordinateur le processeur travail peu.

Utilisation CPU faible

Ici on voit le pourcentage d’utilisation après la mention « UC utilisée ». Les deux graphiques du haut montre dans le temps les variations d’utilisations du CPU. Chacun des graphiques représente un cœur du processeur.

Pour utiliser toute cette puissance dormante, il faut d’abord que les gens à qui appartiennent les machines rejoignent les grilles publiques !

C’est ce que nous allons faire de suite ! Si vous le souhaitez !

 4. BOINC et BAM

Nous allons maintenant voir comment vous aussi vous pouvez aider le monde grâce à votre ordinateur.

Nous allons utiliser BOINC un logiciel qui permet de contribuer à différents projets. Chaque projet est simplement une petite grille.

Logo Boinc de base souvent on n'affiche que le O

Logo Du Projet Boinc

Le BOINC gère les différentes tâches des différents projets. Et respecte vos limitations. Nous allons détailler tout cela après.

          1. Les projets

Nous allons voir quelques projets auxquels vous pourrez contribuer :

  1. WCG ( World Community Grid ) : C’est une initiative d’IBM, ce projet à pour but de résoudre les problèmes de l’humanité. Nous y trouvons donc divers sous projets. Actuellement on y trouve de la recherche contre le SIDA, le Cancer, la malaria et d’autres maladies. Du séquençage du génome humain. Ainsi  que de la recherche pour la purification de l’eau et de la production d’électricité propre.
    L’adresse du projet est : http://www.worldcommunitygrid.org/
  2. einstein@home : Ce projet a pour but la détection des vagues gravitationnels. Ainsi que l’étude de la gravitation à l’échelle de l’univers.
    L’adresse du projet est : http://www.physicscentral.com/experiment/einsteinathome/
  3. Climate Prediction : Comme le nom le laisse penser ce projet a pour but la recherche dans la prédiction du climat. Votre ordinateur simulera différentes propositions de climat. Cela permet d’estimer les différents paramètres qui influent sur notre climat.
    L’adresse du projet est : http://climateprediction.net/

Il y a énormément de projets qui ont besoin de votre aide. Une liste avec une très courte description peut être trouvée ici : http://boincstats.com/page/project_ranking.php

          2. Qu’allez-vous gagner ?

Je le dis de suite. Rien. Vous n’allez rien gagner de réel. Les seules choses que vous allez gagner sont des points virtuels. Ces points permettent de récompenser les gens pour les résultats qu’ils ont renvoyés. Mais ces points ne servent à rien, à part pour établir un classement. Certains projets donnent aussi des badges virtuels.

Il est arrivé dans l’histoire que certains projets dans la recherche de nombre premier aient donné de l’argent aux personnes, dont l’ordinateur avait découvert un nouveau nombre premier.

Votre geste sera donc purement désintéressé mais, il aidera grandement à l’accomplissement de recherches bénéfiques pour tous.

          3. Avantage et désavantages

Malheureusement cette méthode n’a pas que des avantages. Nous allons donc voir les avantages et les désavantages.

Les avantages sont clairs, aider la science. Le processus est quasiment transparent.  En effet si vous utilisez 100% de votre ordinateur alors BOINC en utilisera 0% à l’inverse si vous en utilisez 0% alors BOINC en prendra 100%.

Vous ne devriez donc pas être dérangé. Sauf si vous êtes court en RAM. Par exemple si vous jouez et que vous avez peu de mémoire vive vous risquez de sentir un ralentissement dans vos parties. Mais ce désavantage se résout simplement, grâce à une option dans BOINC.

Il n’y a pas de vrai désavantage sur les machines fixes.

Enfin presque. Il est possible d’utiliser la carte graphique de l’ordinateur, malheureusement même si la puissance est énorme, cela peut entrainer une forte consommation électrique ainsi qu’un fort dégagement de chaleur. Vous pouvez donc calculer avec votre carte graphique sur les ordinateurs fixes même si cela va augmenter votre facture d’électricité, mais je le déconseille sur les portables à cause du fort dégagement de chaleur.

On pense souvent qu’utiliser à 100% son ordinateur le dégrade plus rapidement. Cela est faux. Ces composants sont faits pour travailler à 100%. Cependant une surchauffe peut accélérer la dégradation du matériel.

Il est aussi possible de désactiver le calcul de la carte graphique à partir du BOINC.

Un autre détail qui n’est malheureusement cette fois ci pas réglable. Le calcul sur les portables.

Votre ordinateur va automatiquement ajuster la consommation du processeur en diminuant de façon dynamique sa puissance. Cela est aussi fait sur les ordinateurs fixes mais l’économie est beaucoup moindre. Cela signifie qu’utiliser BOINC sur un ordinateur portable sur batterie va diminuer son ‘autonomie car la batterie va se vider plus vite. Mais cela ne l’endommagera pas.

Dans la pratique une installation mal configurée ne risque qu’une augmentation légère de la facture d’électricité.

Nous allons donc maintenant voir comment utiliser Boinc et Bam.

5. Utilisation

           1. Installation

Il y a plein de manières d’installer et de configurer BOINC.

Nous allons utiliser BAM. C’est un site internet de gestion de compte qui facilite beaucoup toutes les manipulations. IL permet de déployer rapidement  BOINC sur plusieurs machines et d’avoir des statistiques avancées sur ce que vous avez fait.

Premiérement vous devez aller sur :

 http://boincstats.com/ 

Puis vous devez cliquer sur register en haut à droite de la page :

Mais où est caché le bouton register ?

Bouton register

 Vous n’avez ici plus qu’à remplir le formulaire. Puis appuyer sur register.

Il est ensuite nécessaire d’aller confirmer votre inscription grâce au mail qui va vous être envoyé. Ensuite loguez-vous !

Il y a alors beaucoup de choses possibles à faire. Vous naviguerez avec le menu de gauche.

Vous devez aller dans Sign-up for projects. Vous obtenez un tableau. Pour vous inscrire à un projet il suffit de cocher la colonne : Create Account. Puis cliquer sur le bouton Start en bas du tableau.

Le site va automatiquement vous inscrire.  Il est possible dans certains cas comme WCG que vous deviez vous inscrire sur le site du projet. En entrant exactement les mêmes informations. Parfois il vous sera même nécessaire de l’ajouter manuellement.

Vous pouvez aller dans Project resources pour déterminer quels sont les projets que vous souhaitez mettre en avant. Avec la colonne Resource share plus le chiffre est élevé plus vous allez travailler pour se projet.

Il est aussi important de cocher la case « attach new host by default »  si celle-ci n’est pas coché.

Félicitation vous avez fini votre inscription et la configuration minimal de BAM.

Maintenant nous passons à BOINC. Premiérement vous devez le télécharger.

Vous pouvez choisir votre version ici : http://boinc.berkeley.edu/download_all.php

Vous n’avez plus qu’à l’installer puis le lancer. Il devrait alors vous affichez une fenêtre tel que celle-ci :

Première étape

Première étape

Vous cochez alors « Utiliser le gestionnaire de compte » puis vous appuyez sur suivant. Une nouvelle fenêtre va s’ouvrir.

Deuxième étape

Deuxième étape

 Choisissez BAM puis vous devez cliquer sur suivant. Il vous demandera ensuite vos identifiants que vous avez utilisés pour vous enregistrer sur BAM.

A la fin de la procédure vous devez voir apparaitre une fenêtre tel que celle-ci :

Yeah bien joué ;)

Fin de la procédure d’ajout de comptes

   Il est possible que vos projets ne s’affichent pas malgré la synchronisation. Dans ce cas vous devez aller sur BAM ( http://boincstats.com/ ). Dans « Project Ressources » cocher devant chaque projet la case « attach all hosts now » puis appuyer sur « Update » en bas de la page. Puis dans BOINC dans la vue avancée, dans l’onglet outil, synchronisation avec BOINCstatsBAM.

Félicitation votre ordinateur est maintenant en train d’aider à la résolution de nombreux problèmes importants.

Cependant nous allons voir d’autres choses.

         2. Prise en main

Premièrement, votre BOINC peut avoir deux formes. La forme Simple ou la forme avancée. Comme son nom l’indique la première fournit des résumés de ce qu’il se passe tandis que  l’autre fournit de nombreuses possibilités.

La forme simple ressemble à ceci :

Vue Simple Version 7 orientée tâche

Vue Simple Version 7

En version 7

La version 7 est orientée tâche. Vous pouvez sélectionner celle que vous souhaitez parmi celles en cours grâce au menu déroulant au niveau de « Tâche »

Vous avez ensuite dans la partie « Projets: » les projets liés aux taches. Le bouton synchroniser permet de forcer l’échange de donnés entre vous et le projet. La partie commandes du projet permet de rapidement atteindre les différentes actions disponibles pour le projet. Mais ce n’est pas la façon la plus simple.

Suspendre suspend la tâche tandis que Remarques affiche les messages que vous obtenez des projets. Pour passer en vue avancée vous devez aller dans affichage puis vue avancée.

En version 6

Vue Simple Version 6 orientée projet

Vue Simple Version 6

 La version 6 est orientée global. Vous pouvez voir vos projets et forcer la synchronisation entre l’un d’eux et vous.

Le bouton messages affiche les messages que les projets vous envoie. Le bouton pause arrete le calcul des tâches en cours. Préférences permet d’accéder aux options.

Pour passer en vue avancée il suffit de cliquer sur Advanced View

 

Nous allons passer à la vue avancée.

Il y a énormément de fonctionnalités différentes. Mais nous allons voir les principales.

Pour configurer la manière que BOINC va opter pour utiliser votre ordinateur vous devez juste aller dans outil puis « préférences de calcul… »

Configuration onglet 1

Configuration onglet 1

Dans le premier onglet vous avez :

  • La case « L’ordinateur est sur batterie » : Cochée cela signifie que boinc fonctionnera même si votre ordinateur portable n’est pas branché.
  • La case « Lorsque l’ordinateur est utilisé » : Cochée cela signifie que boinc fonctionnera lorsque vous travaillez. Si elle est décochée il ne fonctionnera que lors votre écran de veille apparaitra.
  • La case « Utiliser le GPU lorsque l’ordinateur est utilisé » : Cochée il utilisera votre carte graphique tout le temps c’est fortement déconseillé car cela peut fortement ralentir votre affichage. Vous pouvez aussi déterminer un temps d’inactivité avant lequel il ne peut utiliser la carte graphique. Il est aussi possible de désactiver totalement l’utilisation du GPU. Nous le verrons juste après.
  • Il vous est aussi de déterminer plusieurs choses : Le seuil d’utilisation pour lequel il peut utiliser votre ordinateur , quels jours et durant quelles périodes il peut utiliser votre ordinateur
  • Pour finir vous pouvez déterminer quel pourcentage de votre CPU il peut utiliser et le nombre de coeurs de votre CPU qu’il peut utiliser. « Changer d’application toutes les : » permet d’établir un roulement entre les projets.

Le deuxième onglet est assez simple à comprendre et si vous avez une connexion ADSL vous n’aurez certainement pas à l’utiliser. Il permet de limiter la bande passante disponible.

Le troisième onglet est plus important :

Configuration onglet 3

Configuration onglet 3

Vous pouvez déterminer l’espace maximum que peut prendre BOINC sur votre disque dur ( dans la théorie il ne dépassera pas les 8 Go ) ainsi que la mémoire RAM qu’il peut utiliser.  Il peut être utile de fortement baisser le pourcentage de la mémoire qu’il peut utiliser si vous avez peu de mémoire RAM.

Vous savez maintenant configurer votre BOINC.

 

Pour modifier la façon dont boinc doit calculer vous devez aller dans activité et cocher ce que vous souhaitez. C’est ici que vous pouvez choisir de ne jamais utiliser le GPU ( carte graphique ). Il vous est aussi possible de déterminer de calculer en permanence.

 

Retournons à la vue avancée. Disque permet d’afficher l’espace disque pris par projet.

L’onglet statistiques n’est pas très utile sachant que vous aurez des stats bien plus avancées dans BAM en allant dans le menu de gauche dans « My detailed stats »

Chose plus intéressante vous pouvez aller dans l’onglet tâches en séléctionnant une tâche active et si cela a été implémenté vous pouvez cliquer sur Montrer les graphiques. Cela vous affichera une vue de ce qu’est en train de calculer votre ordinateur. Ci-dessous un exemple de repliement de proteines :

Repliement de protéines

Voilà vous avez toutes les bases pour utiliser BOINC. Vous aidez maintenant le monde grâce à votre ordinateur. Chaque Watt que vous utilisez l’est complétement.

Félicitation.

Si vous souhaitez de plus amples informations n’hésitez pas.

 

« Together we will change the world »

« Ensemble nous changerons le monde »