LE CALCUL À HAUTES PERFORMANCES : URGENCE SCIENTIFIQUE, IMPERATIF INDUSTRIEL Dossier Le calcul à hautes performances : évolution du matériel et du logiciel Mots clés Loi de Moore, Grille, Vectoriel, Parallèle ■ Alain Kavenoky Ingénieur général des ponts et chaussées (Émérite) 1. Introduction L’objectif de cet article est de décrire brièvement l’évolution de la technique des matériels et des logiciels utilisés par le calcul à hautes performances. La première partie est consacrée à l’évolution des performances tant du matériel que du logiciel, la seconde partie présente les différentes architectures des ordinateurs parallèles. Une troisième partie fait le point actuel sur les très grands systèmes mondiaux et l’on essaiera de tirer quelques conclusions. 2.Historique et futur des supercalculateurs 2.1. La loi de Moore du matériel En 1965, lorsque Gordon Moore, l’un des fondateurs d’Intel, énonce la loi qui porte son nom [1], cette loi prédit que la technologie permettra le doublement annuel du nombre de transistors disposés sur une puce de circuit intégré, cette forme de la loi ne donne aucune indication sur la puissance du processeur associé. Rapidement, cette loi est apparue comme trop optimiste, et le consensus s’est fait sur un doublement, en deux ans du nombre de transistors par puce. A ce doublement du nombre de transistors est associée la réduction de leur dimension, donc l’augmentation de leur vitesse. On est arrivé alors à la version courante, une loi prédisant un doublement tous les dix-huit mois de la puissance des processeurs. L ’ e s s e n t i e l L’évolution des capacités du matériel est décrite, en rappelant la loi de Moore, son extension aux supercalculateurs, ainsi qu’à l’ensemble matériel logiciel. Les diverses architectures de systèmes parallèles, de la grille aux systèmes massivement parallèles sont brièvement décrites. Une vue de l’évolution récente des grands systèmes et une prospective à trois ans sont présentées et l’on termine par les incitations politiques et quelques remarques. Cette loi est remarquablement vérifiée depuis plus de quarante ans et toutes les courbes de croissance des puissances de processeurs l’attestent. Il faut de plus ajouter que le prix de vente unitaire des puces processeurs a considérablement baissé malgré l’augmentation de leur puissance. Ainsi au doublement en dixhuit mois de la puissance s’ajoute une réduction importante du prix de vente. La feuille de route de Sematech [2] montre que le coût du cycle élémentaire du transistor d’un microprocesseur est régulièrement divisé par deux en 1,1 an. Pour les supercalculateurs les plus puissants, l’idée que leur temps de doublement était plus long que celui des machines de bureau a été assez répandue. Elle est totalement erronée, un petit rappel historique le prouve facilement. Le 10 juin 2008, il a été annoncé que la machine Roadrunner de LANL1 avait atteint la puissance Linpack2 de 1,026 Pflops et avait ainsi franchi le seuil symbolique du million de milliards d’opérations par seconde. La machine ASCI-Red de Sandia a dépassé le Teraflops en décembre 1996, en un peu plus de onze ans, un facteur 1 000 a été gagné, le temps de doublement est de 1,1 année. En remontant encore dans l’histoire, la première machine à atteindre 1 Gflops a été un Cray/YMP, en 1988. La puissance de la machine la plus performante a été multipliée par un million en exactement vingt ans. C’està-dire que le calcul à hautes performances a été régi, ces vingt dernières années, par une loi de Super-Moore, sa 1 2 Los Alamos National Laboratory. Le programme Linpack résout un système linéaire par élimination de Gauss. S y n o p s i s The hardware roadmap is described, using Moore’s Law and its extensions to supercomputers and complete systems including hardware and software. Various parallel architectures, from grid to massively parallel systems are briefly described. A status vision of large systems is provided and a short term prospective view is given. Political incentives and a few remarks are listed. REE N°11 Décembre 2009 1 LE CALCUL À HAUTES PERFORMANCES : URGENCE SCIENTIFIQUE, IMPERATIF INDUSTRIEL Dossier Figure 1. Comparaison des gains de performance obtenus par les améliorations d’algorithmes et la loi de Moore du matériel (en fonction du temps). performance doublant chaque année. La feuille de route de l’ITRS3 prévoit que les développements de la technologie permettront la poursuite de la loi de Moore, jusqu’en 2022. 2.2. La loi de Moore de l’algorithmique La loi de Moore ne se limite pas à l’amélioration du matériel et des logiciels, il faut aussi compter sur l’amélioration des algorithmes. En suivant le document de David Keyes [3], « A Science-Based Case for Large-Scale Simulation » édité par l’Office of Science du DOE4, on montre l’avantage apporté par le développement des algorithmes en prenant pour exemple la résolution d’une équation de Poisson sur un maillage cubique de nxnxn. Le tableau suivant compare l’élimination de Gauss, la méthode de Gauss Seidel, la surrelaxation optimale, le gradient conjugué et la méthode multigrille : Méthode Nombre d’opérations Elimination de Gauss n7 Année de création Année 1970, année 0 Gauss-Seidel n5Log n Année 1978, année 8 Surrelaxation optimale n4Log n Année 1986, an. 16 Gradient conjugué n3.5Log n 28 Multigrille n3 35 Tableau 1. Nombre d’opérations pour résoudre un problème de Poisson. Ces valeurs sont obtenues en résolvant le problème par la méthode des différences finies, la matrice est formée de 7 diagonales et est d’ordre n3 et sa largeur de bande 3 4 2 International Technology Roadmap for Semiconductors. Department of Energy. REE N°11 Décembre 2009 est n2. Ainsi la résolution est en n7 par simple élimination de Gauss. La méthode multigrille réduit le nombre d’opération à n3, ce qui fait que ce nombre varie linéairement avec le nombre de nœuds et que le temps de résolution est proportionnel à ce nombre. On dit que cet algorithme est parfaitement « scalable ». Si l’on applique ce calcul au cas n=64, on se rend compte qu’en trente-cinq ans la loi de Moore du matériel et l’évolution de l’algorithmique ont fait gagner chacune un facteur de l’ordre de 107. La courbe représentant cette évolution (figure 1) a été largement diffusée dans de nombreux rapports de l’administration des Etats-Unis, elle n’a cependant aucune valeur probante. Il suffit de choisir la valeur de n pour apporter la conclusion de son choix. Le rapport International “Assessment of Research and Development in Simulation-based engineering and Science” [4] présente une approche plus factuelle en étudiant les performances du logiciel de dynamique moléculaire QBOX, ces performances sont présentées en fonction du temps, en agrégeant les changements de machine et d’algorithme. 2.3. La loi de Moore de la simulation D’après les auteurs, le temps de doublement de la performance du logiciel, en intégrant les gains dus au matériel et au logiciel est de huit mois. On peut montrer que si l’amélioration des capacités d’un algorithme revient à diviser par 2 le nombre d’opérations pour obtenir la solution en un temps Tal et que la performance de la machine est doublée en un temps Tmat, le temps de doublement apparent sera le double de la moyenne harmonique de Tal et ■ Le calcul à hautes performances : évolution du matériel et du logiciel ■ Figure 2. Evolution de la performance des codes FPDM sur différentes plates-formes de calcul (avec l’autorisation de François Gygi, University of California, Davis). de Tmat . En prenant Tmat et Tal égaux à 1,5 an, on obtient un temps apparent de neuf mois ce qui est assez cohérent. Ainsi, on voit apparaître la loi d’Hyper Moore, le temps de doublement des performances d’un logiciel, incluant les améliorations matérielles et logicielles est inférieur à huit mois. Cette constatation est cruciale, contrairement à certaines idées reçues, il ne suffit pas d’attendre que la loi de Moore matérielle règle tous les problèmes de performances ; pour que l’ingénierie et la recherche scientifique soient compétitives dans le futur, il ne suffit pas d’investir dans le matériel, un effort soutenu de développement algorithmique et logiciel est nécessaire. 3. Les architectures parallèles Dès les années 1960, alors qu’il paraissait difficile d’accroître les performances individuelles des ordinateurs, il était tentant de gagner de la vitesse en répartissant la charge de travail sur plusieurs machines. Ainsi naquit le projet ILLIAC IV, lancé en 1965, devant à l’origine associer 256 processeurs et atteindre la puissance de un milliard d’opérations par seconde. Malheureusement, ILLIAC IV ne fonctionna réellement qu’en 1975, pour atteindre la puissance de 100 millions d’opérations par seconde (Mflops) alors que le premier Cray 1 était installé en 1976, avec une puissance de crête de 166 Mflops. ILLIAC IV ne pouvait rivaliser en fiabilité et efficacité avec une machine commerciale, ce qui a eu un effet très négatif sur le développement du parallélisme. Peu de temps après le lancement du projet Illiac, en 1967, Gene Amdahl a énoncé une loi [5] indiquant les limites de la programmation parallèle. Supposons que dans un algorithme, une part α soit nécessairement exécutée en séquence et une part 1- α puisse être parallélisée. Il est bien évident que son temps de calcul sera supérieur à α quel que soit le nombre de processeurs utilisés. Le gain de vitesse est donc inférieur ou égal à 1/ α. Ce qui impose une limite absolue au bénéfice du parallélisme. Il est peutêtre utile de rappeler qu’Amdahl était un chercheur influant chez IBM, société peu orientée vers le parallélisme à cette époque. Cette loi a été utilisée comme argument contre la programmation parallèle avant que John Gustafson [6], en 1988, ne réinterprète correctement ce simple calcul. L’objectif n’est pas d’utiliser un ordinateur parallèle pour exécuter le calcul qu’une machine séquentielle pourrait faire avec succès, mais de traiter un problème beaucoup plus grand. La part séquentielle est conservée à l’identique alors que la part parallèle est multipliée par un facteur important. Le gain en vitesse n’est plus limité que par la taille du problème à traiter. 3.1. La grille La grille (The Grid) a été formalisée en 1997 par Ian Foster et Carl Kesselman [7] : une grille de calcul est une infrastructure matérielle et logicielle qui fournit un accès fiable, cohérent, ubiquitaire et peu coûteux à des capacités de calcul de haut niveau. Plus récemment, la définition a été précisée : la grille ne se limite pas à un échange de fichiers mais doit offrir l’accès direct aux ordinateurs, logiciels, données nécessaires à la résolution collaborative de problèmes, dans l’industrie, la science et l’ingénierie. Cet ensemble est strictement contrôlé pour assurer la confidentialité nécessaire et conduit à créer une organisation virtuelle. La grille a été popularisée par le projet Seti@Home, (SETI est un acronyme pour Search for Extra-Terrestrial Intelligence) lancé en 1999 par l’université de Berkeley. REE N°11 Décembre 2009 3 Dossier LE CALCUL À HAUTES PERFORMANCES : URGENCE SCIENTIFIQUE, IMPERATIF INDUSTRIEL Ce projet demandait à tout utilisateur d’un ordinateur connecté à Internet de collaborer à ce projet en acceptant de traiter des tâches envoyées par l’université, pendant les périodes de veille de l’ordinateur. En agrégeant la puissance de toutes les machines connectées, SETI a été le premier projet à annoncer avoir atteint la barre de un million de milliards d’opérations (un Petaflops), mais en effectuant des tâches simultanées, mais indépendantes. Cette approche de la grille, conduit à s’intéresser à l’architecture des ordinateurs parallèles. 3.2. Les ordinateurs parallèles Les ordinateurs classiques sont construits selon l’architecture décrite par John von Neumann [8] en 1945. L’ordinateur est constitué de la mémoire, de l’unité de contrôle, de l’unité arithmétique et des entrées-sorties. L’unité de contrôle lit une instruction en mémoire, la décode, puis la transmet à l’unité arithmétique qui l’exécute. Les instructions sont traitées dans l’ordre où elles ont été placées en mémoire, par le programmeur ou le compilateur. L’architecture des machines parallèles est plus diversifiée ; on distingue d’abord les architectures SIMD (Single Instruction Multiple Data), chaque processeur exécute la même instruction sur des données différentes, par exemple calculer la somme de deux vecteurs, élément par élément, cette architecture est souvent appelée vectorielle. Cette architecture a été utilisée et continue à l’être par certains Cray et les machines NEC SX. Les calculateurs les plus répandus actuellement sont de type MIMD (Multiple Instruction, Multiple Data) où chaque processeur exécute son propre flux d’instructions appliqué à son flux de données. Les micro-ordinateurs actuels qui disposent souvent de plusieurs cœurs appartiennent à cette catégorie. Pour comprendre les spécificités des ordinateurs parallèles, il faut maintenant entrer dans l’architecture mémoire de ces machines. Deux cas extrêmes sont clairement définis, mémoire distribuée, mémoire partagée. La seconde est la plus simple d’emploi, tous les processeurs utilisent le même espace d’adressage, toute modification de la mémoire est immédiatement visible de tous les processeurs. Le principal inconvénient est la difficulté et le coût de construction, mais aussi la limitation en nombre de processeurs connectables. Le nombre maximal de cœurs dans ces architectures peut atteindre 1 024 dans certaines architectures SGI. L’architecture à mémoire distribuée est plus facile à réaliser, chaque processeur adresse directement sa mémoire, comme dans le cas d’un processeur unique et communique avec les autres processeurs par un réseau d’interconnexion. Chaque processeur gère seul la mémoire qui lui est connectée. Le temps d’accès à la mémoire dépend de sa localisation. Pour la mémoire directement connectée au processeur, le temps d’accès est très inférieur à la µs, il peut se compter en ms ou centaines de ms dans le cas d’un 4 REE N°11 Décembre 2009 accès par réseau Ethernet ou Internet. Les espaces de mémoire étant disjoints la programmation est plus difficile. Entre ces deux cas extrêmes, toutes les architectures intermédiaires ont été envisagées. Il est courant de fabriquer des systèmes à mémoire partagée à petit nombre de cœurs (8, 16, ) et on peut les connecter comme les architectures à mémoire distribuée. Parmi les ordinateurs les plus puissants, cette architecture est assez répandue. Dans le cas des architectures distribuées, deux paramètres sont importants, le nombre de processeurs par nœud (thin ou fat node) et le réseau d’interconnexion. Comme on l’a vu précédemment, la grille, forme la plus étendue du parallélisme peut utiliser Internet pour la connexion des nœuds entre eux. Pour des systèmes locaux, la connexion la plus simple est le réseau local Ethernet qui permet d’atteindre des débits de connexion de 1 à 10 Gbs, puis des réseaux spécialisés comme Myrinet, Infiniband ou Quadrics, pouvant atteindre 40 Gbs. Des réseaux spécifiques sont quelquefois utilisés, on peut citer le réseau en tore 3D des Cray XT5. Comme dans un réseau cubique, chaque nœud est relié à chacun de ses six voisins par un lien à 9,6 Go/s. 4.Les benchmark et une vue de l’évolution possible Cette grande diversité d’architecture produit une aussi grande diversité de performances, dépendant des cas tests utilisés. Le test Linpack qui sert de référence au classement biannuel du Top500 [9] résout un système d’équations linéaires, à matrice pleine. La dimension du système est librement déterminée pour assurer la performance maximale. Ce test est très loin de pouvoir mesurer l’efficacité d’un ordinateur pour un problème quelconque. Prenons l’exemple du dépouillement des expériences du LHC5, les calculs sont relativement complexes mais ils sont réalisés sur un seul processeur, avec un jeu de données associées. Une grille dédiée a été mise en place par le CERN et les laboratoires associés pour traiter ces calculs, le Worldwide LHC Computing Grid (WLCG) [10] est une collaboration mondiale de plus de 140 centres de calcul dans 33 pays, réunissant plus de 100 000 ordinateurs. Un autre cas très favorable au calcul parallèle est la simulation par méthode de Monte-Carlo. Chaque paquet d’événements peut être traité séparément et il suffit ensuite de collationner les résultats. Ce type de calcul est dit en anglais “embarassingly parallel”, ce qui est difficile à traduire. Les problèmes reposant sur la description géométrique et physique fine d’objet, par exemple l’aérodynamique d’un avion ou le crash d’un véhicule automobile met, en général, en œuvre des techniques de décomposition de domaine qui traitent les échanges entre des zones différentes du modèle. 5 Large Hadron Collider. ■ Le calcul à hautes performances : évolution du matériel et du logiciel ■ Ces problèmes se traitent souvent sur des architectures hybrides, partage de mémoire et réseaux d’interconnexion. Le principe est que deux processeurs échangent des messages contenant les programmes à exécuter et les données associées. Des bibliothèques de programmes ont été normalisées pour formaliser ces échanges, la plus connue est MPI6 dont il existe des versions en logiciel libre (par exemple MPICH [11]). Cette approche n’est malheureusement pas satisfaisante, la programmation MPI est lourde et complexe. Dans le cadre du projet HPCS (High Productivity Computing Systems) le Département de la Défense des états-Unis a financé trois projets de nouveaux langages de haut niveau dédiés au calcul parallèle : Chapel chez Cray, Fortress chez SUN et X10 chez IBM. Les langages développés sont actuellement en phase de test, cependant, ils ne semblent pas près de remplacer les techniques actuelles, ce qui ne facilite pas l’effort de développement logiciel nécessaire pour extraire tout le potentiel des machines pétaflopiques. L’évolution importante de l’année 2008 a été l’annonce du franchissement du seuil du petaflops, la machine Roadrunner de LANL a atteint en juin la puissance de 1,026 pétaflops. Il faut noter que cette machine aurait coûté 133 M€ soit environ 133 M€ /Pflops Cette annonce a été suivie par celle de la machine Jaguar de ORNL qui a atteint 1,059 Pétaflops. Il est peut-être instructif de revenir dix ans en arrière ; à cette date le professeur Thomas Sterling [12] du Caltech présentait un projet de machine pétaflopique pour 2007, avec une remarquable visite en réalité virtuelle. La logique était constituée de RSFQ (Rapid Single-Flux-Quantum) cryogéniques, permettant une horloge à 100 GHz la mémoire était holographique et l’interconnexion entièrement optique. Il avait raison pour la date, mais le contenu technologique est beaucoup plus simple et surtout moins coûteux. La technologie classique du silicium a permis de construire économiquement un super ordinateur performant, sans passer par des avancées trop radicales. Mais l’évolution ne s’arrête pas à ce niveau. Si la loi classique de Gordon Moore, qui prévoit le doublement de puissance des processeurs tous les dix-huit mois, est bien connue, son équivalente pour les supercalculateurs l’est moins. Le seuil du Gigaflops (Cray) a été atteint en 1988, celui du Teraflops (Intel) en 1998. Le facteur 1 000 est ainsi «régulièrement» obtenu en dix ans, ce qui correspond à un doublement annuel des performances, la loi de SuperMoore. Cette accélération s’explique par l’augmentation des budgets accordés au calcul intensif qui est justifiée par l’apport croissant de la simulation numérique à la recherche scientifique et au développement industriel. Ainsi, la NSF a annoncé l’installation au NCSA (UIUC à Urbana Champeign), en 2011 de la machine Blue Waters, d’une puissance d’environ 10 Pflops, dédiée à la recherche académique et le DOE celle d’une machine 6 Message Passing Interface. de 20 Pflops, dénommée Séquoia en 2012 à LLNL, soit un facteur 10 en trois ans, bien dans la perspective de la loi de Super-Moore. Ces deux machines, de conception différente, seront construites par IBM. Le prix de Blue Waters serait de 208 M€, soit 21 M€/Pflops ; il est intéressant de noter qu’entre RoadRunner et BlueWaters, le prix spécifique est divisé par 6,5 pour une date de livraison retardée de trois à quatre ans. Ces chiffres ne sont que des ordres de grandeur, les budgets de ces machines étant connus de manière très imprécise et les architectures n’étant pas comparables. Pour ce qui est de l’Europe et à part les projets du CEA, il faut signaler que le centre national allemand Gauss a commandé une machine BlueGene/P de 1 Pflops devant être installée pendant le premier semestre 2009. Le projet japonais Keisoku (signifie 1016 en japonais) prévoit, lui aussi, d’atteindre 10 Pflops en 2012, l’investissement du gouvernement japonais serait de l’ordre de 1,1 G€. Il se place dans la suite du succès de l’Earth Simulator, avec une ambition renouvelée, son nom sera Life Simulator. L’institut RIKEN est en charge du projet en s’appuyant sur les industriels japonais de l’informatique (Fujitsu, Hitachi et NEC), très récemment NEC et Hitachi ont annoncé qu’ils se retiraient du projet. 5. Les incitations politiques Le rapport Besson [13] consacré au développement de l’économie numérique en France, énonce 154 propositions pour que la France numérique soit au meilleur niveau mondial en 2012. Parmi elles, cinq concernent l’usage de la simulation numérique et méritent d’être rappelées dans ce document : • Elargir le champ d’action de GENCI à l’INRIA et dans le domaine de l’industrie et des PME • Développer la présence française dans les logiciels de simulation • Construire un plan de formation supérieure dans le domaine de la simulation numérique et de ses applications • Participer à l’infrastructure européenne PRACE • Etudier avec les acteurs industriels et la Commission européenne le développement d’une industrie européenne des supercalculateurs. 6.Conclusion Il est important de résumer nos principales remarques : • La puissance des supercalculateurs double tous les ans • Le coût élémentaire du calcul est divisé par deux, tous les deux ans • Le coût de l’heure de processeur (multicœur) est de l’ordre de 0,10 € • Le prix de revient de l’heure de l’ingénieur d’études est de l’ordre de 100 € • Il est rentable d’utiliser 1 000 heures de calcul pour éco- REE N°11 Décembre 2009 5 Dossier LE CALCUL À HAUTES PERFORMANCES : URGENCE SCIENTIFIQUE, IMPERATIF INDUSTRIEL nomiser une heure d’ingénieur • L’investissement en développement algorithmique et informatique est nécessaire, sous peine d’être dépassé par la compétition internationale • La puissance apparente des grands logiciels de simulation associés aux ordinateurs à hautes performances double tous les huit mois. Infrastructure Toolkit”, Intl J. Supercomputer Applications, 11(2): 115-128, 1997. [8]First Draft of a Report on the EDVAC [1945]. [9] http://WWW.top500.org [10] http://lcg.web.cern.ch/LCG/ [11] http://www.mcs.anl.gov/research/projects/mpi/mpich1/ [12]T. Sterling, P. C. Messina & P. H. SMITH, “Enabling Technologies for Petaflops computing”. Références [1] G. Moore, Electronics, Volume 38, April 19, 1965. [2] http://www.itrs.net/ [13]http://lesrapports.ladocumentationfrançaise.fr/BRP/084000. pdf019938665 Eric BESSON, Premier ministre, France. Secrétariat d’Etat à la prospective, à l’évaluation des politiques publiques et au développement de l’économie numérique. [3]“A Science-Based Case for Large-Scale Simulation”, Office of Science, US. Department of Energy, July 30, 2003. [4]http://www.org/sbes/SBES-InitialFullDraftReport-20April2009.pdf [5]“Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities”, AFIPS Conference Proceedings, (30), pp. 483-485, 1967. [6]J. L. Gustafson, “Reevaluating Amdahl’s Law”, CACM, 31(5), 1988, pp.532-533. [7]L. Foster, C. Kesselman, “Globus: A Metacomputing 6 REE N°11 Décembre 2009 L ’ a u t e u r Alain Kavenoky est Ingénieur général des ponts et chaussées (émérite).