Intégration de la librairie d`I/O XIOS dans le modèle IPSL ESM
Transcription
Intégration de la librairie d`I/O XIOS dans le modèle IPSL ESM
Intégration de la librairie d’I/O XIOS dans le modèle IPSL ESM (Milestone CONVERGENCE MS 4.1) La librairie d’écriture XIOS a été implémentée dans toutes les composantes du modèle IPSLCM : LMDZ (modèle atmosphère), NEMO (modèle océan, glace de mer et biogéochimiemarine), ORCHIDEE (modèle de schéma de surface) et INCA (modèle d’aérosols et chimie atmosphérique). Le modèle IPSL-CM est désormais un ensemble cohérent, flexible et efficace en termes de gestion des écritures des variables. 1) Présentation de XIOS XIOS est une librairie développée à l’IPSL qui permet, dans sa version actuelle, de gérer les sorties d’un code de climat. Elle permet à la fois de réaliser les écritures de variables dans des fichiers de sortie au format NetCDF et de réaliser des actions spécifiques (opérations temporelles, opérations arithmétiques, combinaisons de variables,…) sur les variables ellesmêmes. Fig 1 : Schéma descriptif de la librairie XIOS Les fichiers de configuration XML permettent de décrire facilement l’information relative aux sorties à réaliser. Cette information est représentée sous la forme d’attributs : - context : identification des modèles et sous-modèles grid, domain, axis : informations sur la grille de chaque modèle - field : informations sur les variables (opérations, precision,…) file : informations sur les fichiers contenant les variables (variables à inclure dans le fichier, fréquence de sortie, fréquence de split,…). La fonctionnalité de « serveur » permet de réaliser les écritures des variables en mode asynchrone : l’écriture dans les différents fichiers de sortie est donc réalisée par des cœurs de calcul dédiés. La partie « calcul » du code n’est donc pas pénalisée par la partie « écriture » des variables. La fonctionnalité d’ « écriture parallèle » permet d’obtenir un seul fichier de sortie plutôt qu’un fichier par process. La librairie XIOS est utilisée dans les modèles de l’IPSL mais également à l’extérieur de l’IPSL: - modèle MAR (Atmospheric Regional model, LGGE) modèle ROMS (Oceanic regional model, IFREMER) modèle MARS3D (Model for Applications at Regional Scale, IFREMER) 2) Intégration de la librairie XIOS dans les composantes du modèle IPSL-CM La librairie XIOS a été implémentée dans chacune des composantes du modèle IPSL-CM : LMDZ (model atmosphère), NEMO (modèle océan, glace de mer et biogéochimie-marine), ORCHIDEE (modèle de schéma de surface) et INCA (modèle d’aérosols et chimie atmosphérique). a) Implémentation dans les composantes L’intégration d’XIOS dans les modèles consiste simplement au codage des appels aux différentes fonctions XIOS dans le modèle combiné à la mise en place d’un (ou plusieurs) fichier(s) de configuration xml (Fig2 et Fig 3). L’intégration s’est faite de façon indépendante et différente dans chacune des composantes : - NEMO : Activation de XIOS par défaut avec la clé cpp key_iomput LMDZ : Activation de XIOS par clé cpp CPP_XIOS + flag « ok_all_xml=y » dans run.def ORCHIDEE : Activation de XIOS par clé CPP XIOS + flag XIOS_ORCHIDEE_OK dans run.def INCA : Activation de XIOS par clé CPP XIOS + flag XIOS_INCA dans inca.def Fig 2 : Séquence schématique d’appel aux fonctions XIOS dans le modèle NEMO pour sortir la variable « sst » Fig 3 : Extrait des fichiers de configurations XML du modèle NEMO nécessaires pour sortir la variable « sst » Chacune des composantes du modèle IPSL-CM utilisait la librairie IOIPSL (développée à l’IPSL) pour réaliser l’écriture des variables dans des fichiers au format NetCDF. La librairie XIOS remplace donc désormais la librairie IOIPSL pour la gestion des écritures des variables dans les modèles de l’IPSL. operation in histdef flux_op flux_scinsec ave once tmaxcels tmincels sumscatter argument in xios_send_field one_day/dt(*) 1/dt (**) - operation in xml average once maximum minimum accumulate Fig 4 : Correspondance des opérations entre IOIPSL et XIOS pour le modèle ORCHIDEE La validation des sorties effectuées avec la librairie XIOS s’est faite en comparant les « sorties XIOS » avec les « sorties IOIPSL ». Des petites différences (de l’ordre de la précision machine) sur les variables double et simple précision moyennées ont été constatées. Ceci s’explique par le fait que le calcul de la moyenne dans XIOS est très légèrement différent du calcul fait dans IOIPSL : XIOS cumule les champs puis les moyenne lorsqu’on est à une fréquence d’opération tandis qu’IOIPSL moyenne à chaque pas de temps sans passer par l’étape de cumul. b) Assemblage des composantes dans le modèle IPSL-CM : les contextes XIOS XIOS est interfacé avec le coupleur parallèle Oasis-MCT ce qui permet au modèle Système Terre IPSL-CM complet d’utiliser XIOS comme seule et unique librairie d’écriture. La gestion des variables à sortir par composante (ou sous-composante) se fait en utilisant l’attribut « context » de XIOS : chaque composante (ou sous-composante) définit son propre contexte d’utilisation de XIOS. Pour chacun des contextes, les attributs (grille, champs, fichiers,…) sont définis dans un fichier XML spécifique. Ces fonctionnalités de « contexte » et de découpage de fichiers XML en sous-fichiers XML sont très utiles dans un contexte IPSL multi-configurations : la configuration de sorties de variables d’un modèle peut ainsi être très facilement utilisée à la fois en configuration couplée (modèle IPSLCM), forcée (non couplée à un autre modèle) ou zoomée (sous-domaine géographique). Fig 5 : Extrait du fichier principal de configuration XML du modèle IPSL-CM. Pour chacun des contextes, les attributs (grille, champs, fichiers,…) sont définis dans un fichier XML spécifique : nemo.xml, lmdz.xml,… c) Performances : le mode serveur et l’écriture parallèle L’utilisation d’XIOS en mode serveur (un groupe de process « serveurs » est partagé par les composantes) permet d’écrire les données de manière asynchrone. Les performances obtenues grâce au mode serveur permettent de cibler efficacement des machines SMP de type TGCC-Curie et IDRIS-Ada. La fonctionnalité d’écriture parallèle permet de supprimer la phase de post-processing de recombinaison des fichiers (étape de « rebuild »), fiabilisant ainsi l’environnement d’exécution IPSL tout entier. Les performances obtenues en écriture parallèle dépendent fortement des librairies NetCDF et HDF5 utilisées, des paramètres du filesystem parallèle et de la charge d’utilisation de la machine et du filesystem au moment des écritures. Temps de restitution pour 1 mois de simulation (s) 27 ATM x 4 OMP + 20 OCE : mode one file 414 27 MPI x 4 OMP + 20 OCE : mode multiple file 330 27 MPI x 4 OMP + 20 OCE + 1 serveur XIOS : one file 330 Configuration Fig 6 : Premières performances obtenues en utilisant le mode serveur sur la configuration IPSL-CM basse résolution. La figure 6 nous montre qu’il n’y a aucun surcout en temps de restitution à obtenir un seul fichier de sortie avec 1 serveur XIOS (mode one file + serveur XIOS) plutôt qu’à obtenir un fichier de sortie par process (mode multiple file). On voit en revanche, le surcout de l’écriture parallèle lorsqu’on n’active pas le mode asynchrone (mode one file sans serveur XIOS). Ces mesures de performances sont une preuve de faisabilité et de bon fonctionnement de la librairie XIOS en mode serveur. Il est prévu de refaire ces mesures de performances sur des configurations du modèle IPSL-CM à plus haute résolution et à plus grand nombre de cœurs de calcul afin d’évaluer plus précisément le potentiel de la librairie XIOS en termes de performances pour le modèle IPSL-CM (Task 3, MS 3.2a, CONVERGENCE). 3) Utilisation en production Fig 7 : Schéma du modèle IPSL-CM utilisé en production La librairie XIOS est désormais utilisée dans la version de référence du modèle IPSL-CM. Cette version IPSLCM6 du modèle est la version actuelle du modèle Système Terre IPSL-CM qui tourne sur les machines TGCC-Curie et IDRIS-Ada. La flexibilité apportée par les fichiers de configuration XML facilitera le respect de protocoles imposés en termes de sorties des modèles (noms des variables, fréquence, description,…) dans des exercices de type CMIP6. 4) Prochaines étapes Les prochaines étapes dans l’intégration et l’utilisation de la librairie XIOS dans le modèle IPSL-CM sont les suivantes : - - - Comme dit dans le paragraphe 2)c) de ce document, il est prévu d’évaluer les performances de la librairie XIOS et en particulier du mode serveur sur des configurations à grand nombre de cœurs et à résolutions de modèles élevées. La mise au point d’un outil pour aider à trouver la configuration optimale en termes de nombre de serveurs est prévu dans le cadre du projet CONVERGENCE (Task3, MS 3.2a). La librairie XIOS est désormais intégrée dans le modèle IPSL-CM : il est donc possible dès à présent d’évaluer la faisabilité d’utiliser XIOS pour réaliser des tâches de posttraitement (génération des times series, des moyennes saisonnières,…) afin d’alléger au maximum la chaîne de production : ces tâches de post-traitement sont actuellement réalisées par des tâches indépendantes du job de calcul. Plusieurs développements dans la librairie XIOS sont prévus dans le cadre du projet CONVERGENCE : o Gestion des fichiers d’entrée (MS 2.2a) o Gestion des fichiers restarts (MS 2.2.b) o Gestion des interpolations (MS 2.3) Il est prévu de tester et de valider l’utilisation de ces différentes fonctionnalités dans le modèle IPSL-CM au fur et à mesure de leur disponibilité. 5) Difficultés rencontrées Les principales difficultés rencontrées : - - du retard a été pris dans l’intégration de la librairie XIOS dans le modèle IPSL-CM en raison du phasage nécessaire des versions « développement » et « production » dans chacune des composantes. le modèle IPSL-CM a été le premier modèle à coupler entre elles des composantes utilisant chacune la librairie XIOS comme librairie de sorties. L’intégration d’XIOS dans le modèle IPSL-CM a donc été l’occasion de mettre en lumière certains bugs liés à une utilisation spécifique et non-standard (mode MPMD, partage de serveurs entre plusieurs composantes, utilisation d’OASIS-MCT,…).