Pour comprendre les tsunamis ou localiser des réservoirs de pétrole, les scientifiques font tourner des modèles toujours plus complexes sur des machines toujours plus puissantes. Certaines peuvent désormais réaliser près de dix millions de milliards d'opérations à la seconde. Bienvenue dans le monde du calcul haute performance, un défi technique doublé d'un enjeu industriel majeur.
ParisTech Review – Dans le domaine des superordinateurs, les générations se succèdent et les frontières reculent: la barre du petaflop (un million de milliards d’opérations à la seconde) a été franchie par une machine américaine en 2008 et les dix petaflops viennent d’être atteints au Japon. On annonce déjà 20 petaflops en 2012 et l’exaflop (un milliard de milliards d’opérations à la seconde) en 2018. Quel est l’enjeu de cette course aux capacités de calcul?
Philippe Ricoux – Ce n’est pas une simple compétition technologique, mais une réponse opérationnelle à un défi scientifique: mieux représenter la réalité des phénomènes complexes. Nous allons vers une modélisation toujours plus fine de ces phénomènes, qui permettra à terme de mieux les comprendre et dans une certaine mesure de mieux les anticiper. Songez que nous ne savons toujours pas exactement, à l’heure qu’il est, ce qui se passe dans un cumulonimbus. Les ouragans, les tsunamis, les tremblements de terre sont des événements qui mettent en jeu des paramètres très nombreux, et leur modélisation exige d’énormes capacités de calcul. C’est le premier enjeu des supercalculateurs.
La simulation informatique de ces phénomènes répond aussi à une autre contrainte: dans un certain nombre de cas, comme la sismologie ou certains aspects de la météorologie, les événements sont rares, et l’expérience est quasi impossible. Dans d’autres, comme le nucléaire ou la compréhension des explosions de combustibles (sur laquelle nous travaillons en ce moment chez Total), elle est dangereuse. Or c’est précisément pour ces cas rares ou dangereux qu’une meilleure compréhension est indispensable. Dans ces conditions, la simulation numérique à l’aide du calcul haute performance offre une alternative pertinente.
Bien sûr, on reste dans une modélisation qui ne reproduira jamais exactement la réalité, et cela explique la réticence de certains professionnels à s’en remettre aux modèles virtuels, même les plus sophistiqués. Par exemple, dans l’aérien, le calcul haute performance offre des solutions pour mieux comprendre les turbulences liées au passage des fluides le long d’une aile d’avion. On commence même à rêver d’un avion digital, conçu entièrement par calcul. Mais certains constructeurs restent méfiants, leurs ingénieurs rappelant à juste titre qu’il y a des vies humaines en jeu et qu’on ne saurait remplacer l’expérience. Ils ont raison… mais il y a des complémentarités à dessiner. Et dans le même temps, comme déjà dit, il y a des domaines, comme celui des sciences de la terre, où l’expérience n’est pas possible.
Quelles sont aujourd’hui les perspectives en termes de puissance de calcul?
Le supercalculateur le plus performant, qui est japonais, a une puissance de plus de 10 petaflops – un petaflop, c’est un million de milliards d’opérations à la seconde. Les champions sont le Japon, la Chine, les Etats-Unis, mais l’Europe n’est pas mal placée et en France par exemple nous avons aujourd’hui quatre machines petaflopiques. Ces classements en fonction de la puissance installée évoluent aujourd’hui très rapidement. Cela montre qu’il y a vraiment de nombreux besoins.
L’exaflop (1000 fois le Petaflop) est en vue: on devrait y parvenir dans un horizon de dix ans. Le zettaflop (un million de petaflops) pourrait être atteint vers le milieu du siècle. Pour vous donner une idée des enjeux, on aura besoin du zettaflop pour faire fonctionner des modèles sismiques complets; pour le moment, dans ce domaine, les puissances de calcul nous situent encore loin de l’optimum. Pour l’avion digital, on est également dans un ordre de grandeur zettaflopique.
Ces puissances de calcul posent des problèmes sur lesquels nous reviendrons, et dont le moindre n’est pas l’énergie mobilisée: aujourd’hui, la consommation électrique pour un petaflop est d’un mégawatt. Dans ces conditions, pour un exaflop, il faudrait une centrale nucléaire! Heureusement, on optimise régulièrement le rendement énergétique et l’objectif est de 20 mégawatts pour l’exaflop. Ce qui est déjà considérable, car cela implique de diviser par 50 la consommation du meilleur processeur connu à ce jour.
Un supercalculateur, pratiquement, ce sont des armoires de processeurs, qui sont installées dans un hangar de 100 à 500 m2. Une des limites auxquelles nous nous heurtons est tout simplement le fait de travailler avec de la matière: tant qu’on travaillera avec des processeurs au silicium, même en réduisant leur taille, la question est toujours de faire sauter un électron, et l’atome tient une certaine place. Par ailleurs l’énergie dégagée, en termes de chaleur notamment, impose des limites à la concentration spatiale. Imaginez de mettre un million d’iPhones dans un iPhone, et bien c’est exactement le défi du zettaflop. On progresse, et des solutions émergent pour passer à l’exaflop; mais il faudra sans doute une révolution pour atteindre le zettaflop. L’ordinateur quantique, une idée sur laquelle certains ont commencé à travailler très récemment, sera peut-être la solution.
En attendant, on a besoin de résultats, et donc on travaille en farming, en cloud, en associant différents calculs sur différentes machines.
La tendance aujourd’hui est-elle aux supercalculateurs ou au clouding?
Tout dépend en fait des usages recherchés. Les deux modèles ont leur pertinence, mais les potentialités d’application sont différentes. Par exemple, un ordinateur doté d’une très grosse puissance de calcul sera pertinent pour répondre à une seule question particulièrement complexe. D’un autre côté, il peut arriver qu’on ait à répondre à une question plus simple un très grand nombre de fois simultanément, et dans ce cas il vaut mieux avoir un cloud, c’est-à-dire des ordinateurs pas forcément très puissants mais nombreux et fonctionnant en réseau. Le clouding trouve sa pertinence pour des calculs qui posent un problème de stochastique, avec des variables aléatoires: dans ce cas il s’agit de faire, par exemple, un million de fois le même calcul, en changeant la variable. On n’a pas ici un gros problème, mais disons un million de fois le même problème, avec un million de conditions initiales différentes. Le cloud est pertinent par exemple dans les études médicales, la génétique.
Les supercalculateurs s’imposent en revanche quand une équation ne se laisse pas paralléliser facilement – en termes profanes, quand on ne peut décomposer la tâche à effectuer en de multiples sous-tâches qui seront exécutées en même temps et composeront ainsi des architectures parallèles. C’est le cas par exemple quand on tente de modéliser le fonctionnement d’un réseau de transports, où les différents paramètres interagissent les uns avec les autres dans le temps et dans l’espace: il est difficile de les décomposer, ils forment un tout. Autre exemple, la sismique, où l’on retrouve ces interactions, et où, lorsqu’on teste un modèle, les processeurs ont besoin de communiquer entre eux. En gros, lorsque toutes les données sont interdépendantes, il faut un supercalculateur.
Dans les deux cas, l’enjeu principal est d’accélérer le calcul, afin de parvenir à répondre à un problème dans un temps raisonnable. Un aspect pratique de cette question, c’est d’arriver à travailler en «temps ingénieur»: on lance le calcul à 18 heures en quittant le bureau, et on a le résultat à 9 heures le lendemain matin.
Les facteurs d’accélération sont-ils plutôt du côté du software ou du hardware?
En fait les deux questions sont liées, et pour une raison qui tient précisément aux questions de consommation d’énergie que nous venons d’évoquer. Du côté du hardware, la consommation est fondamentale; mais il faut savoir que dans un processeur, c’est surtout la mémoire qui consomme de l’énergie. On peut donc imaginer des millions de processeurs en parallèle, mais avec relativement peu de mémoire chacun.
Ce qui nous amène au software: car l’enjeu alors est d’apprendre à programmer autrement, et d’arriver à faire travailler 10 millions de processeurs en même temps. Pour cela il faut bien paralléliser les opérations, ce qui n’a rien d’évident. Car vous comme moi, nous avons l’habitude de travailler de manière séquentielle, sur la base d’une pensée qu’on pourrait dire linéaire. C’est avec ce type de pensée qu’il s’agit de rompre, en organisant autrement la façon de décomposer nos équations et donc de programmer. Pratiquement, on peut procéder par niveau, en emboîtant des équations, des systèmes à calculer qui ont des constantes de temps différentes. Au niveau supérieur, les plus lents, puis des systèmes un peu plus rapides, et ainsi de suite. On arrive aujourd’hui à articuler ainsi quatre ou cinq niveaux, et il faudrait aller jusqu’à sept ou huit. Par ailleurs on est capable de le faire sur 100 000 processeurs, et il faut apprendre à travailler sur un million, sur 10 millions… ce qui revient là encore à ajouter des niveaux. Or cette décomposition en niveaux est une aventure intellectuelle. On travaille aujourd’hui sur des paradigmes nouveaux.
Un problème, c’est que cette façon de procéder ne pourra pas être mise entre toutes les mains. Je veux dire par là qu’il y aura forcément un couplage complexe et délicat entre hardware, algorithmes, et applications, qui mobilisera des compétences extrêmement pointues, et en même temps une réelle pluridisciplinarité. Les acteurs publics ou industriels capables de réunir ces compétences sont rares.
Un autre problème, c’est qu’avec cette décomposition par niveau, on dénature nécessairement les équations. Car l’équation de base du transport par exemple, elle, reste séquentielle. Pour limiter au maximum les problèmes que peut occasionner cette disjonction entre l’équation de départ et sa traduction opérationnelle, architecture et algorithme doivent donc être développés en parallèle, et plus généralement computer science, analyse numérique et physique doivent être associés. Il existe ainsi des machines dont le hardware est conçu pour une application donnée, comme le supercalculateur Anton, qui a été conçu pour la génomique. Si une application est figée et reste stable, cela a du sens de construire une machine ad hoc, et les vendeurs en proposent.
Dans ces conditions, les industriels n’ont-ils pas intérêt à développer leurs propres machines?
Quand ils en ont les moyens, c’est effectivement leur intérêt. Cela dépend en fait de la proximité des calculs opérés en mode haute performance avec leur cœur de métier. S’il s’agit d’enjeux stratégiques, ils ont tendance à opter pour des solutions internes.
Il faut d’ailleurs noter que l’industrie est largement présente dans le «Top 500» des machines les plus puissantes. Les industriels représentent 57% du Top 500 en nombre, et 26% en puissance de calcul. En nombre, ils représentent 8% du Top 100. On s’aperçoit ainsi que le calcul haute performance n’est pas l’apanage des centres de recherche. En même temps, on mesure le décalage. Pour vous donner une idée plus précise, la 500e machine a la puissance de la première il y a six ans; c’est vrai aujourd’hui, et c’est à peu près constant dans le temps depuis 1980. Cela permet de mesurer assez précisément le temps d’incubation de l’industrie, qui reste dans la course. Parmi les autres acteurs privés, il y a aussi la finance – même si une partie des systèmes utilisés en finance sont répétables et passent donc par des solutions de type cloud computing.
Les programmes développés en interne par les industriels se combinent-ils avec des choix de type open source?
Oui, et pour plusieurs raisons. La première est le mode de tarification des éditeurs de logiciels, qui peut revenir très cher quand on parle de milliers de processeurs montés en parallèle: quand on a une machine avec mille cœurs, on veut bien payer une licence, mais pas mille! Un premier enjeu est donc d’échapper aux géants du software.
Ensuite, nous parlons ici de résoudre des problèmes complexes, multi-échelles; il serait aberrant de mettre tout cela dans un seul code, car il ferait des millions de lignes et serait sans doute très fragile. D’où la solution du couplage de codes. Par exemple on associe un code qui résout des équations de transport, un code qui prend en charge la thermodynamique, un autre sur les équations de chaleur… la physique est éclatée en modules, et on couple les modules dont on a besoin. L’orientation est donc aujourd’hui à développer module par module; d’où l’intérêt d’échanger des modules, et donc d’avoir des modules open source – qui présentent en outre l’avantage d’être développés avec des universités et d’être faciles à débuguer. Ce qui sera jalousement protégé, en revanche, c’est le couplage particulier des différents modules, le résultat final en quelque sorte. C’est en somme l’utilisation qu’on fait des différents modules, leur arrangement dans un “code métier”, qui constitue un savoir-faire interne et a donc vocation à rester secret.
Mais il n’est pas toujours évident d’identifier le calcul haute performance comme une ressource stratégique. Prenons l’exemple du pétrole. Pour les compagnies, on comprend sans peine qu’une bonne connaissance du sous-sol est indispensable, à la fois pour évaluer les risques sismiques et pour localiser plus précisément les ressources. Creuser un puits de pétrole coûte en moyenne 100 millions de dollars, et on se trompe une fois sur trois. Dans les années 1990, c’était deux fois sur trois, et l’amélioration a surtout été permise par les progrès du calcul haute performance et le développement de modèles toujours plus précis. Encore faut-il le démontrer, ce qui prend du temps; chez Total, nous n’avons été en mesure de le faire qu’en 2009. Auparavant, on se doutait bien des progrès rendus possibles par le HPC, mais un certain scepticisme se faisait sentir. Il faut savoir par ailleurs qu’un ordinateur pétaflopique coûte environ 20 millions d’euros (en 2011), et que le développement des programmes est un investissement lui aussi largement non négligeable. Ce sont donc des arbitrages, qui demandent à être précisément informés.
Certaines entreprises ont perçu ces enjeux, d’autres s’interrogent encore. Cela dépend en fait davantage des firmes que des secteurs. D’une façon plus générale, dans les économies développées mais aussi chez les grands émergents, l’accès au calcul haute performance est désormais reconnu comme un enjeu majeur de compétitivité et l’innovation. Il existe des programmes de soutien public au développement des supercalculateurs, comme PRACE en Europe, qui a pour but de donner accès à des supercalculateurs aux Européens – et de leur épargner ainsi les millions d’heures de calcul achetées aux Américains. Les Chinois sont désormais en pointe eux aussi; partout dans le monde, c’est un enjeu stratégique bien identifié. Tant mieux pour la science, car il nous reste beaucoup de choses à comprendre!
——
Note des éditeurs : Total est mécène de ParisTech Review.
References
- BOOKS
-
-
Computer Architecture: From Microprocessors to SupercomputersBehrooz Parhami
List Price: EUR 99,99
-
- Online
-
- Le dernier record en date : 10,51 petaflops (Engadget, avril 2011)
- Le programme européen PRACE
More on paristech review
On the topic
- Masses de données et marchés fragmentés, les nouveaux défis du marketingBy Knowledge@Wharton on November 25th, 2011
- Open source: sortir des idées reçuesBy Nordine Benkeltoum on October 19th, 2011
- Les puces du futur confirment-elles la loi de Moore?By ParisTech Review on July 20th, 2011
By the author
- Les enjeux du calcul haute performanceon November 30th, 2011