Portage de Méso-NH sur Machines Massivement Parallèles
du GENCI et sur les machines PETAFLOPIQUE de PRACE .
Rappel sur Méso-NH : Modélisation à moyenne échelle de l’atmosphère
En 1993, des équipes de modélisation atmosphérique de méso-échelle du CNRM (Météo-France) et du Laboratoire
d’Aérologie (UMR 5560) se sont regroupées au sein du projet MESO-NH visant à développer un nouveau code de
modélisation météorologique intégrant les avancées scientifiques et techniques les plus récentes dans le domaine. Dès
1998, le projet a atteint ses objectifs initiaux et a débouché sur un outil de recherche performant du niveau des meilleurs
codes de la communauté internationale.
Il est aujourd’hui utilisé par une large communauté (atmosphériciens, hydrologues,...) de plus d’une centaine de
chercheurs rattachés à 37 équipes dans 8 pays. Ce code :
intègre un système d’équations non-hydrostatiques, permettant de traiter avec le même outil une vaste gamme
de phénomènes atmosphériques allant de la méso-échelle alpha (quelques milliers de km) jusqu’à l’échelle des
tourbillons (quelques m)
est doté d’un jeu complet de paramétrisations physiques, de divers niveaux de complexité et adaptées aux
différentes échelles considérées
dispose de capacités d’auto-imbrication lui permettant de relever de nouveaux défis (prévisibilité des systèmes
orageux par exemple)
est couplé avec des modules de chimie gazeuse, aqueuse et des aérosols qui offrent un cadre dynamique
privilégié pour toute étude numérique de physico-chimie atmosphérique
est doté d’opérateurs d’observation qui permettent de comparer directement les sorties du modèle avec des
observations satellite ou radar.
Les utilisations scientifiques de MESO-NH sont extrêmement variées. Le modèle est largement utilisé sur les
thématiques des grands projets nationaux et internationaux (TOGACOARE, FASTEX, ACE II, TRACAS, PICO3,
ESCOMPTE, ESQUIF, TRACE P, PEM, MAP, TROCCINOX, AMMA, MEDEX,...).
L’INSU a labellisé les missions de Service : maintenance du code, assistance aux utilisateurs, veille scientifique.
RESUME DES OBJECTIFS ET REALISATIONS DU PROJET EN 2008-2010 :
Rappel Courant 2008 :
Les efforts de développement/portage de Méso-NH sur les nouvelles plateformes massivement parallèles
du GENCI ont permis de réaliser les premières simulations Idéalisées de Méso-NH sur des grilles allant jusqu'à
4096x4096x128 points = 2 milliards de points de grilles et plus de 8000 processeurs, avec pour la première fois une
performance soutenue de plus de 1 Téraflops pour Méso-NH .
Pour réaliser les premières simulations de cas réel à l'échelle kilométrique sur de grandes grilles, en vue d'utiliser
les premières machines P etaflopique s Européennes, des efforts supplémentaires sont nécessaires sur la
parallélisation et l'optimisation de parties de code de Méso-NH qui pour des configurations plus petites ne posaient pas
de problème .
Rappel Courant 2009 :
certains points durs ont été levés ( au moins partiellement ) :
la parallélisation des Entrées/Sorties
la génération de grille de surface 2D au delà de 2000x2000 points
la génération de grille initiale 3D au delà de 512x256x70 points
Rappel fin d'année 2009 :
Ceci a permis de réaliser les premiers runs « scientifiquement réalistes» sur une grille de :
3072x1536x64 points
à 4KM de résolution
avec résolution explicite des nuages ( CRM, pas de paramétrisation )
sur 2048 processeurs du JADE
La continuité du projet en 2010 a p ermis :
d'étendre la scalabilité de Méso-NH jusqu'à 130 000 processeurs et 4.5 Téraflops sur la première machine
PETAFLOPIQUE IBM-BG/P JUGENE de PRACE
de « consolider » ces développements pour les machines massivement parallèles et de les mettre à disposition de la
communauté scientifique de chercheurs calculant sur les différents centres de GENCI .
De paralléliser (partiellement) la première d'étape de génération de grille jusqu'à 4000x4000 pts .
les premiers benchs , avec code à adressage 64bit =integer*8 , à échelle de 1KM sur grille 8000x4000x128 pts
Les premiers tests de portage de MESO-NH sur plateforme Hybride avec compilateur PGI Fortran CUDA &
directives ACC .
Comme à chaque montée en résolution, de nouveaux points durs apparaissent ou restent à résoudre
et feront partie de la suite du projet en 2011 :
la non scalabilité/portabilité des librairies MPI elles-mêmes sur les différentes plateformes !
Le passage de l'ensemble du code en adressage 64bits= « integer*8 » pour permettre l'utilisation
en cas réel de grille à 1KM de résolution en 8000x4000x128 pts
la scalabilité du solveur de pression sur la nouvelle machine PRACE BULLX « Curie »,multi-grille ou autre ...
les premiers runs sur nouvelle architecture hybride Fermi ( si disponible ).
le post-traitement graphique des fichiers de sortie
I. Parallélisation du Solveur de Pression de MESONH en 3 Dimensions .
Rappel : développements réalisés en 2008
La version standard de Méso-NH est parallélisée par décomposition de domaine en 2 dimensions .
Ceci limite, à cause des FFT utilisées dans le solveur de pression, le nombre de processeurs maximum utilisable à la
plus petite dimension en X et Y, donc typiquement pour une grille 512x512x128 à 512 processeurs .
Une décomposition de domaine en 3 dimensions de ce solveur a été réalisée et optimisée .
Elle permet maintenant en théorie pour une grille 512x512x128 d'utiliser 512x128 = 65536 processeurs !
Fin 2008, le portage technique de Méso-NH sur machines Massivement Parallèles avait montré
la scalabilité de celui-ci jusqu 'à 8000 processeurs, aussi bien sur JADE ( CINES/SGI-ICE 12000 processeurs Xeon )
que sur BABEL ( IBM Blueue/P 40000 processeurs Power-PC ) .
Rappel Développements réalisés en 2009:
Des tests complémentaires ont été effectués sur 16K(=16384) et 32K(=32768) processeurs sur BABEL en début 2009 .
La figure suivante montre une bonne scalabilité sur BABEL jusqu'à 16K processeurs, avec aussi le premier
Téraflops soutenu pour Méso-NH sur BleueGene/P .
Deux runs tentés à 32K processeurs ont tous fini en CPU-Limit, indiquant un problème de scalabilité pour cette
configuration. Une analyse plus fine au niveau de chaque transposition de la FFT indique que le problème semble être
dû à un problème de déséquilibrage de charge et d'algorithme de communication plutôt qu'à une saturation du réseau de
BABEL. Fin 2009 la scalabilité maximum démontrée de MESONH était de 16000 cores .
Développements réalisés en 2010 :
Parallèlement aux demandes de ressources déposées au GENCI, le projet de portage du code MESONH sur machine
massivement parallèle a bénéficié au début de l'année 2010 de ressources supplémentaires :
D'une part avec l'arrivée de la nouvelle plateforme de calcul du CALMIP (inauguré par Mme Catherine Rivière
présidente du GENCI) nommée HYPERION, un cluster SGI-ICE de 2800 coeurs Néhalem nouvelle génération
avec double réseau infini-bande.
http://www.calmip.cict.fr/spip/spip.php?article302
Pendant la phase d'acceptation de cette nouvelle plateforme, le projet MESONH a pu disposer de façon
exceptionnelle de l'intégralité de la machine. Les benchmarks réalisés sur HYPERION ont montré un gain de
performance spectaculaire d'un facteur 4 à nombre de coeurs égal par rapport à la machine JADE(1) du
CINES, celle-ci étant de la génération précédente de cluster SGI-ICE à base de Xeon Hamperton( cf. figure jointe).
Ces résultats s'expliquent, alors que la fréquence des processeurs n'a pas évolué, grâce à l'excellente performance
de l'architecture et de la bande passante mémoire des processeurs Néhalem. Ces performances on été
confirmées depuis sur la nouvelle tranche de JADE2 du CINES avec la même architecture jusqu'à 10240
cores.
D'autre part, le projet de portage de MESONH a aussi bénéficié dans ce même laps de temps (jusqu'à fin mai)
d'1 million d'heures de calcul sur la machine TIER-0 PETAFLOPIQUE JUGENE, dans le cadre du projet PRACE,
afin d'essayer d'étendre la scalabilité de code au-delà de 16 000 processeurs.
http://www.prace-project.eu/news/prace-granted-over-4-3-million-core-hours-to-prace-prototype-systems
C'est maintenant chose faite, comme le montrent aussi les résultats ci-joints avec des tests jusqu'à
131072 cores et une puissance soutenue de 4.3 TERAFLOPS , et communiqué INSU :
http://www.insu.cnrs.fr/a3534,130-000-coeurs-modelisation-meteorologique-sans-couture-avec-meso-nh.html
Pour arriver à ce résultat, des outils très puissants d'analyse de performance comme «scalasca » et de débuggage
massivement parallèle comme « coreprocessor » on été utilisés .
Des runs de 4096 à 32768 processeurs avec Scalasca on permis de mettre en évidence les goulots d'étranglement
dans les communications lors des phases d'initialisation ou de transposition des FFT . L'algorithme de transposition a
été entièrement réécrit pour permettre un mapping optimum des processeurs et données permettant d'utiliser les
opérations collectives de communication MPI_ALLTOALLV sur des plans (très optimisées sur l'architecture IBM
BG/P) .
dans la version précédente lors des phases de transposition les données « traversaient de part en part » toute la
machine, d'où la limitation à 16 000 processeurs constatée jusqu'à présent .
Pendant ce portage le code a aussi probablement souffert de problèmes hardware et de dead-lock lors des
premiers runs à 130 000 cores qui ont consommé en 1 run 700 000 heures de calcul sur les 1 million allouées .
Après un mois de réflexion, de lecture de documentation et d'analyse post-mortem des 130 000 core-dump
avec l'outil « coreprocessor » de la BG/P, le coupable probable du dead-lock a été identifié comme étant les
quelques routines MPI_SEND qui subsistaient encore dans quelques routines « mineures » d'entrée/sortie .
Une fois ces routines remplacées par des MPI_BSEND le code a enfin pu tourner sur une grille
2048x2048x128 points sur 131072 cores . Un test a aussi été fait sur 262144 cores mais dans cette
configuration extreme, la grille locale résultant de la décomposition de domaine était alors trop petite pour
permettre les calculs dans certaines parties du code ( moins de 1 pt de grille par core dans certaines phases ) .
Le speed-up obtenu sur cette machine, bien que correct, est limité par le solveur de pression qui utilise les FFT 3D,
qui représentent environ 50% du temps total de calcul sur toutes les simulations.
Afin de quantifier cette perte de scalabilité nous avons tracé les temps de communication passés dans les
transpositions ( Cf figure). Les comparaisons sur JADE des trois benchs faits sur taille de grille horizontale de
1024² , 2048² et 4096² permettent de modéliser ces temps de communications :
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !