Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d'optimisation du code communautaire roms, en considérant 2 voies principales: 1/ le multiparallélisme hybride employant Openmp et mpi;








télécharger 40.53 Kb.
titreRésumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d'optimisation du code communautaire roms, en considérant 2 voies principales: 1/ le multiparallélisme hybride employant Openmp et mpi;
date de publication12.04.2017
taille40.53 Kb.
typeRésumé
p.21-bal.com > loi > Résumé

Projet Spirales 2011

Projet lié au calcul intensif et modélisation: étude de faisabilité ou développement d'une application



Optimisation du code communautaire ROMS



PARTIE 2
Optimisation de l’interfaçage ROMS-PISCES




Acteurs

Patrick Marchesiello, Chercheur UMR 65 Ecola IRD TOULOUSE (Patrick.Marchesiello@ird.fr)

Laurent Debreu, Chercheur LJK/IMAG INRIA GRENOBLE (Laurent.Debreu@imag.fr)

Clive Canape, Chargé de mission IRD/DSI MONTPELLIER (clive.canape@mpl.ird.fr)

Olivier Aumont, Chercheur UMR 7617 IRD BREST (olivier.aumont@ird.fr)

Christophe Menkes, Chercheur LOCEAN IRD NOUMEA (menkes@noumea.ird.fr)

Gildas Cambon, IE UMR 65 IRD TOULOUSE (gildas.cambon@legos.obs-mip.fr)

Janvier 2011


Projet Spirales 2011 1

Projet lié au calcul intensif et modélisation: étude de faisabilité ou développement d'une application 1

Optimisation du code communautaire ROMS 1

Résumé 3

1.Présentation du code ROMS 3

2. Résultats de la première année : Implémentation de la parallélisation hybride OpenMP / MPI 4

3. Optimisation du module biogéochimique PISCES 7

4. Planification et ressources humaines 10

Bibliographie 11

Résumé


Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d'optimisation du code communautaire ROMS, en considérant 2 voies principales: 1/ le multiparallélisme hybride employant OpenMP et MPI ; 2/ optimisation du module biogéochimique PISCES. La première piste a été explorée avec des résultats significatifs sur les gains en terme de coût de calcul, particulièrement appréciable pour les configurations côtières. La deuxième partie a été prévu dans une deuxième année de projet : il s’agit d’optimiser la programmation du module PISCES, notamment dans l'optique de diminuer le gaspillage d'espace de la mémoire alloué par les tableaux redondants de ce module.

  1. Présentation du code ROMS



En 2008, puis en 2010, les principaux développeurs français en modélisation océanique issus des instituts concernés (INRIA, IRD, CNRS, Ifremer) et rassemblés aujourd’hui sous le nom de groupe COMODO, ont participé aux premières réunions nationales (Coordinateur : L. Debreu, Autrans, Octobre 2008 ; Février 2010). Un objectif de cette réunion était de fédérer nos efforts et viser un projet commun sur la base d'une plateforme de modélisation. Mais ce qui en est ressorti est le rôle central dans la communauté nationale qu'a pris le modèle régional ROMS dont la branche française est développée à l'IRD (en collaboration avec l'INRIA), et basée au LEGOS. Notre stratégie encourage l'aspect "logiciel libre" du modèle, c'est-à-dire qu'un gros effort est fait pour maintenir une version communautaire facile d'accès et d'utilisation qui se nourrit de l'apport de chacun pour mieux servir en retour l'ensemble de la communauté (http://roms.mpl.ird.fr/). Cette stratégie nous amène aujourd'hui à une communauté de plus de 1000 utilisateurs répartis dans le monde dont une grande partie dans les pays du sud (près de 50% : 20% en Asie, 12% en Amérique latine, 5% en Afrique, 1% au Moyen Orient). C'est donc aussi une approche très compatible également avec nos missions de recherche pour le développement.
Le coeur dynamique du code repose sur des schémas de 3ème ordre, peu dispersifs et peu dissipatifs, permettant d'améliorer la résolution effective du modèle à un coût modéré (Shchepetkin & McWilliams, 1998, 2003, 2005). Il est utilisé à l’IRD dans une version permettant le raffinement de maillage par emboitement de grilles ou 2-way nesting (Penven et al, 2006 ; Debreu et al, 2011). L'intégration temporelle des équations primitives est de type "time-splitting" imposée par la condition de surface libre dans laquelle un pas de temps court est employé pour résoudre les équations de surface libres et de moment intégrées sur la verticale (mode barotrope) en respectant l'équation de continuité tridimensionnelle. Un pas de temps long est employé pour la partie barocline (traceurs et vitesses baroclines). La discrétisation du mode interne barocline emploie un schéma de type prédicteur-correcteur (Leap-Frog + Adams-Molton) autorisant un pas de temps large. Les performances de sa discrétisation utilisant des schémas peu dispersifs et peu diffusifs font de ROMS un modèle de référence.
Le modèle de programmation parallèle employé dans le code est un parallélisme explicite, moyennant le partitionnement 2D du domaine (ou ‘’tiling’’). Ce modèle de parallélisme est efficace en mémoire distribuée, comme en mémoire partagée. Les tests réalisés à Nouméa (dans le cadre de SPIRALES) en employant une configuration régionale de ROMS sur une grappe de 5 stations multiprocesseurs Opteron (20 Cpus) reliées par InfiniBand ont montré une accélération du code proche de la pente idéale1. Les tests réalisés au Earth-Simulator sur 512 processeurs (Source Patrice Klein, UMR 6523) ont montré que les performances atteintes pour une résolution de 3000*2000*200 ont été les suivantes: taux de vectorisation: 98.7%; taux de parallélisation de 51,6%, ce qui fait du code ROMS l'un des codes les plus efficaces sur machines vectorielles et scalaires massivement parallèles.
Ces dernières années, la version communautaire a fait l’objet de nouvelles innovations, au travers d’un partenariat fructueux entre l’INRIA et l’IRD. La librairie AGRIF (Adaptive Grid Refinement in Fortran, Debreu 2000 et 2003) est devenue une nouvelle fonctionnalité du code (Penven et al, 2006 ; Debreu et al, 2011) permettant de concevoir sereinement la modélisation des écoulements côtiers à une échelle appropriée (de l'ordre de 1 km à la côte et 10 km au large) en recourant aux fonctions de zoom avec interactions « 2-way ». Là également, la parallélisation de ROMS combiné avec le package de raffinement de maillage AGRIF est efficace.
Autour du code, les efforts de l’IRD ont également porté sur le développement, la distribution libre (http://roms.mpl.ird.fr/) et la maintenance d’une toolbox Matlab facilitant la préparation des champs d’entrée et le post-traitement (visualisation) des sorties du code (Penven et al, 2008). La communauté des utilisateurs et des développeurs participe à l’enrichissement de cette toolbox.

2. Résultats de la première année : Implémentation de la parallélisation hybride OpenMP / MPI



Ce travail a été effectué par un prestataire (Démange Consulting) avec un suivi régulier de notre équipe et du coordinateur SPIRALES (Clive Canape). La documentation technique de ce travail est ajoutée à notre dossier.
Contrairement à la plupart des modèles océaniques, le modèle ROMS a la capacité de partitionner son domaine de calcul en un nombre de sous domaines plus grand que le nombre de processeurs utilisés pour le calcul. Un avantage de cette fonctionnalité est d’optimiser l’utilisation de la mémoire cache. Les tableaux de travail associés à chaque sous domaine sont de taille plus petite et doivent permettre que la majorité des calculs s’effectue en utilisant uniquement des données présentes dans la mémoire cache. Un autre avantage est de permettre un non calcul des points de terre. Or, le sous-partitionnement n’était jusqu’ici fonctionnelle qu’en mode de parallélisation OpenMP, non MPI, ce qui exclue l’utilisation de cette fonctionnalité sur les clusters de PC. L’objectif principal était donc d’étendre la fonctionnalité à MPI.
La difficulté de ce type d’implémentation sur calculateurs à mémoire distribuée réside dans la mise en œuvre des communications. Il est clair que la situation est plus complexe que lorsqu’un processeur MPI ne gère qu’un unique sous domaine. Dans le cas de plusieurs sous domaines, il s’avère nécessaire de détecter si un sous domaine a besoin de communiquer des données avec le(s) processeur(s) voisin(s). C’est cette solution qui a été mis en place dans les procédures d’échanges de données de ROMS (MessPass2D.F et MessPass3D.F). Les procédures d’échanges de données prennent maintenant en compte non seulement l’identité du domaine MPI mais également l’identité du sous domaine. A l’aide de ces deux informations, elles doivent déterminer si il est nécessaire d’échanger des données ou non avec les différents voisins.
Le fait que les sous domaines locaux soient traités ou non par des processus OpenMP ne changent a priori rien au problème original et la solution proposée permet à présent une mise en place de parallélisation hybride OpenMP/MPI.
De plus, des optimisations ont été implémentées. La première, par l’intermédiaire d’une renumérotation des sous-domaines, permet d’éviter que les communications entraînent des blocages. On adapte ainsi l’ordre d’intégration des sous-domaines (dans compute_tile_bounds.h) de façon à ce que les sous-domaines de part et d’autre d’une frontière MPI soient intégrés en même temps.




Figure 1: Ordre d’intégration des sous domaines : les sous domaines en regard de part et d’autre des frontières MPI sont intégrés en même temps. Les numéros correspondent aux valeurs de itag,jtag pour chaque sous domaine. Les flèches indiquent le sens d’intégration des sous-domaines pour chaque domaine MPI



La deuxième optimisation s’est avérée crucial. Elle consiste à imposer que tous les échanges soient fait par un seul thread à la fois (en initialisant la routine MPI_Init_Thread avec le niveau MPI_THREAD_SERIALIZED plutôt que MPI_THREAD_MULTIPLE comme il semblait naturel de le faire au départ).




Figure 2 : temps séquentiel divisé par le temps parallèle pour les tests en parallélisation MPI et hybride MPI/OpenMP. Noter que pour la courbe HYBRIDE, lorsque le nombre de cœurs est inférieur ou égal à huit (le nombre de cœurs par nœud), ceci correspond à une simulation OPENMP.



Les tests ont été effectuées sur une machine SGI/Altix, équipé de 16 nœuds comportant chacun un biquadcore Intel i7 Nehalem (soit 8 cœurs accessibles en mémoire partagée par nœud). Le compilateur utilisé est gfortran dans la version 4.4.3 et la librairie MPI native SGI (MPT version 1.26). Notons que lors de l’utilisation de cette librairie, l’exécutable de ROMS doit être lié à la compilation à la librairie threadsafe libmpi_mt au lieu de libmpi. Les tests sont effectués sur la configuration BASIN de ROMS avec un nombre de points égal à Lm=180, Mm=150, N=30. Notez que sur des configurations relativement petites comme celles-ci, l’augmentation du nombre de cœur utilisé est rapidement pénalisée par le coût des communications MPI.
Ces résultats sont encourageants et conduisent toujours à des performances meilleures que les tests en MPI total. D’une manière générale, le gain obtenu sur cette configuration avoisine les 10%.
En outre, cette nouvelle fonctionnalité permet une flexibilité accrue et notamment la possibilité d’un découpage plus fin dans lequel certains sous-domaines (sur terre en particulier) peuvent être soustrait du calcul.

3. Optimisation du module biogéochimique PISCES



Plusieurs projets de l’IRD ont pour but de modéliser la réponse de l’écosystème côtier et océanique à la circulation régionale. Les premiers projets (ceux de l’UR097) ont mis à profit les développements réalisés sur ROMS pour les systèmes d’upwelling (Gruber et al., 2006). Les systèmes d’upwelling (Californie, Afrique de l’Ouest, Pérou/Chili, Afrique du Sud) représentent une part importante de la production biologique globale et sont des zones de pêches stratégiques pour de nombreux pays du Sud. Des modèles relativement simples permettent de représenter la chaîne trophique de ces systèmes caractérisée par une forte abondance mais une faible diversité. Cependant, dès lors que l’on s’éloigne de la zone très côtière (100km de la côte) de ces régions fertiles ou que l’on s’intéresse à des écosystèmes plus diversifiés, comme ceux que l’on trouve dans la zone tropicale, les modèles simples ne suffisent plus. Par exemple, dans le projet ZoNéCo « Thon & Environnement » financé par le territoire calédonien, l’UR65 (UMR LEGOS, PI : P. Marchesiello) a du utiliser un modèle biogéochimique complexe nommé PISCES.
PISCES (Aumont et al., 2003) est un modèle biogéochimique qui simule la productivité marine et décrit les cycles biogéochimiques du carbone et des nutriments principaux (P, N, Si, Fe). PISCES a été développé pour une large gamme d’échelles spatiales et temporelles sur des configurations globales de l’océan. Il est donc adapté à une utilisation régionale variée où le travail de calibration à chaque nouvelle application doit être minimal. PISCES fut d’abord implémenté dans NEMO et développé pour des configurations globales. Il est utilisé aujourd’hui pour toutes les simulations de type climatique effectuées en France. En 2004 à Brest, il fut implémenté dans ROMS (par O. Aumont et P. Marchesiello) pour des applications régionales, mais il s’agit d’une version beta qui n’est pas optimisée du point de vue des performances informatiques. Néanmoins, cette version est utilisée dans des projets scientifiques qui ont conduit à des publications : les projets ZoNéCo sur la région de Nouvelle Calédonie (Marchesiello et al., 2009) ; les applications actuelles du LOCEAN sur la côte péruvienne (Albert et al., 2010)2. Les résultats montrent que le modèle est capable de simuler le fonctionnement biologique de zones océaniques très diverses. Par contre, malgré quelques optimisations, les performances informatiques restes insuffisantes.
Lors de l’implémentation de la version beta de ROMS-PISCES, la structure du modèle NEMO a été conservée, notamment le nom des variables dynamiques et statiques et la discrétisation verticales (la direction verticale est inversée dans NEMO). Ainsi des routines de communications entre la structure ROMS et NEMO ont été ajoutées pour convertir en entrée et en sortie de PISCES les tableaux de ROMS et NEMO. Cette méthode rapide d’implémentation équivaut à un doublement des tableaux et donc de la place mémoire allouée à PISCES. Sachant que PISCES gère 24 traceurs, cela nécessite de déclarer autant de tableaux à quatre dimensions (3 spatiales et une temporelle), et donne des configurations qui sont très lourdes, peu compatibles avec l’esprit du développement de ROMS, tourné vers les performances et l’adaptation aux moyens du Sud. Cette approche est particulièrement pénalisante pour les applications parallèles en mémoire partagée avec OpenMP (mode souvent privilégié au sud sur les PC bénéficiant des nouveaux processeurs multicoeurs) car toutes les variables sont alors stockées dans des tableaux globaux. La mémoire vive requise par la parallélisation MPI est d’autant plus faible que le nombre de processeurs utilisés est important mais le problème n’est pas résolu pour autant. D’autre part, la résolution du problème doit se faire dans le respect du caractère modulaire de PISCES dans ROMS, de manière à que les réactualisations de PISCES par O. Aumont puissent être aisément implémentées dans ROMS. Les modifications devront donc être, autant que possible, à l’interface des deux applications (ROMS et PISCES) plutôt que dans les routines spécifiques de PISCES. Une coordination avec d’autres acteurs nationaux (notamment le SHOM qui prévoit l’implémentation de PISCES dans HYCOM) et avec O. Aumont est donc nécessaire.



Un autre problème est lié à la parallélisation des routines PISCES qui n’a pas tout à fait suivi les conventions imposées dans ROMS. Par exemple, en parallélisation OpenMP, ROMS prévoit que les tableaux privés (dans chaque thread) soient systématiquement mis en argument et correspondent à des tableaux temporaires, déclarés avec une place mémoire spécifiquement allouée. Si cette règle n’est pas vérifiée (comme c’est le cas dans ROMS-PISCES_beta), les conditions de faux partage (false sharing) entre les données des différents threads sont permises, et peuvent entraîner des erreurs aléatoires (mais a priori peu fréquentes). Un dernier type de problème est celui de l’utilisation systématique de fonctions intrinsèques Fortran coûteuses (type fonction exponentielle), qui pourraient être approximées par des fonctions moins coûteuses, sans réelle perte pour la qualité des résultats.
Ainsi, le passage d’une version beta à une version opérationnelle de ROMS-PISCES nécessite un travail d’optimisation. Ce travail est important pour les projets de l’IRD car il dotera nos partenaires du couplage de deux outils puissants et reconnus : ROMS et PISCES.

4. Planification et ressources humaines




OPTIMISATION DU MODULE BIOGEOCHIMIQUE PISCES

Resp. P. Marchesiello / G. Cambon / O. Aumont / C. Canape


AN2, Sem.1

AN2, Sem.2




Missions Toulouse-Brest-Grenoble pour coordination des developpements de PISCES et définition des conventions de modularité

  • Gestion de l’interface ROMS-PISCES pour optimiser l’utilisation de la mémoire

  • Correction de la parallélsation


(intervention d’un groupe d’experts multiparallelisme






Bibliographie



Albert, A., V. Echevin, M. Lévy, and O. Aumont, 2010 : Impact of nearshore wind stress curl on coastal circulation and primary productivity in the Peru upwelling system, J. Geophys. Res., 115, C12033.

Aumont, O., E. Maier-Reimer, S. Blain and P. Pondaven, 2003: An ecosystem model of the global ocean including Fe, Si, P co-limitations, Global Biogeochem. Cycles, 17, doi:10.1029/2001GB001745

Debreu, L., 2000. Raffinement adaptatif de maillage et méthodes de zoom—application aux modèles d’océan, 2000, Ph.D. thesis, Université Joseph Fourier, Grenoble.

Debreu, L., Vouland, C., 2003. AGRIF: Adaptive Grid Refinement in Fortran. [Available online http://www-lmc.imag.fr/IDOPT/AGRIF/index.html].

Debreu L., P. Marchesiello, P. Penven and G. Cambon, 2011 : Two-way embedding algotithms for a split-explicit free surface model. Ocean Modelling, submitted.

Gruber, N., H. Frenzel, S.C. Doney, P. Marchesiello, J. C. McWilliams, J. R. Moisan, J. Oram, G.-K., Plattner, and K.D. Stolzenbach, 2006: Simulation of phytoplankton ecosystem dynamics in the California Current System. Deep-Sea Research I, 53, 1483-1516.

Marchesiello P., S. Nicol, V. Faure, X. Couvelard, C. Menkes, K. Briand, R. LeBorgne, J. Lefèvre, F. Bouyé, P. Lehodey, I. Senina, 2009b: Impact des conditions écologiques sur la distribution des ressources thonières : une étude intégrée d’observation/modélisation dans la ZEE de Nouvelle-Calédonie. Rapport ZoNeCo 2009, 45 pp.

Marchesiello P. L. Debreu and X. Couvelard, 2009: Spurious diapycnal mixing in terrain-following coordinate models: the problem and a solution. Ocean Modelling, 26, 156-169.

Marchesiello, P., J.C. McWilliams, and A. Shchepetkin, 2001: Open boundary conditions for long-term integration of regional oceanic models. Ocean Modelling, 3, 1-20.

Penven P., L. Debreu, P. Marchesiello, and J.C. McWilliams, 2006: Evaluation and application of the ROMS 1way embedding procedure to the central california upwelling system. Ocean Modelling, 12, 157-187.

Penven P., P. Marchesiello, L. Debreu, and J. Lefevre, 2008: Software tools for pre- and post-processing of oceanic regional simulations. Environ. Model. Softw., 23, 660-662.

Penven P., L. Debreu, P. Marchesiello, and J.C. McWilliams, 2006: Application of the ROMS embedding procedure in the California Current Upwelling System. Ocean Modelling, in press.

Shchepetkin, A., and J.C. McWilliams, 1998: Quasi-monotone advection schemes based on explicit locally adaptive dissipation. Monthly Weather Rev. 126, 1541-1580.

Shchepetkin, A.F., and J.C. McWilliams, 2003: A method for computing horizontal pressure-gradient force in an ocean model with a non-aligned vertical coordinate. J. Geophys. Res. 108, 35.1-35.34.

Shchepetkin, A.F., and J.C. McWilliams, 2005: The Regional Oceanic Modeling System: A split-explicit, free-surface, topography-following-coordinate ocean model. Ocean Modelling 9, 347-40

1 ‘’Upgrade du réseau de communication du cluster de Nouméa : Retour d’expérience’’, Note Technique DSI, IRD Nouméa 2008

2 En 2010, une modélisatrice des interactions physiques-biogéochimie (Marine Herrmann) a été recruté (IRD/LEGOS) pour travailler sur le nouveau chantier du Vietnam (coordination : Sylvain Ouillon). Elle utilisera également l’outil ROMS-PISCES.





similaire:

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\Projet educatif notre projet est basé sur la confiance, le dialogue,...

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\Programme 4 Formulaire de Reconnaissance et de Consentement programme...
«Code» en juin 2004. L’étude internationale du Code par tous les signataires a été suivie de la validation du nouveau Code mondial...

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\Projet svt – physique – documentation responsabilité en matière de...

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\Cours de mme tenenbaum
«bis». IL n’y aura pas de résumé ou topo du cours présenté par le(a) chargé(e) de td au début de chaque séance. Le cours doit donc...

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\Résumé du projet

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\Recherche Fiche projet Titre du projet

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\Les maladies pulmonaires obstructives sont des affections qui se...
«poumon du fumeur». En général, 10 paquets-années, ce qui correspond au fait de fumer un paquet par jour pendant 10 ans, sont nécessaires...

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\D’un centre d’accueil pour demandeurs d’asile
«Elaboration, rédaction et animation du projet d’établissement ou de services» (mai 2010) 388

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\Un résumé du projet thérapeutique

Résumé Le projet est la continuation du projet présenté en 2010 qui visait à déterminer les pistes d\Résumé du projet siric








Tous droits réservés. Copyright © 2016
contacts
p.21-bal.com