Quand le calcul intensif s'invite à la maison

0
00C8000001484524-photo-set-home.jpg
Depuis que la science utilise l'informatique dans des domaines comme la physique des particules, la biologie moléculaire ou encore l'astronomie, les chercheurs ont un besoin toujours plus important de puissance de calcul. Parallèlement, le nombre d'ordinateurs dans le monde ne cesse de croître, tout comme la vitesse des réseaux qui parcourent les continents. Partant de ce constat, quelques chercheurs et informaticiens se sont interrogés sur l'énorme potentiel que représente le parc informatique planétaire face à des problèmes scientifiques toujours plus complexes. En effet, cette solution de calcul externalisée se veut à la fois d'une puissance inégalée et d'un coût de production relativement faible en comparaison des supercalculateurs et autres clusters utilisés dans les universités.

Alors que s'est tenue la semaine dernière en Hongrie la sixième école d'été sur le calcul en grille, peu de gens savent exactement de quoi il en retourne. Ces problèmes très pointus n'intéressent qu'une poignée d'individus surdiplômés, pourriez-vous même penser. Pourtant, plusieurs d'entre vous (ou plutôt vos ordinateurs) pratiquent ce genre de calculs tous les jours. Les Seti@Home, Folding@Home et autre FightAids@Home sont en effet quelques-uns des exemples les plus connus de Grid Computing.

Le calcul distribué, partie du calcul intensif

Qu'est-ce exactement que le calcul en grille ? C'est une partie de ce que l'on appelle le calcul intensif, qui est pratiqué par les scientifiques et quelques industries privées pour venir à bout de problèmes qui nécessitent de très grandes ressources informatiques, tant au niveau du temps de calcul que de la capacité de stockage.

012C000000323071-photo-cea-tera-10-supercalculateur.jpg
Tera 10, le supercalculateur du CEA


Traditionnellement, les recherches utilisant du calcul intensif s'effectuent sur des supercalculateurs ou des grappes (ou clusters) de dizaines, voire de centaines d'ordinateurs uniquement dédiés à ces opérations. Le problème de ces systèmes est leur coût, tout d'abord, mais aussi leur puissance toute relative comparée au nombre de personnes les utilisant, chacune d'entre elles proposant à la machine des calculs qui peuvent durer de plusieurs heures à plusieurs semaines. Conséquence : la plupart du temps, la file d'attente est longue et ralentit considérablement la progression des scientifiques.

Une chaîne d'éléments distants

0078000001484556-photo-chaine.jpg
Il faut savoir que parmi les calculs scientifiques, nombre d'entre eux sont parallélisables, ce qui signifie qu'un gros problème peut être découpé en une multitude de sous problèmes indépendants les uns des autres. Compte tenu de ce paramètre a germé une autre possibilité d'effectuer les opérations : le calcul en grille, qui englobe plusieurs notions, dont le calcul distribué. Le principe est simple, faire travailler les ordinateurs de volontaires dont le processeur est rarement occupé au maximum de ses possibilités.

Plusieurs éléments composent cette chaîne de calcul :
  • la source des informations en est le premier maillon. Ces sources peuvent être de formes multiples : télescopes, détecteurs de particules, ordinateurs (pour les simulations numériques)... ;
  • ces données transitent ensuite par le cerveau qui les centralise, les distribue et optimise le système afin de mieux répartir la charge selon les disponibilités de chacun. Ce cerveau est appelé le « courtier en ressources » et nous reviendrons sur son rôle par la suite tant il est important ;
  • toutes ces informations passent par le réseau, élément à part entière de la chaine, et dont les propriétés (notamment de vitesse) comptent pour beaucoup dans la progression des calculs ;
  • enfin une application installée par vos soins sur votre ordinateur ferme cette chaîne. Son rôle est d'envoyer un message pour spécifier qu'il est prêt à calculer, de réceptionner les informations envoyées par le serveur, d'effectuer le calcul demandé et bien sûr d'expédier en retour les résultats obtenus.
En résumé, la part de travail fournie par l'internaute volontaire ne réside que dans l'installation d'un logiciel client qui va ensuite utiliser les ressources de sa machine lorsque celle-ci sera inutilisée (en veille, typiquement).

Qui est le cerveau de l'opération ?

Le travail du courtier en ressources, lui, est autrement plus complexe. Il va en effet devoir constamment envoyer et recevoir des données vers ou en provenance de n'importe quel endroit du monde, repartir les calculs selon les ressources de calcul et de stockage disponibles (et pour cela, établir un traitement statistique de celles-ci). C'est autour de lui que s'organise toute la chaîne. Le travail de répartition des calculs, notamment, est le plus délicat : en effet, il est plus délicat de travailler sur une grille externalisée que sur une grappe de nœuds à cause de l'hétérogénéité des machines. L'optimisation de la tête pensante de ce réseau de calcul est donc l'un des domaines de recherche les plus prisés du moment.

Le fonctionnement client-serveur n'est cependant pas le seul à exister dans le calcul distribué qui s'est également inspiré de ce qui existait dans des domaines d'échange de données en général. Ainsi la technologie peer-to-peer peut également s'appliquer à ce style de réseau.

Quid de la sécurité ?

0078000001473574-photo-dossier-s-cu-s-curit-informatique.jpg
Dès que l'on parle réseau, il faut évidemment parler sécurité. Et le problème est double ici. En effet, les données qui transitent entre le serveur et votre terminal sont d'une importance capitale pour les chercheurs qui les utilisent au jour le jour. S'il advenait qu'elles soient corrompues ou perdues, les efforts des uns et des autres seraient réduits à néant.

D'un tout autre point de vue, qu'en est-il de la sécurité des bénévoles qui acceptent qu'un flux important de données entre et sorte chaque jour de leur machine ? En avril 2003, le programme Seti@Home avait souffert d'une faille de sécurité relativement importante. La question de la sécurité est donc un paramètre essentiel du calcul distribué dont les concepteurs des logiciels « courtier en ressources » doivent impérativement tenir compte.

Panorama des différents projets

Il existe aujourd'hui de nombreux projets utilisant le calcul distribué, preuve de l'engouement des chercheurs (et de quelques industriels) pour cette nouvelle forme de calcul. Retraçons-en l'historique de façon chronologique.

Projets de chiffrement

Ce sont les premiers à apparaître à la fin des années 90. Ils concernaient des défis cryptographiques dont le but était (pour le premier d'entre eux) de prouver qu'un algorithme de chiffrement sur 56 bits que le gouvernement américain voulait imposer comme standard n'était pas fiable. Après DES (que nous venons d'évoquer) ont suivi DES II et RC5, tous lancés par les laboratoires RSA. D'autres projets ont également vu le jour, visant à découvrir le plus grand nombre premier (GIMPS), à factoriser les nombres de Fermat ou des nombres composites. Bref, des sujets bien trop complexes pour passionner le grand public.

SETI@Home, là où tout commence

C'est au début de l'année 1999 que le calcul distribué a pris une ampleur mondiale, avec le fameux SETI@Home (pour Search for Extraterrestrial Intelligence). Les concepteurs de ce projet n'avaient peut-être pas imaginé que le sujet qu'ils allaient populariser rendrait un fier service à la communauté scientifique, puisqu'en terme de calcul distribué on peut véritablement parler d'un avant et d'un après SETI@Home. Pour ceux qui ne savent pas de quoi il est question, petit rappel. Ce
007D000000054037-photo-seti.jpg
projet consiste en la recherche de signaux d'origine extraterrestre. Les radios-télescopes enregistrent des signaux sur une certaine fréquence et le problème majeur est ensuite d'analyser ces signaux pour y détecter un motif qui ne serait pas aléatoire. C'est là que l'ordinateur des volontaires intervient, puisque l'analyse des signaux est une étape longue et qui demande beaucoup de puissance.

La force du projet SETI@Home, outre son but qui peut légitiment passionner un très large public, est d'avoir développé un client fonctionnant pendant l'écran de veille de Windows et affichant quelques jolis graphiques qui rappellent à l'internaute que son ordinateur participe activement à la recherche.

La science s'engouffre dans la brèche

0064000001484558-photo-adn.jpg
Le phénomène SETI@Home a permis l'éclosion d'une multitude de projets dont les objectifs étaient jusqu'alors inaccessibles avec les moyens informatiques classiques. Chimie, physique, météorologie, astrophysique : de très nombreux laboratoires publics ou privés ont commencé à développer des clients pour accéder à l'énorme puissance de calcul représentée par le réseau mondial qui sera dès lors appelé la grille (The Grid). On peut citer des projets comme ClimatePrediction, pour la météorologie, Malaria Control pour la médecine, Einstein@Home pour la physique, ou encore ABC@Home pour les mathématiques. De très nombreux autres projets (dont vous pourrez trouver une liste non exhaustive ici) sont également en préparation, en version alpha ou bêta. Enfin les plus connus des projets scientifiques sont probablement FightAIDS@Home, ComputeAgainstCancer et Folding@Home, dont nous reparlerons plus tard.

Des entreprises comme EDF ou EADS ont également déjà mis à profit la technologie du calcul distribué pour effectuer des simulations numériques pour l'A380 ou la fusée Ariane par exemple. Évidemment, aucun client « grand public » n'a été mis à disposition et pour cause : le secret industriel serait probablement mis à mal par une telle pratique.

Un client pour les rassembler tous ?

La multitude de projets déclinés autour du calcul distribué a cependant un défaut de taille, celui de disperser les ressources. Car s'il est certain que la puissance disponible est gigantesque, elle n'est pas inépuisable. Par ailleurs, il est difficile de faire cohabiter deux programmes dans l'écran de veille de Windows. Enfin, il devient difficile pour l'internaute de savoir à quelle cause vouer son ordinateur.

0096000001484562-photo-boinc.jpg
Une solution serait sans doute la création d'un programme unique qui contiendrait l'ensemble des projets les plus importants. L'ordinateur client serait alors utilisé comme le lui demanderait le courtier en ressources. Les problèmes éventuels consisteraient en la taille du programme à installer, mais surtout dans l'attribution des ressources aux différents projets. C'est toutefois ce que tente de réaliser un projet comme la World Community Grid et la plate-forme BOINC (pour Berkeley Open Infrastructure for Network Computing), développée par les créateurs de SETI@Home. C'est par une seule et unique interface que le volontaire peut participer simultanément à plusieurs projets ou en télécharger de nouveaux. De plus, ce programme permet la diffusion de publicité pour les derniers projets qui ont rejoint l'interface BOINC. La liste des différents projets soutenus par ce programme est disponible à cette adresse.

Deux acteurs du calcul distribué

0078000001483510-photo-corentin-chevalier.jpg
Parmi les différentes personnes impliquées dans le calcul distribué, nous avons choisi deux protagonistes aux rôles bien différents. Le premier d'entre eux, Corentin Chevalier, appartient au projet Grid Talk, projet subventionné par la Communauté Européenne. Il s'occupe de diffuser au plus grand nombre la notion de grid computing, dont fait partie le calcul distribué, via le site GridCafé. Ses bureaux sont basés au CERN (l'organisation européenne pour la recherche nucléaire) à Genève, où le Grand Collisionneur de Hadrons (LHC) est désormais en service et va fournir quelque 10 pétaoctets de données par an. L'analyse de cette monstrueuse banque d'informations va évidemment demander d'énormes moyens et la possibilité de distribuer ces calculs s'impose comme une évidence au CERN.

Clubic : Corentin Chevalier, vous vous occupez de diffuser largement (via votre site et vos déplacements dans des conférences) les nouvelles possibilités offertes par le grid computing. Votre auditoire est-il davantage du domaine public ou du domaine privé ?

Corentin Chevalier : Tout d'abord il faut que je vous parle du grid computing, ou la « Grille ». Comme le Web, la Grille est un service permettant de partager quelque chose sur l'Internet, sauf qu'ici il n'est plus question d'information mais de puissance informatique et de la capacité de mémoire. Mais la Grille fait beaucoup plus qu'établir une simple communication entre les machines. Son objectif ultime est de transformer le réseau mondial des ordinateurs en une ressource immense et unique de capacité de traitement.

0096000001485118-photo-lhc-cern.jpg
Portion du LHC, au CERN
Ensuite, je ne suis pas seul à m'en occuper, heureusement ; à notre niveau nous sommes une équipe, mais il y en existe beaucoup d'autres à travers le monde ! Bref, pour rentrer dans le vif du sujet, il y a trois types de publics pour le grid computing : les scientifiques, les hommes politiques et le grand public. Bien sûr nous cherchons à informer tout le monde et pas seulement les scientifiques ; notre travail n'est pas seulement de réaliser une immense bibliothèque d'informations autour du grid computing. Nous le faisons, et tous les scientifiques du monde entier y ont accès ; ils y trouvent une expérience mondiale et y gagnent une connaissance et un temps précieux. Mais nous informons le grand public pour qu'il sache ce qu'il en est de ce type de recherche ; cela donne parfois lieu à une implication massive dans telle ou telle technologie.

Un exemple concret est le calcul volontaire, ou distribué. Vous connaissez tous Folding@home ? Et bien il y a des dizaines de projets comme celui-ci (voir ce lien). Ces informations servent aussi à informer et impliquer nos politiciens (à un niveau Européen ou mondial) dans ces recherches et ces projets, afin qu'ils sachent pourquoi ils vont voter des budgets.
»

Clubic : Des entreprises ont éventuellement pris contact avec vous pour des formations ou des demandes de renseignement ? Si oui, lesquelles ?

007D000001423236-photo-ibm.jpg
CC : Notre but premier n'est pas de faire du profit ; comme je l'ai indiqué précédemment, nous cherchons à informer. En revanche, il existe des projets permettant de rallier le fruit de toutes ces recherches avec l'industrie (voir ce lien). Pour notre part, nous travaillons plutôt avec des organisations à but non lucratif ou des universités. Néanmoins, nous côtoyons souvent des géants comme Microsoft, Intel, IBM ou HP qui sont impliqués dans quelques projets.

Clubic : Comment jugez-vous l'évolution de l'intérêt des acteurs du calcul intensif dans le domaine du grid computing ?

CC : De notre point de vue, il grandit à vue d'œil ! D'un point de vue plus général, je dirai que ce domaine a été découvert par les médias il y a cinq ans. Aujourd'hui, cette couverture médiatique est moins présente, car le grid computing est moins nouveau. Par contre infiniment plus de monde l'utilise, que l'on parle de scientifiques ou du grand public. Il y a maintenant même des écoles dédiées à ce domaine !

Clubic : Quelles sont les solutions pour arriver au rêve de la Grille absolue comme vous l'évoquez sur votre site ?

0096000001485092-photo-globus-alliance.jpg
CC : Ma première réponse à cette question est : il y a maintenant énormément de techniques différentes utilisées par énormément de scientifiques, pour énormément de solutions, dans énormément de domaines ! Mais vous me direz c'est un peu vague... Pour répondre plus précisément, il y a maintenant plusieurs technologies majeures dans ce domaine : Glite, Unicore, Globus, Condor... Ces technologies vous fournissent un Framework vous permettant d'exploiter le grid computing pour des recherches scientifiques. Concrètement, elles permettent de réaliser des applications pour telle ou telle recherche en utilisant la puissance du grid computing.

Ensuite, et bien il y a les centaines de projets autour du grid computing, dans le monde entier : l'Europe, les USA, l'Amérique en général, l'Asie, mais aussi l'Afrique ! Chacun amène différents projets dans différents domaines, et ils contribuent chaque jour à faire grandir la Grille. Encore une fois, Folding@Home est un projet, et il en existe des centaines !

Enfin, le rêve absolu, comme vous l'indiquez, passe par des étapes très importantes, telles que la standardisation. Sans celle-ci, comment imaginer une coopération mondiale de tous les ordinateurs ?


Clubic : Quels sont les moyens pour arriver à convaincre les particuliers à partager leurs ressources lorsqu'elles ne sont pas utilisées totalement ?

Le tout premier moyen ne peut être que la communication. Ensuite je ne pense pas que nous ayons à convaincre les gens d'utiliser par exemple un programme de calcul volontaire : ils le font d'eux-mêmes, car quoi de plus merveilleux de savoir que vous aidez activement à la recherche contre le cancer, le sida, ou à mieux comprendre notre univers ! Car c'est possible dès aujourd'hui ! Vous savez, je crois que de nos jours, tout le monde se rend compte à son niveau que si nous continuons comme ça, nous allons droit dans un mur... Alors quoi de mieux que de préparer l'Avenir, avec un grand A ?

Clubic : Finalement, y a-t-il des perspectives grand public dans le grid computing, une sorte de mise en commun des ressources mondiales pour le particulier ?

CC : Bien sur ! Mais ces perspectives ne sont plus du domaine du futur, mais une réalité aujourd'hui. Vous avez un exemple : le calcul distribué. C'est un outil formidable qui change complètement la donne scientifique. Quant à dire ce que nous apporteront ces technologies dans le futur, c'est plutôt difficile. Vous savez, c'est à l'endroit où je travaille, c'est à dire au CERN, que l'Internet a été inventé. A l'époque, il était difficile de dire ce qui allait réellement en découler. Mais je pense qu'il y a 15 ans, ils sentaient que c'était quelque chose d'énorme ; et bien je peux d'ores et déjà vous dire que le grid computing est quelque chose d'énorme pour la communauté scientifique.



0064000001483590-photo-richard-lavery.jpg
0064000001484570-photo-cnrs.jpg
Le second intervenant est Richard Lavery, Directeur de Recherche au CNRS (DR1) en poste actuellement à dans le Département de Biostructures Moléculaires de l'Institut de Biologie et Chimie des Protéines (IBCP) de Lyon. Vous l'aurez compris, c'est un scientifique au cœur même des applications que propose le calcul distribué. Ses recherches portent sur la modélisation de macro-molécules d'intérêt biologique et sur la simulation de leurs interactions. Ce type « d'expériences numériques » est particulièrement gourmand en ressources et l'intérêt du calcul distribué est ici aussi évident.

Clubic : Quels sont les sujets de recherche qui ont nécessité le recours à du calcul distribué ? Avez-vous développé vous-même vos applications ?

Richard Lavery : Nous avons exploité le calcul distribué dans deux projets de recherche. Le premier, le projet Decrypthon, concerne la recherche des interactions binaires au sein d'un ensemble de protéines. Ceci implique de tester l'interaction potentielle de chaque paire de protéines avec un logiciel d'amarrage conçu par Sophie Sacquin-Mora dans mon ancien laboratoire à Paris. Ce logiciel tente d'optimiser l'énergie d'interaction en partant de plusieurs centaines de milliers d'agencements des deux partenaires.

0096000001484568-photo-histone.jpg
Le second projet concerne le placement des nucléosomes sur le génome humain, plus précisément le long d'une séquence de bases. Pour cela, nous avons conçu un logiciel pour optimiser la conformation des protéines histones, qui constituent le cœur du nucléosome, et la conformation de l'ADN, qui s'enroule autour de ce cœur. Compte tenu de la taille du nucléosome et du nombre de séquences de bases possibles (environ 1 088 pour les 147 paires de bases sur un seul nucléosome), nous avons simplifié le problème en le sous-divisant en un ensemble de petits fragments. Traiter ces fragments implique environ 250 000 optimisations. Le logiciel correspondant a été conçu dans notre groupe.


Clubic : Vos logiciels sont-ils distribués au grand public ou dans un cadre restreint ?

0069000001484566-photo-decrypthon.jpg
RL : Après le développement sur la grille universitaire IBM, le projet Decrypthon exploite maintenant la grille publique WCG (World Community Grid). Le projet nucléosome utilise la grille EGEE (conçue principalement pour analyser les données du LHC, Large Hadron Collider, au CERN). Elle est constituée d'environ 250 centres informatiques.


Clubic : Que vous apportent les contributions externes face aux ressources internes ?

RL : Les deux projets qui nous concernent ne seraient tout simplement pas réalisables en terme de ressources informatiques sans l'apport du calcul distribué sur des milliers de processeurs.

Clubic : Les résultats ne servent-ils que la recherche publique ?

00C8000001484576-photo-chercheur.jpg
RL : Nos deux projets ciblent des problèmes ayant un intérêt pour la biologie fondamentale, mais également pour la santé humaine. Le projet Decrypthon cherche à comprendre le rôle des protéines impliquées dans la dystrophie musculaire, tandis que le projet Hugorep cible un processus, la réplication du génome, impliquée dans plusieurs pathologies humaines.

Clubic : Quelles évolutions vous semblent possibles sur le principe de la grille en général ?

RL : Les applications dites « embarrassingly parallel » (impliquant des multiples tâches indépendantes) sont parfaitement adaptées aux grilles actuelles. La disponibilité de milliers de processeurs ouvre la voie à de multiples applications en biologie (conception de médicaments, génomique comparatif, biologie systémique, etc.).

Les différentes technologies utilisées

Après avoir vu les principaux projets en cours et quelques exemples concrets des applications possibles du calcul distribué, qu'en est-il de la partie matérielle ? Si les calculs effectués par nos machines le sont généralement par leur processeur, la carte graphique et même une console de jeu peuvent également jouer un rôle intéressant. En effet, de nombreux projets de calcul distribué utilisent fort logiquement le calcul parallèle qui avantage certains composants face à d'autres. Explications.

L'incontournable CPU

0096000001458298-photo-photographie-du-processeur-intel-core-2-quad.jpg
Les processeurs tels que nous les connaissons actuellement sont composés (entre autres) d'unités de calcul à même de répondre rapidement à tout type de demande, même complexe. Pour réagir le plus rapidement possible, les instructions et les données sont stockées dans la mémoire cache du processeur, afin que les unités de calculs puissent y accéder rapidement. C'est pourquoi cette mémoire occupe une grande partie du processeur, les unités de calcul ne représentant qu'une portion relativement faible de sa surface. En résumé, le CPU (pour Central Processing Unit) est un excellent élément pour traiter rapidement un flux d'instructions complexes important, du fait de la rapidité de l'échange entre la mémoire cache et les unités de calcul.

La Playstation 3 et son processeur Cell

Si un processeur peut facilement traiter une simple addition (ou d'autres opérateurs plus complexes comme le logarithme ou l'exponentielle), qu'en est-il de plusieurs milliards d'additions simultanées ? Il existe une autre façon de résoudre un problème dont le nombre d'opérations est particulièrement important et dans lequel ces opérations sont indépendantes : il s'agit de la parallélisation.

La plupart des calculs graphiques sont parallélisables, c'est-à-dire que l'on peut les découper en une série d'opérations indépendantes que l'on peut traiter simultanément. Un plus grand nombre d'unités de calcul (moins complexes que celles d'un CPU) parviennent alors à résoudre le problème plus rapidement que ne le ferait un processeur. En contrepartie, la quantité de mémoire cache est moindre que pour un CPU. C'est le facteur limitant dans ce type d'architecture, car la transmission de données de la mémoire vive vers le processeur est plus lente que si les instructions et/ou les données sont stockées dans la mémoire cache.

Un processeur Cell est un savant mélange d'unités de calcul capables à la fois de résoudre rapidement un jeu d'instruction complexe et d'appliquer à de nombreuses données une opération simple et répétitive. C'est lui qui équipe la dernière console de Sony, la Playstation 3, dont les performances ont énormément apporté au projet Folding@Home en terme de puissance.

Le GPU, nouveau venu dans la bataille

Le GPU (pour Graphics Processing Unit) est la logique de parallélisation poussée à l'extrême : ici, les unités de calcul sont très nombreuses, toutes destinées à du calcul « simple » et la mémoire prend très peu de place. Ces éléments sont donc tout à fait véloces pour ce qui est du calcul parallèle (comme le rendu 3D) et particulièrement peu adaptés aux opérations plus complexes. C'est toutefois moins vrai pour les dernières générations de cartes graphiques, que ce soit chez NVIDIA ou chez AMD, puisqu'elles embarquent quelques unités de calcul programmables et propres à effectuer d'autres tâches plus généralistes que les simples rendus 3D. C'est ce qu'on appelle le GP-GPU (general purpose GPU).

01F4000001481758-photo-diff-rence-gpu-cpu.jpg
La quantité de mémoire cache est moindre dans un GPU que dans un CPU


NVIDIA et son API CUDA ou AMD avec le Brook+ proposent deux langages de programmation permettant aux développeurs d'utiliser facilement le potentiel de leurs cartes graphiques. C'est ainsi qu'une application comme Folding@Home peut utiliser une (ou plus ?) cartes NVIDIA ou AMD au lieu du traditionnel CPU. Nous verrons à la page suivante les performances de chacun.

Quelques chiffres à titre de comparaison

Vous l'avez compris, un processeur comme le Cell ou même des cartes graphiques peuvent être à leur avantage face à un CPU « classique », même les plus puissants comme le Core Quad d'Intel. Pour exprimer une puissance de calcul, la grandeur utilisée traditionnellement est le FLOP (pour FLoating point Operations Per Second), qui représente le nombre d'opérations en virgule flottante (c'est à dire en chiffre réel) effectuées en une seconde. Pour exprimer ce dont sont capables les supercalculateurs actuels, quelques préfixes s'imposent : ainsi, le petaflops (qui représente un million de milliards d'opérations par seconde) est aujourd'hui l'unité de référence. C'est un supercomputer qu'IBM a vendu à l'armée américaine qui a passé cette barrière symbolique en mai dernier : le Roadrunner composé de 6 948 Opteron bicoeurs et de 12 960 processeurs Cell. A titre de comparaison, le processeur le plus puissant à l'heure actuelle, à savoir le Core Quad QX9775 d'Intel, développe « seulement » 51 gigaflops, tandis qu'une GeForce 8800 Ultra de chez NVIDIA en produit plus de dix fois plus à l'aide de ces 128 unités de calcul (qui ne sont pas comparables à celles présentes dans un CPU, rappelons-le).

Mais le calcul distribué, de par le nombre d'ordinateurs qu'il utilise, bénéficie d'une puissance encore plus extraordinaire. Ainsi, l'ensemble des projets compris dans l'interface BOINC bénéficie actuellement de plus d'un petaflops de puissance, tandis que le très populaire Folding@Home est soutenu par plus de 2,5 petaflops.

Quelques tests pour en savoir plus

Nous avons vu qu'il existait plusieurs éléments capables d'effectuer calcul distribué : un CPU classique, une carte graphique ou une console de jeux sont trois possibilités différentes dont un projet comme Folding@Home a su tirer partie. Cette application possède en effet quatre clients distincts : le premier est destiné aux processeurs que vous connaissez, le second a été développé pour la Playstation 3 et son processeur Cell et deux autres versions concernent certaines cartes graphiques NVIDIA et AMD. C'est donc Folding@Home qui va nous permettre de voir de quoi sont capables les différents éléments. Ne vous méprenez pas toutefois : si les chiffres que nous allons vous apporter sont intéressants, ils restent incomparables pour la simple raison que le client est différent dans chaque cas.

A chacun son client

Les clients pour CPU () ou pour GPU () sont disponibles dans notre logithèque. Les pilotes Catalyst se trouvent dans notre base de pilotes tandis que les Forceware de NVIDIA se trouvent quant à eux sur le site du constructeur (seuls les versions 174.55 et 177.35 sont compatibles avec CUDA à l'heure actuelle).

Pour la Playstation 3 de Sony, vous pouvez trouver l'icône Folding@Home dans la colonne Réseau du menu de la console.

Quel résultat pour quel matériel ?

Sans vouloir, nous le répétons, comparer les performances de chacun, nous avons répertorié les scores réalisés par quatre éléments différents : un Core 2 Extreme QX9650 d'Intel (accompagné de 2 Go de DDR3 PC14400), une Radeon HD 4870 d'AMD, une GeForce GTX280 de NVIDIA et la Playstation 3 et son processeur Cell. Après avoir laissé tourner le programme 30 minutes, voici les scores réalisés par nos différents éléments :

MatérielIntel Core 2 Extreme QX9650AMD Radeon
HD 4870
NVIDIA GeForce
GTX 280
Playstation 3
Score3 492 (4 x 873)1 7306 582Environ 900


Premier enseignement : la version graphique du client Folding@Home n'est pas conçue pour faire fonctionner des processeurs multicœurs. Nous avons donc du installer la version console de cette application et lancer quatre fois le processus en définissant une affinité spécifique de chaque processus avec un cœur différent. Ce n'est pas forcément ce qu'il y a de plus simple...

Pour comprendre ces résultats, il faut savoir comment ils sont calculés. Lorsque vous exécutez le client Folding@Home, vous travailler sur des unités de calcul. Chacune d'entre elles rapporte un certain nombre de points et on peut juger de la faculté d'un élément à apporter une large contribution au projet en fonction du nombre de points par jour (PPD, Points Per Day). Le logiciel FAHMon estime ce nombre, même pour un temps effectif de calcul relativement court.

Comme nous le voyons dans le tableau, la carte graphique de NVIDIA est extrêmement doué pour ce client de calcul distribué. Notez par ailleurs que le client Folding@Home pour GPU ATI n'est pas encore complètement optimisé pour bénéficier de l'ensemble de possibilités de la carte graphique. Enfin les quatre cœurs de notre Core 2 Extreme QX9650 font mieux que le processeur Cell de la Playstation 3 (la valeur indiquée est celle communément admise pour la console de Sony). Notez toutefois que ce dernier est aussi puissant qu'un seul des coeurs de notre CPU Intel (qui réalise 873 PPD). Si 30 000 utilisateurs de la console de Sony avaient suffi à tripler la puissance (voir cette actualité : Folding@Home : la Playstation 3 impressionne) dédiée au projet, imaginez quels résultats seraient obtenus avec la mise à disposition du même nombre de GeForce GTX 280...

0190000001485958-photo-gtx-280.jpg
Comme vous pouvez le voir, le CPU n'est presque pas utilisé avec la version GPU de Folding@Home


Quelques informations supplémentaires sur Folding@Home

Les détracteurs du calcul distribué évoqueront sans doute la sécurité du système et le vieillissement prématuré du processeur s'il est constamment sollicité. Nous ne pouvons pas leur donner de mesure pour les rassurer dans ce domaine, même si le dernier argument semble assez fantaisiste, un processeur étant fabriqué pour fonctionner et non pour être au repos. En revanche, la consommation de mémoire vive en dehors des périodes de calcul, la bande passante utilisée lors des échanges et le surplus de consommation électrique sont trois inquiétudes que nous pouvons ici chiffrer. Évidemment, les valeurs que nous avançons sont spécifiques à notre machine d'une part, et au client (ici, Folding@Home) d'autre part.

Lors de nos tests, nous avons relevé une consommation de mémoire vive hors période de calcul de 30 Mo pour le client graphique, valeur par ailleurs identique que lorsque les calculs s'effectuent. Cette occupation n'est pas excessive, inférieure à bien des logiciels tournant en tâche de fond. Folding@Home est donc une application relativement légère, à l'image de la plupart des autres clients de calcul distribué.
0096000001431846-photo-wattm-tre.jpg

En ce qui concerne la consommation de bande passante, elle est quasiment invisible noyée dans une navigation classique. Enfin, la consommation électrique est également une donnée intéressante. Grâce à notre wattmètre, nous avons observé un accroissement de consommation 36 Watts (170 Watts durant les calculs avec notre QX9650 contre 125 Watts au repos). Un rapide calcul prenant en compte quatre heures d'utilisation par jour toute l'année durant et un tarif de 10,85 centimes le kilowatt-heure (en heures pleines) nous amène à un surcoût d'environ 7 euros sur votre facture d'électricité annuelle.

Questions et perspectives

00C8000000760884-photo-playstation-3.jpg
Nous l'avons vu, le calcul distribué est en pleine évolution. Les volontaires sont de plus en plus nombreux et de plus en plus efficaces. Deux raisons à cela :
  • le développement de clients spécifiques à d'autres supports que le traditionnel CPU. Nous avons vu l'apport de la Playstation 3 pour Folding@Home ;
  • l'augmentation des débits Internet pour le particulier, ce qui facilite l'échange de données et va permettre de délocaliser davantage d'informations à l'avenir.
Les scientifiques et les autres acteurs (même politiques) sont unanimes : l'avenir du calcul scientifique passe par « la Grille ». Cependant, il est intéressant de rappeler que si un code peut toujours être parallélisé, ce n'est pas toujours le cas pour un problème scientifique. De plus, plusieurs optimisations sont probablement nécessaires pour éviter que la participation des internautes s'essouffle petit à petit.

Des progrès sont en effet possibles au niveau des clients tout d'abord (quelle galère pour lancer Folding@Home sur les quatre cœurs de l'Intel Core 2 Extreme QX9650 !), mais également au niveau du traitement de l'information, de la distribution des données, de l'équilibrage des charges, de l'ordonnancement des jobs... C'est donc aussi l'intergiciel (ou courtier en ressources), le cerveau de la chaîne, qui doit être amélioré afin d'optimiser l'ensemble de la chaîne.



Corentin Chevalier nous l'a dit : la communication est le seul moyen de motiver les volontaires à mettre à disposition de la science leurs ressources. Mais cette communication est-elle suffisamment efficace ? Par exemple, sait-on à qui profite réellement le calcul effectué sur votre machine ? Les résultats des calculs distribués sont-ils assez clairement affichés ? La nécessité de transparence devrait être strictement identique à celles des associations humanitaires ou caritatives qui récoltent nos dons en monnaie sonnante et trébuchante.

Une communication ainsi améliorée aiderait probablement les internautes à se sentir plus utiles et conserverait intact le réservoir de bonne volonté, l'intérêt de pouvoir faire de « l'humanitaire » sans bouger de chez soi étant réel pour un public assez large. Le travail de personnes comme notre premier interlocuteur est louable, mais il doit être réalisé de concert avec les scientifiques.

Ces derniers pourraient alors nous expliquer que si aucun résultat compréhensible pour le grand public n'est sorti de tels calculs, tous les efforts produits ont tout de même un intérêt indéniable, celui d'éliminer des pistes de recherches par méthode essai-erreur de manière très rapide.

Enfin, comme le suggère François Grey, spécialiste du calcul en grille, ne pas créer de véritables réseaux sociaux, capables de réunir les volontaires qui pourraient ainsi travailler de façon concertée ? Ce type de réseaux pourrait permettre de structurer les efforts communautaires qui règnent actuellement dans le calcul distribué et de maintenir ainsi l'émulation à un haut niveau.


01486006-photo-logo-clubic.jpg
Si vous souhaitez rejoindre les rangs de l'équipe Clubic via Boinc, rendez-vous sur cette page. Remplissez le formulaire et n'oubliez pas de spécifier au niveau du champ « Sélectionnez une Equipe » l'équipe « Clubic ». En cas de problème, vous pouvez également consulter le topic du forum entièrement dédié au projet et à l'équipe Clubic FightAIDS@home, les Clubiciens pourront répondre à vos éventuelles interrogations. Il existe également une équipe Clubic particulièrement active au sein de l'Alliance Francophone Folding@Home. Vous la trouverez à cette adresse.
  • Venez discuter de cet article dans le forum
Haut de page