Protéines

Harvey Nallep goes "DC"

(DC = Distributed Computing, calcul distribué)



Pulsar

Principe

Basiquement, le calcul distribué permet de répartir des calculs sur plusieurs ordinateurs. Bien entendu, ce que l'on a à calculer, assez important au départ, doit pouvoir être découpé en sous-calculs. On parle également de parallélisation.

Historique

cray-xmp Cette façon de répartir les calculs sur plusieurs processeurs existe depuis au moins le début des ordinateurs! A l'époque de la préhistoire des ordinateurs (dans les années 70!!!), on réalisait ce principe sur un seul énorme ordinateur qui comportait plein de petits processeurs. Sauf que cette mise en place, qui permet de réaliser des super-calculateurs extrèmement rapides, induit des contraintes énormes. Par exemple en termes de chaleur dégagée, de connectivité entre les processeurs, de partage de la mémoire, de coût de la haute technicité, etc.

Dès que l'on a su faire communiquer les ordinateurs et les mettre en réseau, il a été logique de vouloir continuer de distribuer les calculs, mais cette fois sur plusieurs calculateurs. Cela a été un premier changement d'échelle. Il était moins coûteux de répartir des calculs entre plusieurs "petits" super-calculateurs, disponibles dans des centres de calcul ou des universités, que d'acheter un énorme super-calculateur très cher. Le réseau de communication entre ces sites universitaires (ou militaires) est d'ailleurs l'ancètre d'Internet: Arpanet.

sgi-onyx Un deuxième changement d'échelle est intervenu avec la démocratisation des réseaux de communications internes, ainsi que dans l'accroissement de puissance des stations de travail. Celles-ci, eu égard à leur coût, ne pouvaient pas encore être qualifiées d'ordinateurs "individuels". Pour les calculs, on utilisait de plus "petits" ordinateurs, comportant moins de processeurs qu'un super-calculateur, et communiquant entre eux par réseau interne (LAN).

Lorsqu'Internet est arrivé à une certaine maturité (technique j'entends!), les ordinateurs étaient devenus "individuels" et entraient chez les particuliers. L'accès à Internet s'est démocratisé (quoique...) et la puissance des processeurs est devenue phénoménale en regard de ce qui se faisait il y a 30 ans.

En observant la vitesse de nos lignes d'accès à Internet, ainsi que la puissance des processeurs disponibles dans nos ordinateurs individuels, des petits malins ont remarqué, qu'au regard de cette puissance disponible, le processeur s'embête royalement lorsqu'on l'utilise pour des tâches communes telles que la bureautique, la navigation sur Internet, l'écoute de musique, etc.

Les scientifiques de certains projets, ayant des difficultés financières à obtenir des temps de calcul sur les super-calculateurs, se sont dit qu'il y avait sur les ordinateurs des particuliers, raccordés à Internet, une manne de puissance de calcul disponible (Iops et Flops). Pour l'exploiter, il fallait continuer à distribuer les calculs, mais sur des millions d'ordinateurs de par le monde!!! Grâce à la vitesse de nos lignes d'accès à Internet et à la puissance de nos ordinateurs, on reconstitue en fait un super-calculateur.

nvidia-8800sli Aujourd'hui, autre changement d'échelle dans la course à la puissance. Un autre composant des ordinateurs bénéficie d'une puissance de calcul extraordinaire: le processeur spécialisé des cartes graphiques. En effet, ces dernières sont devenues tellement puissantes pour restituer les environnements en 3D des jeux actuels, que les développeurs de certains projets de calcul distribué ont collaboré avec les fabricants des GPU (Graphical Processing Unit) pour obtenir de pouvoir envoyer des calculs dans la carte graphique quand elle ne fait (presque) rien, c'est à dire afficher votre bureau!

Comme expliqué en préambule, les projets de calcul distribués sont, par nature, organisés pour pouvoir réaliser plein de petites tâches simples en parallèle. Or, les GPU sont, par nécessité, obligés de réaliser exactement ce type de travail: plein de tâches simples en parallèle, très vite, très très vite! La puissance disponible est telle que les participants qui ont sélectionné ce type de calcul pour certains projets se sont retrouvés en tête des statistiques en quelques semaines, là où il a fallu plusieurs mois et années aux "simples" CPU pour y arriver!

Plus exotique, mais très intéressant, et très révélateur de la puissance entre les différents processeurs impliqués dans ces calculs: les consoles Playstation 3 (sur lesquelles on peut installer Linux!). Avec leur processeur IBM Cell, elles disposent d'une puissance extrême. Je ne fais pas de pub, c'est statistique! Les CPU traditionnels, présents en très grand nombre, depuis plusieurs années, obtiennent 9,8 points par CPU. Alors que les Cell, arrivés depuis peu et en très petit nombre, atteignent déjà plus de 11 points par CPU!

Sur ce tableau récapitulatif, vous pouvez voir sur les lignes "GPU" le nombre de Teraflops qu'atteignent les cartes graphiques!

Fonctionnement

raytrace Par exemple, dans le domaine de l'image de synthèse, la puissance de calcul nécessaire pour les trucages d'un film, réalisés par informatique, est impossible à obtenir sur un seul ordinateur! On répartit alors le besoin de puissance de calcul sur plusieurs ordinateurs et processeurs, au sein d'un réseau local, à l'aide d'outils spéciaux qui "distribuent" les calculs sur les différents ordinateurs. L'imagerie de synthèse fonctionne très bien en mode distribué car une image est "facilement" décomposable en sous-ensembles (pixels), et les mêmes algorithmes peuvent être appliqués à tous ces sous-ensembles pour reconstituer ensuite l'image entière.

Les personnes intéressées par les projets scientifiques (ou non) en calcul distribué se rendent sur les sites des projets et téléchargent un petit utilitaire, qui lui-même, va télécharger dans les serveurs du projet, du travail pour le processeur. La logique (mais pas toujours la norme) de ces petits programmes qui calculent beaucoup est d'être poli avec l'ordinateur de la personne qui l'héberge! C'est-à-dire qu'il ne doit pas gêner le propriétaire de l'ordinateur. En clair, l'utilisateur doit toujours pouvoir disposer du maximum des ressources de son ordinateur. Pour cela, l'utilitaire qui lance les calculs utilise un mode de priorité spéciale du système lui permettant de ne tourner que lorsque le processeur ne fait rien. Il utilise les cycles d'inactivité du processeur. De même, il n'utilise quasiment pas la ligne d'accès à Internet, puisque l'utilitaire est capable de télécharger du travail pour plusieurs jours, voire plusieurs semaines pour certains projets. Une fois les unités de calcul terminées (WU = Work Unit), elles sont retournées par Internet au serveur du projet.

Le fait que les participants soient bénévoles implique que les projets soient les plus transparents possible sur ce qu'ils font et ce qu'ils envoient sur les machines. Ils s'engagent également à ce que les résultats scientifiques qui résultent de tous ces calculs soient disponibles gratuitement et restent dans le domaine public (ce n'est pas toujours le cas de certains projets, qui avancent parfois masqués, et sont en fait des projets commerciaux). De fait, la plupart des (vrais!) projets sont sous licence OpenSource. Ce qui a comme répercussion que certains participants plongent dans le code de leurs projets préférés pour l'optimiser! Cela profite aux administrateurs du projet et, accessoirement, dans certains cas, permet aux participants de gagner plus de points, puisque les machines seront capables de calculer plus de WU une fois le programme optimisé.

Pour ceux qui ne font pas tourner les calculs en tâche de fond en permanence, les développeurs du logiciel de distribution et des projets ont prévu que leurs programmes pourraient fonctionner lorsque l'économiseur d'écran se met en marche. Selon les projets, on peut voir des planètes s'animer, des molécules s'agiter, ou les ondes radios émises par les... extraterrestres! Cela permet d'afficher quelque chose de "concret", lisible, là où le calcul brut ne se voit pas ou n'est pas compréhensible par le profane, mais néanmoins gentil bénévole.

Gagner des points est une autre facette du calcul distribué! C'est un moyen simple et amusant d'attirer des participants qui n'ont pas forcément une culture scientifique ou technique. Les participants se voient crédités de points de récompense. La quantité de points crédités est grosso modo proportionnelle au temps passé à calculer une WU. Au sein des projets, chaque administrateur peut choisir de régler ces points et comment ils sont crédités.

Il n'y a pas ou peu de gouvernance ou d'autorité régulatrice qui surveillerait les différents projets. Néanmoins, entre ceux qui développent l'outil de distribution, ceux qui présentent les scores des participants (statistiques) et ceux qui s'organisent en équipe, il y a une régulation tacite. De fait, un projet qui déciderait d'attribuer des points de manière anormale aux participants est vite repéré et dénoncé, ou sommer de s'aligner sur le fonctionnement moyen des autres projets.

Le principe de récompense mériterait d'être un tant soit peu normalisé. Certains utilisateurs, à mon sens un petit peu trop scientistes, prônent de ne créditer le participant que lorsque la WU donne un résultat scientifiquement acceptable! Alors que s'agissant de projets de recherches scientifiques, il arrive qu'un calcul n'aille pas au bout parce que son algorithme ne débouche pas sur un résultat viable. C'est normal, cela correspond à un travail de laboratoire: il faut plusieurs essais, plusieurs paramètrages à une expérience pour arriver à un résultat. Les bénévoles qui participent à ces calculs pour le "fun" ne savent parfois même pas ce que leur ordinateur calcule! Mais ils ont prété leur ordinateur à des projets qu'ils estiment intéressants. Ils ont donc dépensé du courant pour cela et partagé les ressources de leur ordinateur (mémoire, temps CPU). Dès lors, la récompense devrait tenir compte uniquement du temps passé par le CPU pour arriver au bout d'une WU. Que celle-ci se plante en erreur, ne débouche sur rien ou sur un résultat positif.

Fort de ce principe de rétribution de points, certains participants, dans la lignée actuelle du "tuning", dopent leurs ordinateurs personnels pour gagner en puissance et grimper dans les scores! Certains sites dédiés à l'overclocking ont des participants et des équipes, qui tentent de se placer dans les plus hautes places des statistiques de résultats! (Voir ci-après extremeoverclocking.com)

Pour gagner encore plus de crédits, ou pour valoriser un projet, les participants se regroupent en équipe. Les sites qui s'occupent de présenter les statistiques et les scores des participants les présentent selon différents critères: par projet, par pays, par système d'exploitation, par CPU utilisé, par équipe, par sous-équipes, etc. Les équipes se lancent parfois des défis! C'est-à-dire que les équipes demandent à leurs participants de se focaliser sur un projet donné et de ne calculer que celui-ci pendant une semaine. A la fin d'un temps imparti, les équipes ayant cumulé le plus de points gagnent! Gagne quoi? L'estime des autres participants bien sûr!

Je participe à l'équipe de l'Alliance Francophone.

De même que pour les projets, les équipes n'ont pas d'autorité régulatrice, quelqu'un créé une équipe en espérant que d'autres vont le rejoindre! Dans l'Alliance Francophone, on trouve des sous-équipes par départements, ou régions, ou villes. Le côté tribal atavique de l'animal humain!

Certains considèrent aujourd'hui que les systèmes de calcul distribué étant devenus matures, il serait logique de rétribuer financièrement les bénévoles (qui ne le seraient plus), au moins en compensation de la dépense d'électricité. Le problème est que comme tout système informatique mondialement utilisé, qui plus est s'il y avait une rétribution financière à la clé, il serait sujet au piratage! Ce ne sont pas alors les ordinateurs des bénévoles qui sont la cible, mais les serveurs des projets qui se font hacker, ou abuser, par l'envoi de faux résultats... Les utilisateurs de ces "techniques" se voient alors classés en tête du projet avec des scores immenses et souvent totalement irréalistes. Voilà sûrement une des raisons pour laquelle on n'est pas près d'être rétribué financièrement pour sa participation!

Est-ce que la compétition engendrée par les rétributions de points ne va-t'elle pas à l'encontre de la notion de bénévolat? Puisqu'elle peut inciter certains à tricher. Certes, mais à ce moment-là, comme toute entreprise humaine, oserais-je avancer. Ne voit-on pas des sportifs dopés? N'a-t'on pas vu des dirigeants malhonnêtes, responsables d'association ou fondation, s'enrichir sur le dos de la recherche sur le cancer? Je préfère considérer que la récompense par points est un moteur, une fierté pour la majorité des participants. S'il n'y avait pas les points, on serait tout aussi fier si, un jour, un projet vous annonçait que votre ordinateur a calculé un résultat décisif dans un projet scientifique. Mais en attendant cette hypothétique annonce et ces hypothétiques félicitations, sans les récompenses par points, on aurait juste à "regarder" son ordinateur calculer!

Science

Bon nombre de projets de calcul distribué portent sur la biochimie et particulièrement l'étude du pliage des molécules. A savoir, comment font, au sein de nos cellules, nos minuscules usines pour assembler et plier des groupes d'atomes en de grosses molécules! Mais surtout, comment fait la nature pour arriver à plier (presque) toujours les atomes de la même façon, alors que dans un tube à essai, ça ne marche pas bien!

Partis de l'étude du génome humain, désormais terminé (en tout cas dans son analyse, pas dans sa compréhension!), les projets génétiques sont arrivés sur l'étude du pliage des molécules. Car au-delà de la compréhension des mécanismes intrinsèques, comprendre ce qui passe quand le pliage de la molécule rate permettrait également de comprendre ce qui se passe dans certains dysfonctionnements organiques ou certaines maladies (cancer, Alzheimer, prion, etc).

Sur le site d'un des projets majeurs et pionniers dans ce domaine, Folding@Home, il existe désormais des pages en français pour vous aider à comprendre le B-à-B.A. de la chimie organique, de l'ADN et du pliage de molécule. On vous explique également quelles maladies sont liées au dysfonctionnement du pliage des molécules.

Complément d'information

Le calcul distribué: Explications plus complètes, mais plus techniques, sur Wikipedia.



Je participe désormais à plus de projets grâce à BOINC.

BOINC a été initié par l'équipe du projet SETI.

J'ai du respect et de l'affection pour l'équipe du projet SETI, qui, en grande partie, a eu l'idée originale de créer un outil pour que les ordinateurs personnels du monde entier participent à des calculs pendant leur temps d'inactivité.

Mais aujourd'hui que le concept est bien compris et utilisé, que nos ordinateurs @ home sont très puissants, que leur puissance n'est quasiment pas utilisée quand nous travaillons avec, autant "gaspiller" l'électricité nécessaire à leur fonctionnement pour la réalisation de projets (à mon sens) plus porteurs pour le futur de l'humanité que de chercher si les extra-terrestres nous envoient des messages radio!

En effet, comme projet, Folding@Home n'en est pas des moindres, mais il y a aussi FightAIDS@Home, MalariaControl@Home.

Folding@Home devrait rejoindre BOINC, mais ce n'est pas leur priorité... C'est bien dommage, les nouveaux intéressés pourraient utiliser leurs ordinateurs directement avec BOINC et participer à plus de projets. Les anciens "foldeurs" pourraient garder leurs points tout en participant, eux aussi, à plus de projets.

D'un autre côté, dans les différents projets en biologie, on voit qu'il y a une (saine?) concurrence sur l'étude du pliage des molécules. On peut comprendre que Folding veuille conserver son pré carré!

Les projets BOINC sont répartis en cinq grandes catégories: Astronomie, Biologie, Climatologie, Mathématiques et Physique-Chimie.

Mes statistiques de participation pour Folding@Home :
Extreme OC propose aussi des "signatures" instantannées en Php:


Sur le site du forum de l'Alliance Francophone, il est possible de demander la création d'une "signature" sous forme d'imagette (pour les forums par exemple), automatiquement mise à jour, qui reprend les données des stats :

Mes statistiques de participation pour BOINC :

Et ch'uis pas peu fier passe que m'sieur Vijay Pande, le patron de Folding@Home, y m'donne régulièrement des beaux certificats pour me remercier!!!
certif points certif wu