Sur la parallélisation massive

Deux expressions à la mode ces temps-ci sont « cloud computing » et « grid computing« , le concept qui consiste à distribuer la puissance de calcul ou de traitement sur un vaste réseau d’ordinateurs respectivement hébergés au sein d’un centre de données ou éparpillés sur Internet.

Un exemple le plus fréquemment utilisé est celui de Google (cloud computing). Aux débuts du Web, AltaVista était l’un des plus puissants moteurs de recherche, et utilisait une poignée de DEC Alpha – les machines haut de gamme 64-bit de Digital Equipment Research. Google a suivi une approche diamétralement opposée: au lieu d’utiliser quelques machines haut de gamme, utiliser un réseau de milliers de PC ordinaires. D’autres ont suivi, comme Amazon.com qui est désormais également connu pour ses services de cloud computing.

Côté cloud computing, le projet SETI@home (1999) demandait aux Internautes de par le monde de consacrer les capacités de calculs inutilisés de leurs ordinateurs pour trouver des signes d’intelligence en analysant tout bruit en provenance de l’espace. Sur le même modèle, la simulation moléculaire Folding@Home de l’université de Stanford se base en grande partie sur les volontaires qui donnent les capacités non utilisées de nombreuses machines, mais principalement de leur PlayStation 3.

La parallélisation massive est à la mode. Exit les Crays?

La parallélisation, étape incontournable pour des hautes performances

Mais si on y regarde d’un peu plus près, un supercalculateur tel qu’un Cray est basé sur une architecture massivement parallèle. Un Cray ne contient pas un CPU super-méga puissant, mais est composé de plusieurs cabinets, eux mêmes composés de plusieurs circuits qui contiennent plusieurs CPU tournant en parallèle. Les supercalculateurs modernes peuvent être composés de plusieurs milliers d’ordinateurs totalisant plus de 70.000 CPUs multi-cœurs. On ne lance pas une application sur un Cray en espérant qu’elle tourne magiquement super vite. L’application doit être vectorisée pour que plusieurs parties puissent tourner en parallèle.

La même logique de parallélisation est standard dans beaucoup d’autres industries, comme celle du disque dur. Le principe des disques RAID est en effet d’utiliser plusieurs disques en parallèle pour avoir un plus gros disque virtuel et/ou augmenter les performances (selon les configurations). Et même dans le monde du PC la parallélisation n’est pas un phénomène nouveau. Dans les années 90, la nouveauté du Pentium était de contenir deux cœurs i486. De nos jours on peut facilement acheter un PC à base de processeur à 2 ou 4 cœurs.

Où que l’on regarde, les solutions de haute performance incluent toutes un type de parallélisme car c’est la manière la plus facile d’augmenter les performances.

Quelle différence entre supercalculateur et cloud computing?

D’un point de vue technique, la grosse différence est la manière dont la parallélisation est effectuée.

Google ne cherche pas à utiliser des composants haut de gamme. La raison est ici historique: lorsque Google a démarré, la compagnie avait relativement peu d’argent. Brin et Page ont donc cherché les composants les moins chers du marché, et ont rajouté des serveurs de redondance pour pallier à d’éventuelles pannes. Montain View a depuis gardé le reflexe de ne pas forcément prendre les composants les plus haut de gamme – et pas forcément pour des questions d’argent. Pendant un temps Google utilisait des Pentium 3 au lieu de Pentium 4 car ces derniers dégageaient plus de chaleur à puissance de calcul égale (la chaleur dégagée est une gros problème, que ce soit pour les fermes d’ordinateurs ou les supercalculateurs). Et pour ce qui est de SETI@Home ou Folding@Home, ces derniers doivent se satisfaire des machines des gens qui ont bien voulu participer.

Les supercalculateurs, de leur côté, ont toujours eu comme client des organisations ayant les poches pleines et qui sont prêtes à payer le prix fort pour avoir les meilleures performances possibles. Pour des vendeurs tels que Cray, il a donc été logique de n’utiliser que les composants les plus performants qui soient.

Le choix des composants a une incidence sur le type de modèle suivi. Google ou SETI@Home suivent naturellement une logique d’intégration horizontale: ils utilisent des composants standard du marché, et connectent leurs machines par un réseau – ou Internet dans le cas de SETI. Les supercalculateurs, eux, cherchant les composants les plus performants du marché, ont bien souvent dû utiliser des composants spécialisés, d’où une logique d’intégration verticale. Les supercalculateurs ont en effet pendant longtemps utilisé des processeurs dits vectoriels (c’est-à-dire qu’ils peuvent utiliser plusieurs opérations en parallèle). Ces processeurs sont montés sur des carte-mères spéciales, et chaque machine est connectée par le biais d’un bus spécialisé haute performance. Si Google a également customisé une partie de l’électronique de ses serveurs, il est loin d’atteindre le niveau de Cray.

Jusqu’alors, ces deux différences jouent en faveur des supercalculateurs. Sauf pour deux facteurs:

  • Google comme Folding@Home ont du apprendre à contourner le problème de l’intégration, ce qui leur a donné à terme un avantage. Car leur infrastructure monte beaucoup plus facilement en charge qu’un supercalculateur. Ces deux architectures peuvent en effet facilement doubler le nombre de machines utilisées, et n’ont pas de problèmes pour utiliser du matériel hétérogène. Un supercalculateur, par contre, aura un nombre maximum de machines qu’il peut utiliser, et est optimisé pour un type de processeur donné. Il faut reconcevoir l’architecture si l’on veut augmenter le nombre limite de machines ou utiliser des processeurs plus récents.
  • Utiliser des composants standards tels que des PCs ou des PlayStation permet de bénéficier des énormes économies d’échelles dont ces derniers jouissent. Les processeurs communément utilisés par les PCs ne valent peut-être pas les processeurs vectoriels dernier cri, mais à coût égal ils fournissent bien plus de punch. De la même manière, les jeux vidéos 3D ont créé une forte demande de processeurs graphiques 3D (Graphical Processing Unit ou GPU). Parce que le marché du jeu vidéo est si important, les GPUs développés par ATI et autres Nvidia sont des bouffeurs de nombres très puissants pour un prix modeste. Leur seul inconvénient est qu’ils ne peuvent pas effectuer n’importe quel type d’opération, rendant leur utilisation limitée pour des besoin de gros calculs.

Comparaison puissance et prix

Il est très difficile de pouvoir comparer les prix dans la mesure où non seulement les prix des supercalculateurs sont rarement publics, mais les prix ne cessent du chuter et les performances d’augmenter.

Au jour du 1er janvier 2010, le supercalculateur le plus puissant est le Cray XT5, avec une puissance de 1,75 petaFLOPS (milliards de milliards d’opérations à virgule flottante par seconde), suivi de l’IBM RoadRunner (1,7 petaFLOPS). Le Cray XT6, successeur du XT5, a été annoncé fin 2009 mais n’est pas encore disponible. De son côté, Folding@Home a en avril 2009 fourni plus de 8.1 petaFLOPS en utilisant 350.000 machines.

Quid du coût au teraFLOPS? En décembre 2009, Folding@Home avait 55.291 PS3 qui fournissaient 1,559 teraFLOPS. A $300 la PS3, cela revient à $10.000 le teraFLOPS ou $10 million le petaFLOPS – mais je suppose que Sony ferait une bonne réduction si quelqu’un achetait 55.000 PlayStation 3 d’un coup.

Selon la brochure du Cray XT5, chaque cabinet de ce dernier délivre une puissance de 7 à 12 teraFLOPS. Sachant que le prix d’entrée de gamme d’un cabinet était en 2007 de $500.000, cela nous fait du $70.000 le teraFLOP. Les prix ont du chuter depuis, mais il n’est pas indiqué combien faut-il de cabinets pour atteindre le petaFLOPS (100 cabinets à 7 teraFLOPS ne dégagent pas forcément 700 teraFLOPS). On peut cependant penser que le prix au petaFLOP doit être désormais bien inférieur à $70 millions.

L’IBM RoadRunner, quant à lui, fournit 1.04 petaFLOPS pour la bagatelle de $125 millions (source: Wikipedia).

En d’autres termes, non seulement une solution de grid computing offre des performances comparables à celle d’un supercalculateur, mais avec un prix du matériel bien moindre: avec $16,5 millions de PS3 (prix grand public que Stanford n’a même pas eu à payer!) et quelques serveurs de Stanford, Folding@Home fournit des performances équivalentes à celles de l’IBM RoadRunner qui lui coûte $133 millions (Folding@Home utilise également Internet, mais je ne pense pas que le coût soit important).

Par contre, le grid computing a plusieurs inconvénients. L’université de Stanford ne se soucie peut-être pas de savoir qui possède les PS3 qu’elle utilise, mais des clients comme le Pentagone sont plus sensibles à de tels détails. Et héberger 55.000 PS3 demanderait beaucoup d’espace, de maintenance et d’électricité. Un supercalculateur reste donc beaucoup plus pratique.

Tendances

Depuis plusieurs années ont voit un rapprochement entre les solutions distribuées (cloud ou grid computing) et les supercalculateurs.

L’inconvénient majeur des solutions de cloud computing est la demande en espace. Mais la technologie de masse n’a cessé d’évoluer pour offrir une intégration de plus en plus poussée. Au début les PCs étaient une grosse boite sur le bureau puis dans la salle machine. Puis les serveurs PC sont devenus disponibles en racks, ce qui permet d’en stocker quelques dizaines dans un cabinet, gagnant du coup beaucoup d’espace. Google a personnalisé le matériel pour transformer une armée de cabinets en un cloud computer. Et il est à parier qu’ils ont continué à améliorer l’intégration entre les cabinet comme entre les racks à l’intérieur d’un cabinet. Parce qu’ils ont du déployer des centres de données (data centers) de par le monde, Google a dés 2005 travaillé sur des containers bourrés de serveurs (Google l’a reconnu en avril 2009). Ces containeurs sont prêts à être mis dans un bateau ou sur une remorque de camion, et à être déployés à peu près n’importe-où.

Les processeurs Intel et AMD, quant à eux, ont augmenté en puissance, certains ayant maintenant de 8 à 12 cœurs. Finalement, Nvidia (le plus gros constructeur de processeurs graphiques avec ATI) s’est attaqué au marché des « supercalculateurs personnels » depuis quelques années avec sa gamme Tesla. D’un côté il commercialise le Tesla C1060, une carte dédiée au calcul scientifique qui contient quelques 240 processeurs graphiques et coûte $1200 (de nombreux constructeurs tels que Dell, HP ou autres incorporent une C1060). Nvidia vend aussi son propre supercalculateur, le Tesla S1070, qui contient quatre C1060 (soit 960 processeurs graphiques) et qui pour $8000 fournit 345 gigaFLOPS (il peut fournir 4 petaFLOPS mais uniquement en simple précision).

En d’autres termes, l’intégration des composants grand public ne cesse de progresser. Aujourd’hui certains processeurs Intel ont 12 cœurs et un Tesla C1060 contient 240 processeurs graphiques. Demain le nombre de cœurs passera à 24 ou 32, et le prochain Tesla contiendra plus de GPU plus puissants. De même, il est possible que l’on voit apparaitre des cartes-mères avec de plus en plus de processeurs.

Il est cependant intéressant de noter que le cloud computing (où l’organisation possède et héberge les machines) est pour l’instant grandement utilisé pour de l’informatique de gestion (principalement des services Web). Le seul type d’informatique distribuée qui concurrence les supercalculateurs (informatique scientifique) est le grid computing (où l’organisation emprunte de la puissance de calcul à des ordinateurs volontaires disponibles sur Internet).

Mais le grid computing, de par sa nature, ne peut que rester un marché de niche. Cela dépend en effet entièrement de la bonne volonté des gens de prêter  la capacité de calcul de leur ordinateur ou console de jeu favoris. Folding@Home a peut-être réussi à enrôler un grand nombre de possesseurs de PlayStation 3, il risque à tout moment d’en perdre si un nouveau projet plus populaire apparait (comme un projet lié à la lutte contre le cancer par exemple)

Mais cela n’empêche pas les supercalculateurs d’évoluer également. A commencer par leur utilisation de composants du marchés. Depuis quelques années, les supercalculateurs ont délaissés les processeurs vectoriels pour acheter… des processeurs Intel et AMD. Même ce marché pourtant très fermé n’a pu résister aux économies d’échelles dont bénéficient Intel, AMD et autres Nvidia. Le Cray XT5 est en effet équipé d’AMD Opteron à 4 ou 6 cœurs (le XT6 sera équipé d’AMD Opteron 8 à 12 cœurs). L’IBM RoadRunner utiliser des Opterons aidés par des Cells (le processeur de le PS3). Et en 2008, Cray et Intel ont annoncé un partenariat pour développer des supercalculateurs. En Septembre 2008 Cray sortait son premier supercalculateur à base d’Intel Xeon quadruple cœurs:  le Cray CX1 (une version du XT1 utilise en plus un Tesla C1060). La station de travail Cray CX1-iWS, quant à elle, est en vente exclusivement chez… Dell!

Conclusion

Si le grid computing concurrence les supercalculateurs (Stanford a fait beaucoup d’économies grâce à Folding@Home) ce type d’informatique ne les remplacera pas pour les raisons citées plus tôt.

Le réel danger pour les supercalculateurs est qu’un jour le cloud computing s’attaque au domaine de l’informatique scientifique. Folding@Home a prouvé que l’informatique massivement distribuée peut fournir des performances supérieures aux meilleurs supercalculateurs. Or les clients de ces derniers désirent le plus de puissance possible. Sachant qu’il a fallu 55.000 PS3 à Folding@Home pour dépasser le petaFLOPS, qu’un container Google contient 1160 serveurs et que chaque serveur a la taille de plusieurs PSP 3, un constructeur pourrait arriver à créer un cloud computer sous forme de containers qui rivalise avec les Cray. L’installation ne serait pas plug ‘n play (le plus difficile est de gérer le refroidissement des machines), mais il n’est pas impossible qu’elle reste beaucoup plus facile que celle d’un supercalculateur qui doit être assemblé manuellement.

Le cloud computing va-t-il s’attaquer un jour au marché des supercalculateurs? Trop tôt pour le dire. Le grid computing, lui, n’est pas près de disparaitre. Après tout, qui n’aimerait pas bénéficier d’une puissance de calcul comparable aux meilleurs supercalculateurs pour trois fois rien?

Mais quoi qu’il arrive, les fabricants de processeurs grand public (Intel, AMD, N`vidia, etc.) ont déjà gagné car ils ont conquéri ces trois marchés. AMD a d’ailleurs racheté ATI, poussant beaucoup à spéculer qu’Intel se doit de racheter Nvidia afin d’avoir dans son offre des CPUs comme des GPUs.

Explore posts in the same categories: Intégration verticale / horizontale, Internet

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s


%d blogueurs aiment cette page :