13
18 La Météorologie - n° 55 - novembre 2006 Console IBM 360-40 : gros plan sur la console système de l’IBM 360. (©IBM-France) Une salle de calcul typique des années 1970 équipée d’un IBM 360. (©IBM-France) Dossier Météorologie, climatologie : à la recherche du calculateur idéal… Dominique Birman (1) et Denis Paradis (2) (1) Météo-France - Direction des systèmes d’information (DSI) 42, avenue Gaspard-Coriolis - 31057 Toulouse Cedex [email protected] (2) Météo-France - Direction de la prévision Résumé La prévision numérique du temps et la simulation climatique ont toujours compté parmi les applications des calculateurs les plus puissants. Elles ont été à la pointe de l’utilisation des calculateurs vectoriels dès leur appa- rition. Aujourd’hui, l’efficacité des codes de météorologie et de simula- tion climatique sur les architectures massivement parallèles est établie, et de nouvelles technologies sont en cours d’exploration. Cependant, on ne voit pas se dessiner clairement une architecture privilégiée pour ces applications tant le marché semble encore susceptible d’évoluer, y com- pris de manière radicale, et parce que les développeurs des modèles numé- riques ont démontré leur aptitude à exploiter au mieux les technologies qui sont mises à leur disposition. Abstract Meteorology, climatology, looking for the ideal computer... Numerical weather prediction (NWP) and climatological simulation have always been applications of the most powerful computers. They have been in the forefront of the use of vec- tor machines since the first days. Nowadays, the efficiency of NWP and climatological simulation codes is clearly established, and new technolo- gies are being tested. However, there is no clear indication what the best architecture for these applications could be, because of the possible evo- lution of the market, and because model developers have shown their ability to make the best possible use of any technology. L es technologies du calcul scienti- fique ont suivi une évolution cons- tante et rapide. La prévision numérique du temps et la simulation climatique ont montré qu’elles savaient en tirer parti. Peut-on considérer qu’au- jourd’hui ces changements indiquent une direction claire et identifier les cal- culateurs et les techniques qui seraient les mieux adaptés à nos applications ? Telle est la question à laquelle nous avons cherché à répondre. Bref historique Paléontologie et antiquité : Eniac La prévision numérique du temps fut l’une des premières applications mises en œuvre sur un calculateur dès le milieu du XX e siècle, et ce n’est nullement l’effet du hasard, ainsi que l’expliquait Jean Coiffier en juin 2000 dans les colonnes de cette revue. L’intuition de Richardson et l’expérience menée sur l’Eniac (Electronic Numerical Integrator And Computer) par Charney, Fjörtoft et von Neumann en 1950 (Coiffier, 2000) ont durablement installé la prévision météo- rologique numérique au tout premier rang des utilisateurs de ces machines nouvelles. Les calculateurs séquentiels des origines IBM, Bull, CDC, l’ère des ordinateurs généralistes Si l’Eniac marquait le temps des pion- niers et des expérimentateurs qui établi- rent que la prévision numérique n’était pas qu’un rêve, le temps des industriels est ensuite arrivé très vite. IBM et Control Data Corporation sont connus

18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

18 La Météorologie - n° 55 - novembre 2006

Console IBM 360-40 : gros plan sur la console système de l’IBM 360.(©IBM-France)

Une salle de calcul typique des années 1970 équipée d’un IBM 360. (©IBM-France)

Do

ssie

r

Météorologie, climatologie : à la recherche du calculateur idéal…Dominique Birman(1) et Denis Paradis(2)

(1) Météo-France - Direction des systèmes d’information (DSI)42, avenue Gaspard-Coriolis - 31057 Toulouse Cedex [email protected]

(2) Météo-France - Direction de la prévision

RésuméLa prévision numérique du temps etla simulation climatique ont toujourscompté parmi les applications descalculateurs les plus puissants. Ellesont été à la pointe de l’utilisation descalculateurs vectoriels dès leur appa-rition. Aujourd’hui, l’efficacité descodes de météorologie et de simula-tion climatique sur les architecturesmassivement parallèles est établie, etde nouvelles technologies sont encours d’exploration. Cependant, onne voit pas se dessiner clairement unearchitecture privilégiée pour cesapplications tant le marché sembleencore susceptible d’évoluer, y com-pris de manière radicale, et parce queles développeurs des modèles numé-riques ont démontré leur aptitude àexploiter au mieux les technologiesqui sont mises à leur disposition.

AbstractMeteorology, climatology, lookingfor the ideal computer...

Numerical weather prediction(NWP) and climatological simulationhave always been applications of themost powerful computers. They havebeen in the forefront of the use of vec-tor machines since the first days.Nowadays, the efficiency of NWPand climatological simulation codes isclearly established, and new technolo-gies are being tested. However, thereis no clear indication what the bestarchitecture for these applicationscould be, because of the possible evo-lution of the market, and becausemodel developers have shown theirability to make the best possible use ofany technology.

L es technologies du calcul scienti-fique ont suivi une évolution cons-tante et rapide. La prévision

numérique du temps et la simulationclimatique ont montré qu’elles savaienten tirer parti. Peut-on considérer qu’au-jourd’hui ces changements indiquentune direction claire et identifier les cal-culateurs et les techniques qui seraientles mieux adaptés à nos applications ?Telle est la question à laquelle nousavons cherché à répondre.

Bref historique

Paléontologie et antiquité :EniacLa prévision numérique du temps futl’une des premières applications mises enœuvre sur un calculateur dès le milieu duXXe siècle, et ce n’est nullement l’effet duhasard, ainsi que l’expliquait JeanCoiffier en juin 2000 dans les colonnesde cette revue. L’intuition de Richardsonet l’expérience menée sur l’Eniac (Electronic Numerical Integrator AndComputer) par Charney, Fjörtoft et von

Neumann en 1950 (Coiffier, 2000) ontdurablement installé la prévision météo-rologique numérique au tout premierrang des utilisateurs de ces machinesnouvelles.

Les calculateurs séquentielsdes origines

IBM, Bull, CDC, l’ère des ordinateurs généralistesSi l’Eniac marquait le temps des pion-niers et des expérimentateurs qui établi-rent que la prévision numérique n’étaitpas qu’un rêve, le temps des industrielsest ensuite arrivé très vite. IBM etControl Data Corporation sont connus

Page 2: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

19La Météorologie - n° 55 - novembre 2006

Le Cray 1, premier supercalculateur vectoriel utilisé en opérationnel par Météo-France dans le cadre du C2VR.(Photo Météo-France, Jean-Marc Destruel)

dans le monde des services météorolo-giques. Bull ne l’a pas été, mais aurait pul’être, et on a aujourd’hui oublié que cettesociété menaça un temps (au début desannées 1960) la suprématie d’IBM.D’autres, tels Burroughs ou Univac, nesont pas parvenus à s’imposer durable-ment.

Ces calculateurs, qui intégreront desavancées technologiques considérables,telles que le passage des relais et destubes aux transistors, domineront l’en-semble du marché du calcul, que ce soitdans le domaine scientifique, comme enmétéorologie ou dans la recherche, tantcivile que militaire, ou encore dans ledomaine de la gestion (banque et assu-rance). Cette unicité de la gamme des cal-culateurs que l’on retrouvait dans tous lesdomaines d’utilisation prenait sa sourcedans des avancées très concrètes tellesque la microprogrammation(1) qui per-met d’unifier les jeux d’instructions, lessystèmes d’entrées-sorties quasi indépen-dants du système central, ou encore lesinstructions spéciales permettant l’opti-misation du système d’exploitation.L’exemple le plus abouti à cette époquefut le système IBM 360, apparu en 1964,qui fut beaucoup copié et dont de nom-breuses traces subsistent encore dans latechnologie des systèmes d’exploitation.

Ces ordinateurs universels qui ont cons-titué une réelle avancée industrielle sontaujourd’hui qualif iés de systèmesséquentiels, par opposition aux calcula-teurs vectoriels apparus ensuite et quisont évoqués dans les paragraphes quisuivent.

Aspects économiques et modèle d’accroissement des performancesCes systèmes, même s’ils se sont large-ment répandus dès la fin des années1960, restaient toutefois très coûteux,tant en investissement qu’en fonction-nement : consommation électriqueimposante et systèmes de climatisationtrès élaborés faisant appel à plusieursniveaux de circuits de refroidissement,encombrement au sol considérable, par-ticulièrement au niveau des périphé-riques. Ils étaient, au moins de ce fait,mais également de par leur complexitéd’utilisation, réservés à certains usages(la gestion pour de très grosses entre-prises, le calcul scientifique de pointe etles applications militaires), là où lesinvestissements humains et financiersnécessaires étaient jugés réalisables.

L’augmentation de la performance glo-bale d’un tel système passait par l’aug-mentation de la performance de chacunde ses composants : l’électronique desprocesseurs, la technologie des mémoi-res, des périphériques…

Après le passage des tubes aux transis-tors, rien ne change de ce point de vue :le même modèle d’accroissementcontinue à s’appliquer. C’est à cetteépoque qu’est formulée la loi expéri-mentale, toujours vérif iée depuis, àlaquelle Gordon Moore (inventeur dupremier microprocesseur et fondateurde la société Intel) a attaché son nom etqui stipule que le nombre de transistorspar unité de surface double tous les dix-huit mois, à coût constant.

cule l’évolution de tout un système, pascelle d’un point isolé). L’idée consistealors à effectuer cette opération sur tou-tes les données concernées quasi simul-tanément, ou au moins sur un volumesignificatif de données, ce qui aura poureffet d’accélérer considérablement l’en-semble des calculs. Cette idée sera, parla suite et jusqu’à nos jours, reprise surtous les calculateurs dits vectoriels.

Dans certains domaines de la simula-tion numérique du temps, un même cal-cul est à effectuer sur toute une verticalepour une variable. Cette verticale cons-tituera un vecteur lors de son traitementpar un calculateur vectoriel. Parailleurs, le Cray 1 mettait en œuvre unearchitecture de traitement en pipe-line,

(1) Pour la définition de certains termes tech-niques, se reporter au glossaire, page 28.

Les calculateurs vectorielsAu début des années 1970, SeymourCray, l’un des fondateurs de l’entre-prise, quitte Control Data Corporationpour fonder sa propre compagnie, CrayResearch Inc., afin de réaliser son pro-jet de construction d’un calculateurrévolutionnaire auquel il donne sonnom et qui voit le jour en 1976.

Le Cray 1 et son caractère innovateurLa révolution apportée par l’architec-ture du Cray 1 repose sur l’observationfaite que, dans nombre d’applications,une même opération est effectuée indé-pendamment sur tout un ensemble dedonnées (dans une simulation, on cal-

déjà proposée par les machines deControl Data Corporation, qui décom-pose une instruction en plusieursinstructions élémentaires et organise letravail à la chaîne sur ces instructionsélémentaires.

Des calculateurs spécialisés, différenciésLe calcul vectoriel a connu un succèsrapide avec l’arrivée du Cray 1, et on avu tous les centres de prévision numé-rique du temps s’équiper de ce type dematériel (la Direction de la météorologienationale, par exemple, en participant àla création du C2VR en 1983). Cepen-dant, ces machines étaient conçues pourrésoudre des problèmes scientifiques etelles ont envahi un marché de niche. Laséparation s’est rapidement faite entrecalculateurs vectoriels pour la recherche

Page 3: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

20 La Météorologie - n° 55 - novembre 2006

et les applications de pointe – y comprismilitaires, nous sommes encore à l’épo-que en pleine guerre froide et la chutedu mur en 1989 est encore loin –, d’unepart, et les calculateurs séquentiels quipoursuivaient leur évolution techno-logique et visaient le marché de la ges-tion et du transactionnel, d’autre part.

Modèle d’accroissementdes performances : des machines coûteusesCes calculateurs vectoriels restent trèscoûteux, tant en investissement qu’enexploitation. Ce sont des machines depointe, très proches des prototypes, fabri-quées en petites séries. Ils font appel àdes composants d’une technologie trèsélaborée, elle-même très coûteuse. Enfin,leur fonctionnement est,lui aussi, extrêmementonéreux : consomma-tion électrique élevée etsystèmes de refroidis-sement sophistiquésqui vont de pair.

Le modèle d’accroisse-ment des performancesest inchangé : l’aug-mentation de la perfor-mance du systèmepasse par l’augmenta-tion de la performancede chacun de ses com-posants. Donc, cemodèle coûte cher,d’autant plus que lescomposants sont deplus en plus élaborés et d’une technologiepoussée nécessitantune importante activitéde recherche et déve-loppement.

Mémoire partagée et mémoire répartie :les machines parallèlesAujourd’hui, même si l’architecturevectorielle est toujours mise en œuvrepar plusieurs constructeurs, on en parlemoins que du parallélisme. Le parallé-lisme n’est pas en soi une idée neuve,on savait faire fonctionner correctementdes biprocesseurs dès les années 1960.Mais on a vu, dans cette idée de fairetravailler ensemble plusieurs calcula-

teurs, une façon d’accéder à davantageencore de puissance de calcul en rom-pant, au moins d’une certaine manière,avec une logique toujours plus coûteuse,et on ne s’y est pas trompé.

Les différents types de parallélisme

Calculateurs vectoriels et calculateurs parallèlesIl n’est pas impossible de présenter l’ar-chitecture vectorielle comme une formede parallélisme. On l’a vu, les donnéescontenues dans un même vecteur sonttraitées avec un haut degré de parallé-lisme puisqu’elles subissent, presquesimultanément, un même traitement.On peut alors parler de parallélisme desdonnées. Cependant, l’usage réservera

Les calculateurs parallèles sont doncceux qui font coopérer plusieurs unitésde traitement ou processeurs à la résolu-tion d’un même problème. Travailler àplusieurs, c’est connu, est un bonmoyen de faire ce que l’on ne peut pasfaire seul, ou de le faire plus vite, cequi, dans le domaine du calcul, revientau même. Encore faut-il ne pas se gênermutuellement… Et pour ne prendrequ’un des problèmes qui se posentparmi les plus simples à formuler, onimagine aisément que si tous les proces-seurs d’un calculateur tentent simulta-nément de modifier la valeur d’unemême variable, soit ils y parviendront etle résultat sera aléatoire, soit le parallé-lisme disparaîtra totalement, les proces-seurs étant servis les uns après lesautres. Cette question de faire coopérerplusieurs processeurs, ou plusieurs cal-culateurs, se ramène à un problème departage des données. Les réponsesapportées sont diverses et ont évoluédans le temps.

Le parallélisme d’exécution • Mémoire partagéeDès les débuts de l’ère industrielle del’informatique, deux processeurs pilo-tés par le même système d’exploitationsavaient se partager une même mémoire(figure 1). Le système a ensuite étéétendu et les Cray Y-MP et Cray 2 (telcelui de Météo-France entre 1987 et

1992), puis le Cray C98 (ou le C916)proposaient de partager une mémoireentre 4, puis 8, voire 16 processeurs.Des instructions spéciales permettaientde guider le système d’exploitationlorsque cela était nécessaire.

Le Cray 2, qui fut partagé dans le cadre du C2VR de 1987 à 1991, avant dedevenir le premier calculateur opérationnel de Météo-France à Toulouse, jus-qu’en 1992. (Photo Météo-France, Jean-Marc Destruel)

l’application du mot parallélisme auxarchitectures mettant en œuvre plu-sieurs processeurs plutôt qu’à cellesmettant en jeu un processeur uniquetraitant des données multiples.

On peut imaginer mettre en parallèleplusieurs processeurs vectoriels. Cray,Fujitsu et NEC, pour ne citer que lesplus connus, l’ont fait. En général, onvise plutôt à égaler la puissance d’unprocesseur vectoriel en mettant enparallèle plusieurs processeurs non vec-toriels que, par opposition au terme vec-toriel, on trouvera souvent déf iniscomme scalaires.

Le Cray C98, qui a remplacé le Cray 2 en 1992 pourêtre opérationnel jusqu’en 1997. (Photo Météo-France, Jean-Marc Destruel)

Page 4: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

21La Météorologie - n° 55 - novembre 2006

Cependant, les conflits d’accès à unemémoire centrale unique sont de plus enplus difficiles à gérer avec 16 ou 32 pro-cesseurs et sont susceptibles de provo-quer l’effondrement des performances.Tout va dépendre, alors, de l’applicationet de sa programmation (et tout particu-lièrement de l’usage que l’applicationfait des données en mémoire). Ontrouve aujourd’hui des serveurs qui pro-posent une mémoire partagée entre 64,voire 128 processeurs. C’est l’applica-tion et sa manière d’accéder aux don-nées qui vont déterminer l’efficacitéd’un système de ce genre. Certainesapplications s’en accommodent moinsbien que d’autres, la simulation enmétéorologie et en climatologie est decelles-là.

culateur (figure 1). Les calculateursFujitsu VPP5000 actuellement exploitéspar Météo-France sont de ce type ;généralement les grilles (voir page 26)de PC s’y apparentent également.

L’effort d’adaptation est, dans ceschéma d’une mémoire répartie entreplusieurs processeurs en réseau, reportévers les applications qui doivent inté-grer l’architecture du calculateur etpiloter la répartition et les échanges dedonnées. Il reste encore, dans ce cas, àrépartir les calculs de manière aussiéquilibrée que possible entre les proces-seurs afin d’éviter que tous les proces-seurs, sauf un, n’attendent longuementque le dernier ait terminé sa tâche. Cetravail incombe également à l’applica-

le réseau interne qui est d’autant plusintense que le nombre de processeursaugmente. Mais si l’on souhaite dispo-ser d’une puissance de calcul impor-tante, ce nombre de processeurs estélevé. L’idée est donc née de mêler lesdeux types d’architecture en imaginantune mémoire à deux niveaux : un premierniveau sur lequel plusieurs processeurs separtagent une mémoire, puis un secondpour lequel on relie entre elles de tellesentités par un réseau (f igure 1). Onconserve ainsi la notion de mémoirerépartie, non pas entre processeurs,mais entre nœuds, c’est-à-dire entreregroupements de processeurs. Celapermet de disposer au niveau d’unnœud d’une puissance de calcul impor-tante accédant à une mémoire partagéereliée à d’autres unités de même typepar un réseau.

Ce modèle mixte est souvent présentécomme cluster – terme largement usitéet parfois traduit par grappe – denœuds SMP (Symmetric Multi-Processor) par la littérature des cons-tructeurs. Le calculateur IBM exploitépar le CEPMMT se range dans cettecatégorie, mais également les machinesproposées par nombre de constructeursparmi lesquels NEC (avec notammentson Earth Simulator), HP-Compaq,SGI, Bull (avec le système récemmentchoisi par le CEA-DAM). La difficultéde mise en œuvre d’un calculateur de cetype est reportée, une fois encore, versla programmation des applications.

Des modèles de programmation• Mémoire partagéeLa programmation est la plus aiséelorsque la mémoire est partagée par lesprocesseurs : les conflits d’accès auxdonnées sont gérés au niveau du sys-tème et l’utilisateur peut disposer à saguise de toutes les variables apparais-sant dans son programme. Une diffi-culté surgit cependant lorsque l’on veutfaire participer plusieurs processeurs,en parallèle, à l’exécution de son pro-gramme.

Une première méthode consiste à sereposer sur le compilateur qui peut détec-ter, via une analyse des dépendances, leszones du programme (généralement desboucles) qui sont parallélisables etgénérer des instructions qui seront pri-ses en compte à l’exécution pour uneparallélisation automatique (autotas-king de Cray dans les années 1990, parexemple). Malheureusement, l’effica-cité de ces paralléliseurs est toute rela-tive car ils peinent à déterminer lesdépendances dans les boucles : il peut

P1 P2 P3 P4

P1 P2 P3 P4

P1 P2 P3 P4

Mémoire partagée : les processeurs P1, P2, P3 et P4 accèdent tous à l’unique mémoire M de la machine.

Mémoire répartie : un processeur Pi n’accède qu’à la mémoire Mi qui lui est rattachée ;un réseau existe entre les mémoires (ou entre les processeurs pour d’autres architectures).

Modèle mixte : un groupe de processeurs (P1 et P2)n’accède qu’à une mémoire (M1) qui lui est rattachée ; un réseau existeentre les mémoires (ou entre les processeurs pour d’autres architectures) pour échanger éventuellement des informations entredeux processeurs de groupes différents.

• Mémoire répartieMultiplier les processeurs partageant unemême mémoire peut constituer uneréponse au besoin de puissance de calcul,mais il est possible que cette réponse soitmal adaptée aux applications. On peutdonc prendre le parti inverse : chaqueprocesseur dispose de sa propre mémoireet communique avec les autres par l’in-termédiaire d’un réseau interne au cal-

tion et à son programmeur, et le lecteurcomprendra aisément qu’optimiser uneapplication sur un tel système n’est pasune mince affaire.

• Mémoire mixteLe modèle de calculateur à mémoirerépartie permet de s’affranchir descontraintes de la mémoire partagée (lesconflits d’accès) au prix d’un trafic sur

Figure 1 - Schéma décrivant les différentes manières de rattacher de la mémoire à quatre processeurs P1, P2, P3 et P4.

Page 5: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

22 La Météorologie - n° 55 - novembre 2006

suffire d’une indirection dans un tableau(TAB(INDIRECTION(I))) ou d’unappel à un sous-programme pour que lecompilateur renonce, dans le doute, à saparallélisation.

C’est pourquoi le programmeur a étérapidement sollicité pour prendre enmain ce travail. Cela a commencé pardes directives placées dans le code pourautoriser ou interdire la parallélisationpar le compilateur. Mais les performan-ces n’ont été vraiment au rendez-vousqu’avec la mise à disposition de fonc-tionnalités plus poussées, comme lemacrotasking de Cray (interface pro-priétaire) ou plus récemment OpenMP.Il devient alors possible d’organisercomplètement la parallélisation, de spé-cifier des zones mémoire réservées àune tâche (pour le multitasking) ou à unthread (pour OpenMP ; généralement,un thread est équivalent à un proces-seur).

OpenMP a été défini conjointement parun groupe de constructeurs de calcula-teurs à architecture SMP (Compaq, HP,Intel, IBM, SGI, Sun, NEC) et d’édi-teurs de logiciels. Ce consensus a per-mis la naissance d’un standard qui a ététrès vite adopté : les programmeurs ontvu d’un bon œil leur travail de paralléli-sation pouvoir être réutilisé sur la plu-part des plate-formes. OpenMP est uneextension au langage de programmation(Fortran ou C ou C++) et se présentesous trois formes : des directives à insé-rer dans le programme, des appels à unelibrairie et des variables d’environne-ment. OpenMP permet de créer une« région parallèle » durant l’exécutionséquentielle d’un processus : à l’entréed’une région parallèle, le thread maîtredonne naissance à autant de threads

esclaves que demandé lors du lance-ment du programme, et le processuss’exécute en parallèle sur les différentsthreads jusqu’à la fin de la région paral-lèle où le thread maître poursuit seull’exécution du programme. Plusieursrégions parallèles peuvent se succéder.Il faut, à l’entrée de chaque régionparallèle, spécifier les variables quiseront partagées et celles qui serontréservées (variables de travail accédéesen écriture généralement) à chacun desthreads. Il permet une parallélisation àgrain fin (figure 2) comme à gros grain(figure 3).

La parallélisation à grain fin est souventplus facile à mettre en œuvre, mais nepermet de traiter qu’une petite partie duprogramme à la fois : il faut multiplierle nombre de boucles parallélisées pouraugmenter la fraction parallélisée du pro-gramme, sans descendre sous un certaingrain où le coût de la parallélisation(appels système, copies en mémoire,etc.) devient supérieur ou égal au gainqu’elle apporte.

les modèles Arpège ou Aladin, les cal-culs de la physique consomment envi-ron 60 % du temps total et sonteffectués dans une boucle facilementparallélisable avec OpenMP : c’est lecas idéal où, en quelques directivesjudicieuses, plus de la moitié d’un pro-gramme est parallélisée ! La loid’Amdahl (encadré page 23) montretoutefois qu’il faut paralléliser 98,4 %du programme pour utiliser huit threadsavec une efficacité de 90 % (nombre dethreads classique pour une architectureSMP). Si l’on se contente de ne parallé-liser que 60 % du programme, on n’uti-lisera les huit threads qu’avec uneefficacité de 26 %. En d’autres termes,les trois quarts de la puissance des huit processeurs seront gaspillés.

La parallélisation avec OpenMP présenteun gros avantage : la répartition dyna-mique des itérations entre les threads. Eneffet, il est possible de demander quel’ensemble des itérations d’une bouclesoit mis dans un pot commun dans lequelles threads piocheront alternativementjusqu’à ce qu’elles soient toutes réalisées.Le coût de chaque itération peut être dif-férent, les threads finiront généralementleur travail avec peu de décalage.Certains calculs – en points de grille – dela physique dans les modèles atmosphé-riques présentent justement ce déséqui-libre : la boucle de calculs se fait sur desverticales et selon qu’il y a ou non satura-tion en eau, le traitement sera plus oumoins coûteux (rayonnement, précipita-tion, etc.). Avec OpenMP (figure 3), l’équilibrage de ces calculs entre lesthreads peut se faire automatiquement(directive !$OMP SCHEDULE (DYNA-MIC,1)).

• Mémoire répartieLorsque la mémoire est répartie entreles processeurs, la parallélisation secomplique : après une analyse fine del’algorithme pour faire apparaître delarges parties où le programme pourras’appliquer en parallèle sur des donnéesdifférentes, il faut coder la distributiondes données parmi les processeurs etcoder explicitement les échanges d’in-formation entre processeurs.

Au début, plusieurs interfaces ont étédéveloppées pour permettre la communi-cation des processeurs entre eux (Parmacs,PVM, SHMEM ou Craft pour Cray, MPLpour IBM…), mais un standard a fini parémerger dans les années 1990 : MPI(Message Passing Interface).

La stratégie pour paralléliser change parrapport à celle utilisée par OpenMP : ilfaut imaginer une distribution de données

… instructions…

!$OMP PARALLEL!$OMP DO!$OMP SCHEDULE (STATIC)!$OMP PRIVATE (JTER)

DO JTER = 1,NA(JTER) = ALPHA*(B(JTER)-C(JTER))D(JTER) = A(JTER) * D(JTER)

ENDDO!$OMP END PARALLEL

… instructions…

Figure 2 - Exemple de parallélisation à grain fin avecOpenMP. La région parallèle est délimitée par lesdirectives !$OMP PARALLEL et !$OMP END PARALLEL.La directive !$OMP DO demande au compilateur de paralléliser la boucle suivante (DO … ENDDO)entre les threads, tandis que la directive!$OMP PRIVATE désigne les variables (ici, JTER) qui seront réservées à chaque thread (les autresseront partagées). La directive !$OMP SCHEDULE(STATIC) spécifie un découpage statique des itérations entre les threads.

… instructions …

!$OMP PARALLEL DO SCHEDULE (DYNAMIC,1)!$OMP PRIVATE(JKGLO,IBL,IEND,…,ZMOCON,…)

… instructions …

DO JKGLO=1,IGPCOMP,NPROMAIBL=(JKGLO-1)/NPROMA+1IEND=MIN(NPROMA,IGPCOMP-JKGLO+1)

… instructions …

CALL MF_PHYS(…,IEND,…,& PGMV(1,1,YT0%MT,IBL), ...,& ZMOCON, …)

… instructions …

ENDDO

… instructions …

!$OMP END PARALLEL DO

… instruction …

Figure 3 - Exemple de parallélisation à gros grain. Les calculs de la physique pour les modèles Arpège et Aladin sont faits dans la routine MF_PHYS qui traiteun nombre entier de verticales mises bout à boutdans NPROMA et qui est appelée dans une boucleparallélisée avec OpenMP. PGMV est une variabled’entrée qui contient la température à l’instant t et ZMOCON est une variable de sortie qui représentela convergence d’humidité (exemples parmi près de 200 variables). Les variables sont par défaut partagées entre les threads et il faut donc précisercelles qui seront propres à chaque thread( !$OMP PRIVATE(…)).

La mise en place de la parallélisation àgros grain requiert une analyse pluspoussée (dépendance cachée, accès enécriture des variables), mais est souventplus efficace. Dans une prévision avec

Page 6: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

23La Météorologie - n° 55 - novembre 2006

entre processeurs qui permettra d’exécu-ter le programme de façon indépendantesur chaque processeur. Un environne-ment de parallélisation est généralementcréé pour naviguer entre les diversesvariables, locales (c’est-à-dire propres àun processeur) ou globales, et pouvoirrepérer à l’aide d’indices les zonesmémoires propres à chaque processeurdans les variables globales. Mais cettefois, pour accéder au contenu d’unevariable qui appartient à un autre proces-seur, il faudra explicitement coder unecommunication : un processeur fabri-quera un message (identifiant, destina-taire, type et nombre de données, etc.) etl’enverra sur le réseau alors que le pro-cesseur destinataire devra se mettre enréception (identifiant, expéditeur, type etnombre de données, données). Tout celase réalise à l’aide d’appels à des routinescontenues dans une bibliothèque d’é-changes de messages, comme MPI (pourlangage Fortran, C et C++).

Pour illustrer cette mise en œuvre, laparallélisation d’un modèle atmosphé-rique utilisant la technique spectrale estprésentée dans l’annexe 1 et les aménage-ments de la parallélisation pour prendreen compte le schéma semi-lagrangien(1)

sont décrits dans l’annexe 2, page 30.

• Programmation hybrideAvec l’avènement des clusters de nœudsSMP, il devient possible de faire appelsimultanément aux deux précédentstypes de parallélisation : MPI est utilisépour la parallélisation internœuds(mémoire répartie) et OpenMP pour laparallélisation intranœud (mémoire par-tagée). Il s’agit de retarder les limitesinhérentes à chacun de ces deux types.En effet, la mémoire est rarement parta-

gée par plus de 32 processeurs (limitephysique pour gérer les conflits d’accès)et la parallélisation avec OpenMP perdrapidement en efficacité au-delà de huitprocesseurs (loi d’Amdahl). D’autre part,la multiplication des tâches MPI finit pargénérer un déséquilibre de la charge parprocesseur (absence de répartition dyna-mique comme avec OpenMP) et ladécomposition des données en trop petitséléments peut faire exploser le nombre detransferts de petits messages entre lesprocesseurs et, au final, dégrader le ratiocalcul/communication, qui est un bonindicateur de la performance de la paral-lélisation avec MPI. Si une telle program-mation hybride demande le travail dedeux parallélisations, c’est une solutionséduisante pour répondre à l’augmenta-tion du nombre de processeurs lorsquel’efficacité de la parallélisation avec MPItend à chuter.

Aspects économiques des machines à mémoire répartie Dès lors que l’architecture des calcula-teurs le permet, les constructeurs vontpouvoir multiplier les processeurs pouraugmenter la puissance de calcul. Mais lamultiplication des processeurs est égale-ment source d’économie pour, à puis-sance de calcul équivalente, utiliser descomposants moins puissants, moins diffi-ciles à imaginer et à fabriquer, doncmoins lourds en investissement.

Des composants banalisés et une production de masseCe sont les mêmes composants et lesmêmes processeurs que l’on retrouvedans les PC, dans les stations de travailprofessionnelles, dans les serveurs et lessupercalculateurs. Seul change, d’unproduit à l’autre, l’environnement deces processeurs. Les composants sontainsi mis en œuvre en grand nombre etpeuvent être produits en grandes séries,d’où, pour le constructeur, une écono-mie d’échelle importante et un meilleuramortissement des coûts de fabrication.De plus, l’amortissement des coûts derecherche et développement estmeilleur, puisqu’il peut se faire sur desséries bien plus importantes que ne pou-vaient l’être celles de calculateurs dutype Cray.

Des calculateurs à nouveaupolyvalents Une conséquence directe de l’arrivéesur le marché de ce type de calculateurest que ce sont les mêmes machines qui

La loi d’AmdahlLa loi d’Amdahl estime l’accélération qu’apporte une parallélisation. Si p est le nom-bre de processus parallèles (nombre d’unités vectorielles dans le cas de la vectorisa-tion, nombre de nœuds ou de processeurs dans le cas d’une parallélisation avec MPI,ou nombre de threads dans le cas OpenMP) et f la fraction du programme qui estparfaitement parallélisée (les coûts des appels système, d’alimentation des éventuelsregistres, de la synchronisation et des éventuels échanges de messages sont négli-gés), l’accélération du programme, A (rapport du temps d’exécution séquencielle surle temps d’exécution en parallèle), peut être estimée à :A=p/(f+p*(1-f)).L’efficacité de la parallélisation est définie par Eff=A/p.D’où le tableau ci-dessous qui présente l’accélération et l’efficacité (en pourcentage)en fonction du nombre de processeurs « p » et de la fraction parallélisée du pro-gramme « f » :

Cela montre que le degré de parallélisation d’un programme est fondamental si l’onveut utiliser efficacement de nombreux processeurs. Ainsi, en acceptant qu’un pro-gramme perde 25 % de la puissance disponible, il faut tout de même qu‘il soit paral-lélisé à 66,7 % si 2 processeurs sont utilisés, à 95,2 % pour 8 processeurs et à 99 %pour 32 processeurs.

f/p 2 8 32 128 512 Infini

0,6 1,4 2,1 2,4 2,5 2,5 2,571 % 26 % 7 % 2 % 0,5 %

0,8 1,7 3,3 4,4 4,8 5 583 % 42 % 14 % 4 % 1 %

0,9 1,8 4,7 7,8 9,3 9,8 1091 % 59 % 24 % 7 % 2 %

0,95 1,9 5,9 12,5 17,4 19,3 2095 % 74 % 39 % 14 % 4 %

0,98 1,96 7 19,8 36,2 45,6 5098 % 88 % 62 % 28 % 9 %

0,99 1,98 7,5 24,4 56,4 83,8 10099 % 93 % 76 % 44 % 16 %

0,999 2 7,9 31 114 339 1 00099,9 % 99,3 % 97 % 89 % 66 %

(1) Le schéma semi-lagrangien est un schémad’intégration temporelle traitant une partie destermes des équations d’évolution en suivant letrajet de la particule (lagrangien) et l’autre partieen une grille de points fixes (eulérien).

Page 7: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

24 La Météorologie - n° 55 - novembre 2006

Le VPP700E, premier calculateur du constructeurjaponais Fujitsu, opérationnel de 1997 à 2000.

(Photo Météo-France, Jean-Marc Destruel)

sont employées en gestion et en calculscientifique et technique. Les mêmesprocesseurs sont reliés entre eux par lemême type de réseau (ou peu s’en faut)et les constructeurs n’ont généralementplus qu’une architecture à leur catalo-gue. On se trouve alors confronté à unmarché dont les règles de fonctionne-ment sont différentes, du simple fait quele marché de l’informatique de gestionest notablement plus important envolume que le marché du calcul scienti-fique et technique, même si celui-ciconserve son prestige.

Modèle d’accroissementdes performancesL’augmentation de la performance d’en-semble du système passe encore parl’augmentation de la performance dechacun des composants, mais elle peutégalement passer par la multiplicationde ces composants. Le poids écono-mique d’un tel accroissement se distin-gue de celui des autres modèles du faitqu’il repose sur des composants pro-duits en grande série, donc d’un coûtmarginal réduit. Il est bien moinscoûteux de doubler la puissance en

installant un second processeur iden-tique au premier (et produit en série)qu’en doublant la vitesse de chacun descomposants au prix d’un effort techno-logique.

Le rôle du réseau interne Avec une telle architecture, la pressionest mise sur le réseau interne quidevient souvent le goulot d’étrangle-ment du système. Le débit du réseauaugmente généralement moins vite quela puissance de calcul, à cause d’unetechnologie délicate, sensiblement dif-férente de celle qui est mise en œuvredans les processeurs, et parfois moinsbien maîtrisée.

Et maintenant ?Quelles sont aujourd’hui, les machinesqui dominent, sinon le marché, dumoins le petit monde du calcul scienti-fique ? Une indication en est fourniepar le Top 500 des calculateurs dont lenom est explicite et qui est évoqué plusloin.

Les architectures : superscalaires et clusters de PCSi l’on excepte le Earth Simulator, quiest d’une architecture quelque peu aty-pique, les machines qui se placent aupremier rang pour la puissance de cal-cul se répartissent en deux catégories :les calculateurs SMP et les clusters (ougrappe) de PC. Ces deux architecturesont en commun de mettre en œuvreune mémoire répartie, de reposer surdes processeurs fabriqués en grande

Au centre de calcul de Météo-France, le Cray 2 cohabite avec le C98 jusqu’en 1994,

pour répondre aux besoins de la recherche.

série pour un marché dépassant large-ment le seul cadre du calcul scienti-fique et d’utiliser un réseau internerapide.

Accès mémoire et cacheLes processeurs vectoriels, outre leurvitesse de calcul, se caractérisent par larapidité des accès à la mémoire ; il fautalimenter le processeur au rythme quiconvient. Les processeurs fabriqués engrande série selon des technologiesmoins coûteuses et visant un marchéélargi ne peuvent pas offrir des débitsmémoire comparables à ceux des pro-cesseurs vectoriels. Il leur faut doncpallier cette relative lenteur des accèsmémoire par des dispositifs adaptés.

Page 8: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

25La Météorologie - n° 55 - novembre 2006

Le plus répandu est le cache, unemémoire beaucoup plus rapide que lamémoire centrale, puisqu’elle permet lefonctionnement du processeur à savitesse nominale. Elle est donc de tailleréduite, et plus coûteuse. Tout le travaildu programmeur, dans la phase d’opti-misation du code de son application,consistera à faire en sorte que les don-nées utiles se trouvent dans le cachequand l’unité de traitement en a besoin.

anticiper la lecture, tant des don-nées que des instructions des pro-grammes. Ainsi, le système d’exploita-tion ne se contentera pas de chargerdans le cache la donnée demandée,mais il anticipera la demande en char-geant le contenu de toute une zone de mémoire autour de celle qui est demandée. Cette technique estd’ailleurs très ancienne et se ren-contrait déjà sur les machines des ori-

machines vectorielles. On trouve ainsi,sur les processeurs d’aujourd’hui, desstructures de pipe-line telles que celledécrite auparavant pour le Cray 1 etdes dispositifs de prédiction de bran-chement destinés à prévenir la rupturedu flux d’alimentation du pipe-line.

Certains processeurs sont dits super-scalaires lorsqu’ils disposent de plu-sieurs pipe-lines d’instructions, traitant

L’exercice peut passer pour relativementsimple, du moins dans son principe, surun seul processeur. Il en va tout autre-ment si l’on considère que les systèmesdont on parle ici peuvent compter plu-sieurs centaines, voire plusieurs milliersde processeurs. Une donnée modifiéepar un processeur doit pouvoir être utili-sée immédiatement par un autre proces-seur. C’est tout le problème, bien plusdifficile à résoudre qu’à formuler, de lacohérence du cache qui est à la chargedu système d’exploitation (et, une foisn’est pas coutume, non pas à la chargedu programmeur qui peut ignorer surquels processeurs s’exécute son appli-cation).

Anticipation d’exécution et des accès mémoireUne autre manière de pallier la rela-tive lenteur des accès à la mémoire surles processeurs scalaires consiste à

gines (par exemple, dans le traitementdes entrées-sorties sur certains péri-phériques lents, comme les disques).

On peut généraliser cette pratique àl’exécution du code d’un programme.Lorsque le système d’exploitation ren-contre un test dans un programme, illance simultanément l’exécution desdeux branches de code avant mêmed’obtenir le résultat du test, puis neconserve que la branche correspondantau résultat. Il perd ainsi un peu de tempsdans l’exécution de la branche morte,mais en gagne bien davantage en antici-pant tous les accès à la mémoire pendantle temps d’évaluation du résultat du test.On parle alors d’exécution spéculative.

Des dispositifs différentsLes processeurs scalaires récents intè-grent un nombre croissant de disposi-tifs qui étaient proposés par les

ainsi plusieurs instructions en paral-lèle. Ils peuvent alors exécuter lesinstructions d’un programme dans unordre différent de celui dans lequelelles ont été écrites, ce qui peut enaccélérer considérablement l’exécu-tion. Les processeurs superscalaires lesplus récents affichent maintenant desvitesses de l’ordre de plusieurs giga-flops (milliards d’instructions en vir-gule flottante par seconde), ce qui lesplace au niveau des processeurs vecto-riels pour ce qui est de la performancecrête, la performance soutenue,effective, restant largement tributairedu type d’application.

Le VPP5000, deuxième calculateur Fujitsu, opérationnel de 2000 à 2003 avec 31 processeurs. Il sera étendu à 124 processeurs pour être opérationnel jusqu’en 2007. (Photo Météo-France, Jean-Marc Destruel)

Page 9: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

26 La Météorologie - n° 55 - novembre 2006

Le Top 500Il s’agit là, dans la profession, d’une insti-tution. Critiquable et critiquée, elle estconsidérée comme incontournable,comme l’est toute institution, mais elledonne malgré tout de bonnes indicationsquant à la vie du marché des calculateursscientifiques. Cette liste des 500 plus groscalculateurs au monde est maintenuedepuis 1993, remise à jour deux fois par anà l’occasion du salon Supercomputing quise tient en alternance en Europe et auxÉtats-Unis. Sa relative faiblesse est d’êtreconstruite à partir d’un banc d’essai (uncode d’algèbre linéaire connu sous le nomde Linpack) artificiel et unique, donc fai-blement représentatif des applications réel-les que sont la simulation climatique oumétéorologique, et favorisant certainesarchitectures de machines en ne tenant quefaiblement compte des communicationsinternes aux applications qui sollicitent leréseau. Sa force vient du fait que la fai-blesse que nous venons de décrire estconnue et que le biais qu’elle induit estrepéré, et surtout que l’on en est à la vingt-quatrième édition, ce qui constitue un tourde force en soi… On se reportera, pourdavantage de détails au site Internet dédié[www.top500.org].

Earth SimulatorImpossible, depuis bientôt quatre ans,de traiter du calcul scientifique sansévoquer ce calculateur hors norme, pre-mier de la liste du Top 500 pendant plusde deux ans et détrôné de justesse ennovembre 2004.

Retour ou survivance du vectoriel ?Il s’agit d’un calculateur composé deprocesseurs vectoriels (d’une puissancede 8 gigaflops chacun) regroupés en nœudsde 8 sur une mémoire partagée de 16 giga-octets. La machine compte 640 nœuds dece type pour un total de 5 120 proces-seurs et une mémoire globale de 10 tera-octets (10 000 milliards d’octets). Unréseau interne relie chaque nœud à chacun des autres, avec un débit de 12,3 gigaoctets par seconde, dans chaquesens. Son hébergement a nécessité laconstruction d’un bâtiment de 65 mètressur 50.

Earth Simulator constituait un véritabledéfi technologique relevé par le gouverne-ment japonais et dont la construction a étéconfiée à la société NEC. Les processeursdéveloppés à cette occasion sont mainte-nant, après quelques adaptations, commer-cialisés sous l’appellation de SX-6.Aujourd’hui, quelques applications, aupremier rang desquelles figure la simula-tion du climat, commencent à utiliser unefraction significative de la machine.

Quel impact sur le marché ?On est en droit, toutefois, de s’interrogersur la portée réelle de telles réalisations.Relativement à sa domination du mar-ché du calcul scientif ique dans lesannées 1970 et 1980, la présence de latechnologie vectorielle a beaucouprégressé devant les progrès de la techno-logie scalaire et son impact économique.Deux constructeurs seulement, aujour-d’hui, proposent des processeurs vec-toriels : NEC et Cray – Fujitsu a

interrompu cette ligne de produits aprèsle VPP5000). Encore font-ils tout leurpossible pour diversifier leur offre etprésenter une gamme scalaire. Qui,actuellement, peut construire une sallede ces dimensions pour une telle instal-lation ? Et quel serait le coût de com-mercialisation d’un tel système ? NECutilise son succès technologique commeun support, un peu comme la Formule 1dope les ventes d’automobiles.

Les très gros clustersLe Japon, avec Earth Simulator, a occupéle premier rang au monde pendant plusde deux ans. La réponse des États-Unisétait attendue. Elle est arrivée à la fin del’année 2004 qui a vu deux systèmesrécemment installés prendre les deux pre-mières places au Top 500. Les deux sys-tèmes sont du type cluster de processeurssuperscalaires. Le premier aligne plus de32 000 processeurs, le second plus de10 000. Il n’est pas aisé de se faire uneidée des applications qui saurontexploiter de tels calculateurs, mais ledéfi comportait un enjeu stratégiqueévident.

Le rôle du réseau desservant un telnombre de processeurs devient vital,plus important même que celui des processeurs. Si l’on peut tolérer quequelques processeurs tombent enpanne, et c’est toujours le cas vu leurnombre, il est en revanche impossiblede laisser le réseau se dégrader, caralors toutes les applications ralentissentou se bloquent complètement.

Pour ce qui est du gigantisme, enfin, cessystèmes n’ont rien à envier à la réalisa-tion japonaise. La salle de calcul estimmense, la consommation électriquese chiffre en mégawatts.

La grille, une piste nouvelle ?La grille de calcul est le nom le plus fré-quemment donné – et la traduction laplus répandue du terme américain gridcomputing – à l’emploi de techniquesqui permettent de faire coopérer plus oumoins étroitement plusieurs calcula-teurs reliés en réseau sur une mêmeapplication. Le domaine est encore enpleine effervescence et plusieurs solu-tions venant de constructeurs ou dudomaine public cohabitent et s’influen-cent mutuellement.

Un exemple original en est fourni par l’expérimentation Climate predic-tion [www.climateprediction.net]menée depuis 2003 par le Met Office

Top 500La liste des cinq premiers calculateurs du classement de novembre 2004 reflète la diversité des architectures.

Le CEPMMT occupait les 11e et 12e rangs (avec deux calculateurs identiques). Si cetensemble était considéré comme un calculateur unique, celui-ci occuperait la 6e place.Le premier site français est le CEA/DAM, avec une installation (HP Compaq) remon-tant à l’année 2000, en 41e position.Les calculateurs de Météo-France sont sortis du classement. S’ils étaient considéréscomme un calculateur unique, leurs puissances cumulées placeraient cet ensemble au331e rang.Un an après, sur les dix premières machines du classement de novembre 2005, huitsont installées depuis moins d’un an, le calculateur Earth Simulator figure en 7e posi-tion, le CEPMMT occupe les 33e et 34e places (et occuperait la 12e place en cumulantles puissances de ses deux machines), le CEA figure au 62e rang et les calculateurs deMétéo-France, même en cumulant leurs efforts, ne figurent plus au classement.

Rang Puissance Constructeur Organisme Architecture Nombre Nombre crête (tflops) et type de processeur de nœuds processeurs

1 91 750 IBM IBM/DOE PowerPC 2 processeurs 16 384 32 768

2 60 960 SGI NASA SMP scalaire Itanium 20 10 240

3 40 960 NEC Earth Simulator SMP vectoriel 640 5 120

4 31 363 IBM Centre calcul Barcelone PowerPC 2 processeurs 2 268 4 536

5 22 938 Intel LLNL Itanium 4 processeurs 1 024 4 096

Page 10: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

27La Météorologie - n° 55 - novembre 2006

britannique en collaboration avec desuniversités de Grande-Bretagne. Elleconsiste à mettre en œuvre à grandeéchelle les techniques de la prévisiond’ensemble sur des modèles climatiquesafin d’élaborer une prévision pour le XXIe

siècle. Le site Internet de l’expériencepropose au public de charger un modèleclimatique et ses données sur son PC.Une fois lancée, l’application s’exécuteen tâche de fond sur le PC, employant lapuissance de calcul inutilisée de lamachine. Une seule simulation dure dequinze jours à plus d’un mois (selon lapuissance de la machine). Le site Internetse charge ensuite de récupérer et devisualiser les résultats ainsi obtenus etfournit de nouvelles données pour relan-cer le modèle. L’expérimentation est déjàjugée prometteuse et les premiers résul-tats en ont été publiés par la revue Natureen janvier 2005 (Stainforth et al., 2005).

L’idée est séduisante et, sans aller jusqu’àutiliser les PC du grand public pendantles heures où ils sont inutilisés, on peutimaginer des modèles de simulations’exécutant la nuit sur les ordinateurs detoute une collectivité. Les problèmestechniques sont innombrables, mêmes’ils semblent avoir été résolus par l’ex-périmentation Climateprediction. Mais ildoit être possible de s’inspirer de cetteexpérience pour des simulations en moderecherche (pas de délais trop stricts ni decontraintes de type temps réel). En revan-che, on en est beaucoup plus loin pourune simulation en prévision qui s’accom-mode très mal de délais qui ne seraientpas complètement maîtrisés et quiimpose des contraintes fortes sur ladisponibilité, la fiabilité et la sécurisationdes infrastructures.

Le cas de la simulation climatique et de la prévisionQuel est le comportement des codesactuels de prévision numérique ou desimulation climatique sur ces calcula-teurs ? Il est d’usage de considérercomme un bon indicateur de ce compor-tement ce qu’il est convenu d’appelerl’efficacité du code, c’est-à-dire le rap-port entre la puissance soutenue, effecti-vement mise en œuvre par ce code, et lapuissance crête. Sur les processeurs vec-toriels, l’ensemble de la communautés’accorde à évaluer ce rapport autour de30 à 35 % (valeur obtenue sur l’ensemblede la chaîne de prévision opérationnellede Météo-France en comptabilisant lesphases d’initialisation et de terminaison,les entrées-sorties), ce chiffre est très voi-sin de ceux qu’obtiennent les autres ser-vices météorologiques et est considéré

comme bon par les constructeurs. Sur lesprocesseurs scalaires, ce rapport est del’ordre de 6 à 8 %. Sur certains proces-seurs superscalaires, après un lourd tra-vail d’optimisation ou de réécriture, onpeut parfois espérer atteindre 10 à 15 %.

D’où peut provenir une telle différence ?On peut l’attribuer au fait que les méca-nismes mis en jeu par la simulationnumérique du temps, et leur traduction entermes mathématiques puis informa-tiques, sont bien adaptés à l’architecturevectorielle, l’exemple le plus immédiat

du temps puissent se comporter aussibien sur une architecture que sur uneautre. Ce qui coûte, en revanche, c’estce que l’on appelle le portage, et quiconsiste à prendre un code développésur une architecture puis à l’adapter et àl’optimiser sur une autre.

Si l’on excepte la généralisation de lamémoire répartie, il est difficile de tirerun enseignement de ce qui se passe dansles grands centres de prévision ou desimulation climatique. Certains exploi-tent un calculateur à architecture vecto-

Les calculateurs à Météo-France de 1984 à 2006

étant le traitement dans un vecteur d’unevariable sur toute une verticale. Mais celamérite d’être nuancé. En premier lieuparce que c’est beaucoup moins vrai dansles traitements de l’analyse variationnelleen quatre dimensions pour lesquels lesprocesseurs superscalaires semblent plusefficaces que les processeurs vectoriels(les équipes du CEPMMT et de Météo-France l’ont vérifié). Ensuite parce quel’on ne peut pas exclure que ce sont peut-être les programmeurs qui se seraientbien adaptés à l’architecture vectorielleplutôt que les algorithmes… Il se pourraitdonc que les choses ne soient pas figéeset que les codes de simulation numérique

Période

Constructeur

Machine

Nombre de processeurs

Type des processeurs

Type de mémoire

Puissance crête (Gflops/s)

Puissance soutenue (Gflops/s)

1984-1987

Cray

Cray 1

1

vectoriel

partagée

0,16

0,1

1987-1993

Cray

Cray 2

2

vectoriel

partagée

1

0,5

1993-1995

Cray

C90

4

vectoriel

partagée

4

1,5

1995-1998

Cray

C90

8

vectoriel

partagée

8

3

1998-2000

Fujitsu

VPP700

26

vectoriel

répartie

62,4

19

2000-2003

Fujitsu

VPP5000

31

vectoriel

répartie

298

89

2003-2006

Fujitsu

VPP5000

124

vectoriel

répartie

1 190

357

Description de la série de supercalculateurs

Performance crêtePerformance soutenue

1984

1987

1993

1995

1998

2000

2003

0 200 400 600 800 1 000 1 200 1 400Puissance (Gflops/s)

rielle (c’est le cas de la France, mais ausside la Grande-Bretagne, de l’Espagne),d’autres un calculateur à architecturesuperscalaire (CEPMMT, États-Unis,Canada, Allemagne). Une mention parti-culière peut être faite de l’Allemagne quidispose d’un calculateur vectoriel pour lasimulation climatique et d’un calculateurscalaire pour la prévision météorolo-gique ; une autre concerne le servicemétéorologique de Grande-Bretagne quifut parmi les premiers, en 1996, à passerd’un Cray C916 (vectoriel à mémoirepartagée) à un T3E (scalaire à mémoirerépartie) et qui est revenu en 2003 à l’ar-chitecture vectorielle (mettant en œuvre

Page 11: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

28 La Météorologie - n° 55 - novembre 2006

un modèle de mémoire mixte) au termed’un appel d’offres remporté par le cons-tructeur japonais NEC.

En guise de conclusionLes codes des applications de prévisionnumérique du temps et de simulationclimatique sont très proches car ils trai-tent les mêmes équations de la physiqueet mettent en œuvre les mêmes algorith-mes, ils sont souvent communs et nedifférant que par la paramétrisation. Ilsse comporteront donc, sur un calcula-

teur donné, sensiblement de la mêmemanière, mais en imposant des contrain-tes différentes de temps de réponse et dedélais de restitution. Ces applicationssont à ce point exigeantes en termes depuissance de traitement, de vitesse decalcul et de stockage de l’information,qu’elles nécessitent les solutions tech-niques les plus avancées. La prévisionnumérique est, depuis le début, parmiles utilisateurs des plus gros calcula-teurs. Toutes les technologies, à mesurede leur apparition, ont été utilisées ou,au moins, expérimentées.

Peut-on pour autant s’autoriser à évoquerle calculateur ou au moins la technique laplus adaptée ? Il semblerait que non, pour

plusieurs raisons. Le marché des calcula-teurs scientifiques a déjà beaucoup mûri.Il est cependant encore tellement évolutif– la perpétuation de la loi de Moore, àelle seule, suffirait à en témoigner –qu’aujourd’hui encore, tout sembleouvert, sans même qu’il soit utile pourcela d’aller jusqu’à évoquer les recher-ches les plus futuristes (sur les ordina-teurs quantiques ou cellulaires, parexemple). Par ailleurs, les chercheurs, lesnumériciens et les informaticiens ont suchaque fois adapter la programmationdes modèles afin de tirer le maximumdes calculateurs qu’ils avaient à leurdisposition, et on peut leur faire confiancepour faire encore de bien des machines lecalculateur idéal… du moment

GlossaireMémoire partagée, mémoire répartie Dans le modèle à mémoire partagée, plusieursprocesseurs se partagent une même mémoire, lesystème d’exploitation du calculateur se char-geant de prévenir les risques de collision. Dans lemodèle à mémoire répartie (nommée aussimémoire distribuée), chaque processeur disposede sa mémoire en propre et accède aux informa-tions détenues par un autre processeur en luiadressant une requête adaptée.

Performance crête, performance soutenue On aborde la performance (ou la puissance)d’un calculateur essentiellement de deuxmanières. On parlera de puissance crête pour évoquerla vitesse de pointe d’un calculateur, celle quiserait accessible seulement à un code parfaitexploitant à plein la machine pendant untemps infini. Dans un tel schéma, on ne perdpas un cycle d’horloge et on évalue la puis-sance théorique maximale du calculateur, lavitesse que l’on ne pourra jamais dépasser nimême atteindre. On mesure ainsi la prouessetechnologique que constitue la réalisationd’une telle machine. On parlera de puissance soutenue quand onmesurera effectivement la vitesse d’exécutiond’une application réelle sur un calculateur, enconnaissant le nombre d’instructions exécutéeset en mesurant le temps nécessaire à cette exécu-tion. On mesure ainsi l’adéquation entre uneapplication et un calculateur, avec l’inconvénientd’obtenir, sur une même machine, autant de chif-fres que d’applications.

Microprogrammation Technique remontant aux années 1960 parlaquelle on décompose chacune des instruc-tions d’un calculateur en une séquence d’ins-tructions élémentaires simples (lesmicro-instructions). Les constructeurs peuventainsi directement câbler le jeu d’instructions surles plus gros systèmes (là où cet investissementpermettra d’augmenter la vitesse d’exécution)et se contenter de « microprogrammer » les

instructions les plus complexes sur les systèmesplus petits et moins coûteux (quand la vitessed’exécution n’est pas la préoccupation pre-mière). Il en résulte une unification des jeuxd’instructions sur toute la gamme des calcula-teurs proposés par un constructeur.

Calculateur séquentiel Ce nom vient de ce que, sur un tel calculateur,les instructions des programmes étaient exé-cutées en séquence, dans l’ordre de leur pro-grammation.

Processeurs vectoriels Processeurs permettant l’exécution simulta-née (ou quasi simultanée) d’une mêmeinstruction sur tout un ensemble de valeurs.Les données à traiter ainsi sont structurées entableaux unidimensionnels appelés vecteurs,dont tous les éléments subiront la même opé-ration. Une telle opération est réalisée parl’exécution d’une instruction unique qui portealors, non pas sur une donnée, mais sur toutesles données du vecteur. Le système est affinépar l’usage d’un masque permettant d’inhiberun traitement sur certains éléments. Dans uncalculateur séquentiel, on décode et on exé-cute l’instruction à effectuer sur les donnéesautant de fois qu’il y a d’éléments dans le vec-teur. Dans un calculateur vectoriel, on décodeet on exécute une seule instruction pour l’en-semble des données d’un vecteur.

Processeurs scalaires Ces processeurs sont ainsi appelés, par oppo-sition avec les processeurs vectoriels. Ils ontun fonctionnement général très proche decelui des calculateurs séquentiels, et ont géné-ralement intégré beaucoup des avancéestechnologiques venant du calcul vectorielcomme les dispositifs de pipe-line, par exem-ple. Ce sont des composants qu’on retrouvedans toute la gamme d’un même construc-teur, fabriqués en grande série pour atteindreun coût aussi peu élevé que possible.

Pipe-line Dans un tel dispositif, une instruction est consi-dérée comme complexe et décomposable enplusieurs instructions élémentaires dont ladurée n’est que d’un cycle de l’horloge centrale

du calculateur. On organise alors le travail à lachaîne des diverses instructions élémentairesconstituant une instruction complexe. Ainsi,par exemple, si l’addition d’une valeur à tousles éléments d’un vecteur est décomposée enquatre parties successives, le premier élémentdu vecteur sera traité par la première partie del’instruction d’addition, puis passera dans ladeuxième partie en même temps que ledeuxième élément du vecteur sera traité par lapremière, et ainsi de suite.

Message Passing Interface (MPI )MPI est une extension au langage de program-mation (Fortran, C, C++) pour échanger desdonnées entre processeurs. Cela permet deparalléliser une application sur une plate-forme à mémoire répartie.

OpenMPOpenMP est une extension au langage deprogrammation (Fortran, C, C++) pour exécu-ter un ensemble d’instructions en parallèle parplusieurs processeurs sur une mémoire parta-gée. Généralement il s’agit de distribuer lesitérations d’une boucle de calculs indépen-dants à plusieurs processeurs.

Symmetric Multiprocessor (SMP)Architecture se présentant sous la forme d’unensemble de processeurs accédant à unemême mémoire. On parle ainsi d’un nœudSMP. L’interconnexion de tels nœuds formeun cluster.

Prévision d’ensemble Technique consistant à faire tourner plusieursfois un ou plusieurs modèles de prévision surune même situation, en introduisant une per-turbation (légère modification des donnéesinitiales), différente à chaque simulation. Lesrésultats font ensuite l’objet de traitements sta-tistiques. Cette technique est considéréecomme la plus prometteuse pour les échéan-ces supérieures à 10 ou 15 jours, et elle estmise en œuvre par le CEPMMT depuis plu-sieurs années. Elle sert de base au calcul del’indice de confiance publié avec les prévi-sions de Météo-France.

Page 12: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

29La Météorologie - n° 55 - novembre 2006

Parallélisation avec MPI d’un modèle atmosphérique « spectral » à troncature triangulaire (comme le modèle Arpège)

Coiffier J., 2000 : Un demi-siècle de prévision numérique du temps, La Météorologie 8e série, 30, 11-31.

Stainforth D. A., T. Aina, C. Christensen, M. Collins, N. Faull, D. J. Frame, J. A. Kettleboruough, S. Knight, A. Martin, J. M. Murphy, C. Piani, D. Sexton, L. A. Smith, R. A. Sicer, A. J. Thorpe et M. R. Allen : Uncertainty in predictions of the climate response to rising levels of greenhouse gases. Nature, 7024, 403-406.

www.top500.org

www.climateprediction.net

www.es.jamstec.go.jp : site officiel du centre du calculateur Earth Simulator

www.ecmwf.int : site du CEPMMT.

www.cs.wisc.edu/~arch/www : architectures des calculateurs.

www.thocp.net : site The history of computing project, la jeune histoire des calculateurs, voir en particulier, l’index “hardware”.

hwww.tstt-scidac.org : le site Terascale Simulation Tools sur la manière dont les États-Unis abordent le futur proche.

www.irisa.fr/orap : site de l’Orap (Organisation associative du parallélisme), association de promotion du calcul haute performance (à laquelle Météo-France participe).

http//dsonline.computer.org/parallel : l’actualité dans le domaine des systèmes distribués.

Bibliographie

Do

ssie

rs -

Ann

exe

1

Dans ce type de modèle, une partie deséquations de la dynamique est résoluedans l’espace spectral, pour des raisonsd’efficacité, alors que le reste, dont lescalculs de la physique, est évalué dansl’espace point de grille (figure 4 pourune description rapide de ces espaces decalculs).

À chaque pas de temps, il faut doncpasser d’un espace à l’autre et revenir.Pour respecter les dépendances dans lescalculs, l’espace point de grille est dis-tribué par bande de latitudes avec desverticales complètes, alors que l’espacespectral est distribué selon le nombred’onde zonal, toujours avec des verti-cales complètes. Cela est schématisé surla figure 5. On peut faire deux observa-tions.

D’une part, pour équilibrer la chargeentre les tâches, les latitudes distribuéesaux processeurs ne sont pas toujourscomplètes (dans le but de répartir aumieux les points de grille entre les pro-cesseurs af in de mieux répartir lacharge de calcul) ; dans l’espace spec-tral, la distribution des nombres d’ondezonaux ne se fait pas de façon contiguë,mais en respectant une alternance afinque, au final, les processeurs effectuentdes calculs sur des nombres voisins decoefficients spectraux.

D’autre part, dans l’espace de Fourier,deux distributions de données doiventalternativement être utilisées :– soit en bandes de latitudes complètesavant une transformée de Fourier directe

J

j

11 1 L

Espace en points de grille

J latitudes, L longitudes et K niveaux verticaux (non représen-tés sur la figure).

C’est l’espace tel que nous le percevons, mais discré-tisé : la variable u prend la valeur u(l,j,k) au point degrille (l,j,k) sur la le longitude, la je latitude et le ke

niveau.

Transformée de Fourier directe Transformée de Fourier inverse

um(j,k)= � u(l,j,k)e -2i�m1L

L

l=1

1L u(l,j,k)= � um(j,k)e -2i�m

+M

m=-M

1L

Transformée de Legendre directe Transformée de Legendre inverse

um (k)= � w(j)um(j,k)P m(j)n n

J

j=1um (j,k)= � um(k)P m(j)

n n

M

n=m

J

j

10 m M

Espace de Fourier

J latitudes, M+1 nombres d’onde zonaux et K niveaux verticaux (non représentéssur la figure).

C’est un espace qui se présente horizontalement sous la forme de latitudesoù la variable u est décomposée spectralement sur une base de fonctions tri-gonométriques : um(j,k) est son coefficient de Fourier pour le me nombred’onde sur la je latitude et le ke niveau. Les nombres d’onde supérieurs à latroncature M ne sont pas représentés dans cet espace discrétisé.

M

n

0 m M

Espace spectral

M nombres d’onde totaux, M nombres d’onde zonaux et K niveaux verticaux.

C’est un espace qui se représente horizontalement sous la forme d’un triangle avec des coordonnées n et m vérifiant : 0 ≤ m ≤ n ≤ M où M est appelée troncature.um(k) est le coefficient spectral de la variable u pour le nombre d’ondetotal n et le nombre d’onde zonal m sur le ke niveau.

w(j) est le poids de Gauss pour la je latitude et P m(j) est le polynôme de Legendre n

de degré n et d’ordre m.

n

Figure 4 - Description sommaire des espaces de calcul dans le modèle global et spectral Arpège.

Page 13: 18 Météorologie, climatologie : à la recherche du ...documents.irevues.inist.fr/bitstream/handle/2042/20117/meteo_2006_55_18.pdfAujourd’hui, même si l’architecture vectorielle

30 La Météorologie - n° 55 - novembre 2006

Espace spectral

Espace en points de grille Espace de Fourier

Échange de messages

y y

x x

Transformée de Fourier

Échange de messages

(transposition)

y

x

y

x

y

x

Transformée de Legendre

P1 P2 P2

Parallélisation avec MPI d’un modèle utilisant un schéma d’intégration semi-lagrangien

Do

ssie

r -

Ann

exe

2

La prise en compte du schéma semi-lagrangien est un autre exemple intéres-sant de parallélisation : ce schémanécessite le calcul d’une rétro-trajec-toire (sur deux pas de temps) à partir dechaque point de grille et l’interpolationde diverses variables au point de départet au milieu de la trajectoire. Les calculssont faits dans l’espace point de grillequi est distribué entre les processeurspar domaines contigus. On comprendnaturellement que la rétro-trajectoire

(ou inverse) car cette transformationnécessite de connaître toutes les valeurssur une latitude complète (figure 4) ;– soit selon les nombres d’onde zonauxavant une transformée de Legendredirecte (ou inverse) car cette transfor-mation nécessite de connaître toutes lesvaleurs pour un nombre d’onde zonaldonné (figure 4).

Pour passer d’une distribution de don-nées à une autre, il faut procéder à unéchange général de messages entre pro-cesseurs grâce à MPI : la transpositionde données. Sur cet exemple, on comp-rend que la parallélisation n’est pas

facile à mettre en œuvre dans ce type deprogramme où les distributions de don-nées évoluent au cours de l’intégration.On s’attend aussi à ce que l’efficacité dela parallélisation baisse lorsque le nom-bre de processeurs sollicités augmente.Heureusement, lorsque la troncature (oula résolution) augmente aussi, le poidsdes calculs supplémentaires à réaliseraugmente tellement que le coût de ceséchanges de messages s’amenuise relati-vement à ces calculs et on peut alors aug-menter le nombre de processeurs pourune même efficacité.

peut parfaitement déborder du domainedévolu à un processeur et que ce pro-cesseur, pour mener à bien ses calculs,devra connaître la valeur de certainesvariables appartenant donc à d’autresprocesseurs. La solution qui a été rete-nue est de compléter le domaine réservéà chaque processeur par un « halo » depoints (en fait des verticales complètes)de largeur 2∆txVmax (plus quelquespoints de grille pour l’interpolation), où∆t est le pas de temps et Vmax le module

maximal du vent sur le globe. Ce halo estmis à jour avant l’application du schémaà l’aide d’échanges de messages. Pourlimiter le volume de données échangéesà cette occasion, une décomposition dedomaine qui redécoupe les bandes delatitudes a même été proposée pourdonner une forme plus compacte audomaine distribué à chaque processeur.Cette décomposition se révèle très inté-ressante lorsque le nombre de proces-seurs dépasse quelques dizaines.

Figure 5 - Pour un modèleatmosphérique

spectral et global,distribution

de données entre 3 processeurs (P1, P2 et P3) dans l’espace

points de grille et dans l’espace

spectral avec miseen évidence

des échanges de données entre

processeurs.

n