Rapport 2014 et demande pour 2015 Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121 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 Méso-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. Les utilisations scientifiques de Méso-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, HYMEX...). L INSU a labellisé les missions de Service : maintenance du code, assistance aux utilisateurs, veille scientifique.
RESUME DES OBJECTIFS ET REALISATIONS DU PROJET DE 2008 à 2013 : Les efforts de portage de Méso-NH sur les différentes plateformes massivement parallèles du GENCI et de PRACE depuis 2008 ont permis : Fin 2012 Début 2013 l'equipe de Support Méso-NH a été sélectionnée pour participer au Grand Challenge GENCI 2012 sur TURING. Le projet Méso-NH retenu «Impact du transport collectif sur la stratosphère tropicale» a consommé 11 milllions d'heures de calcul sur 16 000 cores de TURING en 2 mois et a généré 20 TO de données. Les résultats scientifiques obtenus sont en cours de publication. On en retrouvera une description dans la brochure que l'idris a publiée à cette occasion ici, p 10-11 : http://www.idris.fr/docs/docu/grandschallenges2012/grandschallengesidris2012.pdf Tous ces développements massivement parallèles sont maintenant intégrés dans la nouvelle version de MESONH, MASDEV410, qui est sortie en Septembre 2013, et sont donc utilisables par toute la communauté MésoNH sur l'ensemble des machines du GENCI, où plusieurs projets à plus d'1 millions d'heures ont été soumis. Fin 2013 Au travers soit des Preparatory Acces PRACE sur JUQUEEN (250KH) et HERMIT(50KH) soit de l'équivalent de PA de Argonne Lab. = Director's Decretationary Allocation sur MIRA (10 millions d'heures) la scalabilité de Méso-NH a été portée sur architecture IBM/BG/Q de MIRA à 524 288 processsus MPI * 4 threads OMP et donc jusqu à 2 097152 THREADS = 2 Millions de THREADS une performance maximum de 60 TFLOPS cf fig. 1
Figure 1 : Fin 2013 Méso-NH 60 TFLOPS sur 500 000 MPI rank * 1 OMP threads (blue) & 500 000 MPI rank * 4 OMP threads (red) = 2 Millions de THREADS
Réalisation 2014 : Architecture Classique : Pour cette année, les efforts se sont portés principalement sur des phases de développement et débuggage logiciel et le support aux utilisateurs de MesoNH sur d'autres projets GENCI, METEO, ECMWF et CALMIP ( totalisant plusieurs millions de calculs avec MesoNH ) et nous avons très peu utilisé les ressources en heures de calcul sur ce projet GENC1605 et CALMIP-P0121. La charge de support a été nettement augmentée depuis début 2014 car MesoNH est actuellement disponible sous 2 branches distinctes : - La version MNH-4-10-X, sous licence de recherche, version traditionnelle et - La version MNH-5-1-X, sous licence OpenSource CECIL, intégrant un nouveau schéma temporel, permettant un gain de presque un ordre de grandeur sur le pas de temps et les coûts de calcul, mais version encore en cours de test et développement. Les plateformes HPC évoluant en permanence, nous avons réalisé le portage de ces 2 versions sur différentes nouvelles plateformes, au cours de cette année 2014 : - BEAUFIX : nouveau supercalculateur BULLX de Meteo-France : 24 000 cores - CCA : le nouveau supercalculateur CRAY-XC30 de l'ecmwf, 80 000 cores - EOS : le nouveau supercalculateur BULLX de CALMIP : 12 000 cores Nous avons aussi participé à la soumission de 2 grands challenges avec MesoNH sur la nouvelle machine de CALMIP EOS ainsi que sur la nouvelle machine sur CINES OCCIGEN, mais nous n'avons été retenus sur aucun de ces grands challenges ( probablement car MesoNH avait deja été retenus en 2013 pour le Grand Challenge Turing ). Dans l'optique d'utilisation de MesoNH sur très grandes grilles en grid-nesting, nous avons aussi continué à encadrer une personne ( en CDD ) et développer les étapes de preprocessing de MesoNH. Cloud Computing : Dans le même temps nous avons aussi packagé des versions précompilées binaires de MesoNH pour le CLOUD ( une première pour MesoNH ), dans le cadre du projet DRIHM : http://www.drihm.eu/. Ces versions binaires ont ensuite été utilisées sur différentes plateformes de calcul en Europe ( au travers de grille de calcul GRID2 ou de projet TIER1 PRACE ) Architectures Hybrides, Accélérateurs Graphiques et Coprocesseurs Xeon Phi : Le plus gros de nos efforts a été consacré, et cela va continuer ces prochaines années, au portage de MesoNH sur les nouvelles architectures Hybrides, soit à base de GPU soit à base de co-processeur Xeon-PHI. En effet, ces 2 types d'architectures, installés en tête du TOP500 depuis 2 à 3 ans, semblent être la seule voie restant pour atteindre l'exaflops. - OpenACC sur GPU : Dans ce cadre, nous avons continué nos tests avec les directives de parallelisation OpenAcc avec le compilateur PGI. Ces développements ont été faits en local ( PC +
CLUSTER ) puis testés sur CURIE-hybride. A ce sujet, il faut noter 2 points importants : - Les nouvelles versions du compilateur 14.X supportent maintenant le nouveau standard OpenAcc2.0, ce qui facilite le portage du code MesoNH. - Mais malheureusement, ces nouvelles versions du compilateur 14.X sont aussi arrivées avec un grand nombre de bugs, et parmi ceux-ci certains rendant inutilisables les outils d'analyse de performance du code porté sur GPU. Sans ces outils, le portage performant d'un code comme MesoNH, qui fait environ 1 million de lignes de code, est quasiment impossible, puisque l'on travaille en aveugle. Nous avons identifié et soumis ces problèmes au support PGI et sommes en attente de correctifs. - Co-processeur Xeon-PHI : Sur notre cluster local (équipé récemment de 2 Xeon-PHI), nous avons aussi commencé à faire des tests de portage de MesoNH sur co-processeurs Xeon-PHI. Ne disposant pas de compilateur supportant OpenACC pour Xoen-PHI, nous avons commencé à faire des tests soit avec le compilateur Intel et le nouveau standard pour accélerateur OPENMP4.0, soit directement en mode natif. Pour les essais en mode offload/openmp4.0 (très similaire à OpenACC), malheureusement encore une fois, suite à des problèmes de compilateur ifort, celui-ci ne parallelisant pas la seule directive utilisable avec l'array syntaxe = WORKSHARE (problème remonté à Intel), nous nous sommes rabattus sur le mode natif. Dans ce mode natif, où tout le code est porté et s'exécute directement sur le Xeon- PHI, celui-ci est vu/utilisé comme un cluster de 64 cores et la parallelisation est faite via MPI. Bien qu'effectivement le portage soit assez facile, les performances sont loin d'être au rendez-vous : en première analyse, un facteur 10 à 20 par core en dessous par rapport à un processeur Ivry-bridge. Après analyse des performances et de la documentation, le problème est clairement imputable à la très mauvaise gestion de l'architecture mémoire, aussi bien au niveau hardware que software. En clair, sur cet accélérateur, si les données ne sont pas accédées de façon alignée sur le cache et par des vecteurs de courte longueur (8 ou 16 elements) connus du compilateur (et aidées d'une ribambelle de directives align), les performances sont catastrophiques. CONCLUSION : Ce projet est toujours indispensable à la tache de Service MesoNH Labelisé INSU, où l'utilisation scientifique de MesoNH au travers d'autres projets GENCI ou PRACE atteind maintenant plusieurs millions d'heures. Actuellement, et pour les années à venir, il entre plutôt dans une phase de portage logiciel sur nouvelles architectures Hybrides que sur une optimisation poussée à très grand nombre de processeurs.
Pour 2015 : Nous continuerons nos efforts, de portage de Méso-NH sur Cluster Hybride à l'aide du compilateur PGI et du nouveau standard OpenACC. Comme les parties GPU sont 10 fois plus performantes que le CPU, les coûts de communication doivent être masqués par du recouvrement entre calculs et communication pour tirer tout l'avantage de ces accélérateurs. Cela nous oblige donc à revoir toutes les routines faisant des communications ainsi que la surcouche de communication des échanges de messages, développée au dessus de MPI, dans Méso-NH. - sur les machines petaflopiques CURIE et OCCIGEN à nœuds fins, et la machine BG/Q Turing de l'idris ainsi que sur les autres machines TIER-1, nous conservons un volant d'heures suffisant pour permettre de continuer efficacement le support aux utilisateurs scientifiques GENCI et CALMIP de Méso-NH. Juan ESCOBAR pour le support MESO-NH