6. Performance et parallélisation
p. 160-161
Texte intégral
1La puissance de calcul est la clef de voûte de la modélisation du climat. Depuis l’origine, cette science a suivi les progrès de l’informatique et en a largement bénéficié. Symétriquement, en tant qu’utilisatrice des supercalculateurs les plus puissants au monde, elle a longtemps contribué à leur développement. Tirer parti de toutes les ressources de calcul disponibles est donc une préoccupation majeure qui transparaît dans le code informatique lui-même : choix du langage, performance des algorithmes et utilisation des techniques d’optimisation les mieux adaptées comme la vectorisation ou la parallélisation.
Technologies de calcul
2À partir des années 1980, la technologie « vectorielle » s’est rendue incontournable dans le monde du calcul de haute performance. La puissance d’un processeur vectoriel* provient de sa capacité à exécuter simultanément la même opération de calcul sur un grand nombre de données et les modèles climatiques ont su très tôt exploiter cette technologie avantageuse. Historiquement, les codes climatiques ont été développés et optimisés sur ces architectures de façon à en tirer la puissance maximale. La plupart des codes climatiques affichaient alors des taux de vectorisation* supérieurs à 99,5 %, en tirant de 40 à 50 % de la puissance crête des processeurs*. Les années 1990 ont quant à elles vu l’arrivée des grappes de calcul, composées d’une multitude de processeurs scalaires*, communiquant à travers un réseau d’interconnexions performant. Les calculateurs vectoriels ont également suivi cette tendance par agrégation des processeurs vectoriels à travers un réseau. L’apogée du vectoriel fût atteint dans les années 2000 avec le Earth Simulator*, situé au Japon et accessible à la communauté mondiale (cf. V-2), machine entièrement dédiée aux sciences de la Terre et du climat. L’optimisation du fonctionnement des modèles sur les architectures de ce type a suivi dès lors les paradigmes du calcul parallèle. Durant la même période, les processeurs scalaires du marché grand public, bien que moins performants, se sont petit à petit imposés dans le monde du calcul haute performance, bénéficiant d’un rapport coût/performance toujours plus avantageux. Les supercalculateurs scalaires ont donc fini par supplanter totalement le calcul vectoriel.
3L’enjeu actuel pour les codes de climat est de tirer efficacement parti des architectures scalaires massivement parallèles équipant la majorité des grands centres de calculs. Pour ce faire, le domaine de calcul est découpé en de nombreux sous-domaines auxquels on attribue un cœur de calcul* de la grappe. Les calculs s’effectuent donc simultanément et de manière indépendante. Néanmoins, pour mener à bien les calculs à l’intérieur d’un sous-domaine, il est souvent nécessaire d’avoir accès à des données situées dans les sous-domaines voisins. Comme les espaces mémoires sont disjoints, on procède par envoi de messages d’un processus à l’autre. Ces communications sont effectuées à l’aide de la bibliothèque standardisée MPI* (Message Passing Interface) et transitent à travers le réseau d’interconnexions rapides.
Programmation parallèle
4Adapter les codes de climat, initialement séquentiels, aux nouveaux paradigmes de programmation parallèle est une gageure qui a été relevée durant ces 20 dernières années. Elle a nécessité de transformer la structure des codes et des maillages appliqués aux sous-domaines. Le choix du découpage de domaine a été mené suivant des objectifs de performance visant à minimiser le poids des communications interprocessus par rapport au calcul. Pour un problème d’une taille donnée, réduire toujours plus les temps de restitution nécessite d’utiliser plus de cœurs de calcul et, par voie de conséquence, de réduire la taille du sous-domaine attribué à chacun. Le ratio communication/calcul augmente donc jusqu’à atteindre la limite de scalabilité*. Pour repousser cette limite, il est possible, par exemple, de transférer simultanément les données à la frontière d’un domaine pendant que s’effectuent les calculs à l’intérieur du domaine.
5Ces dernières années, une autre technologie de parallélisme connaît un regain d’intérêt. Il s’agit de la technologie à mémoire partagé OpenMP*, basée sur le traitement en parallèle des tâches. Ce standard apparu au milieu des années 1990 a été relégué au second plan, car à l’époque, les nœuds de calcul pouvant bénéficier de cette technologie n’étaient composés que de 2 à 4 cœurs de calcul. Aujourd’hui, les processeurs équipant les supercalculateurs embarquent plusieurs dizaines de cœurs. Pour traiter parallèlement chaque tâche, OpenPM distribue les itérations des boucles de calculs à chaque fil d’exécution. Ceux-ci accédant à l’ensemble de la mémoire, il n’est pas nécessaire d’envoyer des messages. On insère donc des directives de compilation au début des boucles. Cette technique, non intrusive, a été relativement aisée à mettre en œuvre dans les codes de climat. À ce jour, plusieurs codes combinent les deux approches MPI et OpenMP afin d’améliorer leur scalabilité. On parle alors de parallélisme mixte ou hybride.
Obstacles au parallélisme massif
6Les efforts consentis pour s’adapter aux architectures parallèles ont porté leurs fruits. Les codes sont aujourd’hui capables d’utiliser quelques milliers de cœurs sur une simulation, diminuant d’autant les temps de restitution et permettant d’explorer des résolutions de plus en plus fines. Néanmoins, avec l’augmentation rapide des ressources en nombre de cœurs, de nouveaux obstacles se dressent sur la voie du parallélisme massif.
7Les modèles discrétisés en points de grille sur un maillage régulier longitude/latitude se heurtent au problème du resserrement des mailles près des points singuliers aux pôles qui rendent le parallélisme moins efficace. Aujourd’hui de nombreuses communautés ont pris le parti de revoir complètement les maillages et les schémas numériques pour adopter des grilles plus uniformes ne présentant plus de points singuliers sur la sphère. Les modèles, dont une partie des calculs (en particulier la dynamique atmosphérique) est résolue dans l’espace spectral sur des grilles gaussiennes, doivent quant à eux faire face à l’explosion des coûts des routines de transformation de l’espace points de grille vers l’espace spectral. Des travaux sont donc menés pour accélérer ces opérations en les parallélisant.
8Avec l’augmentation de la résolution des maillages, notre communauté doit résoudre le problème corrélatif de l’augmentation du flux de données à stocker sur disque pour l’analyse ultérieure des résultats d’une simulation. Le premier point bloquant se rencontre dès l’accès au disque par les unités de calcul. Des librairies de lecture/écriture parallèle, des unités séparées des unités de calcul et dédiées à ces échanges, sont actuellement en développement. Les outils de transformation de format, et plus généralement de post-traitement des données, doivent eux aussi embarquer les solutions de lecture/écriture parallèles. Ils doivent permettre de réduire autant que possible les volumes stockés, en identifiant les zones où toute la précision spatiale et temporelle est nécessaire aux études préciblées, et en interpolant sur des maillages plus grossiers les données des zones de moindre intérêt.
9Signalons enfin que certains laboratoires testent l’exécution d’une partie des calculs de leur modèle sur des processeurs graphiques (GPU*) qui équipent de plus en plus de supercalculateurs. Leur utilisation pourrait aider à réduire encore les temps de restitutions des simulations climatiques.
Auteurs
Ingénieur HPC Climat, CERFACS, Toulouse.
eric.maisonnave@cerfacs.fr
Informatique, calcul scientifique, Ingénieur CEA, LSCE, Gif-sur-Yvette.
yann.meurdesoif@lsce.ipsl.fr
Le texte seul est utilisable sous licence Licence OpenEdition Books. Les autres éléments (illustrations, fichiers annexes importés) sont « Tous droits réservés », sauf mention contraire.
L'archéologie à découvert
Hommes, objets, espaces et temporalités
Sophie A. de Beaune et Henri-Paul Francfort (dir.)
2012