xios - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/xios_workshopi… ·...
Post on 22-Aug-2020
9 Views
Preview:
TRANSCRIPT
CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1
XIOS
Y. Meurdesoif, R. Lacroix, M.H. Nguyen, A. Caubel , J. Dérouillat
Ut
2 U .
CEA/DSM/LSCE – Yann Meurdesoif
Contexte : problématique des I/O dans le climat
Exemple : exercice CMIP5167 expériences, 25 000 ans simulées (20ème et 21ème siècle, dernier millénaire, paléoclimat)Fichiers mensuels, journaliers et hautes fréquences (6 h)
Plus de 800 variables différentesDe nombreuses métadonnées associées
5 Millions de fichiers générés2 Po de données générées Exercice CMIP6 : x7 ~ 14 Po de données
3 Problématiques fortes :
Gestions efficaces des données et métadonnées au niveau des modèles
Génération performantes des données sur les systèmes de fichier parallèle( problématique HPC)
Complexité de la chaine de post-traitement( reconstruction des fichiers, séries temporelles, moyennes saisonnières, compression…)7/2/15 2
CEA/DSM/LSCE – Yann Meurdesoif
XIOS : collaboration IPSL/LSCE et MdS
Modèles de l’IPSL : NEMO, LMDZ, ORCHIDEE, INCA, DYNAMICOLGGE : MAR. , Ifremer ( ROMS, MARS) MétéoFrance /CNRM (en cours) : Gelato, Surfex, Arpège climatEn Europe (en cours d’évaluation) : MetOffice, (HadGem) ECMWF (IFS, EC-EARTH)
7/2/15 3
CEA/DSM/LSCE – Yann Meurdesoif
La gestion des données à travers XIOS
Philosophie A chaque pas de temps, le modèle expose une partie de ses données à
travers une interface minimaliste :Un identifiant + l’adresse du champs à exposer
Fichier XML externe : fourni la description des actions qui seront effectuées sur les données exposées
Simplification du code, flexibilité et dynamismeFichier XML « parsé » en début d’exécutionChangement des sorties et des métadonnées associées sans recompilation
Les attributs XML permette de décrire précisement le comportement du workflow. Certains sont obligatoires mais la plupart sont optionnels
Approche hiérarchique implémentant des concepts d’héritages parents-enfantsPas de définitions/descriptions redondantesDéfinitions simples et compactes 7/2/15 4
CALL xios_send_field("field_id",field)
CEA/DSM/LSCE – Yann Meurdesoif
XML : principe d’utilisation
Déclaration des axes-1D et domaines-2D des variables du modèle<domain id="horizontal_domain" ni_glo="100" nj_glo="100"/><axis id="vertical_axis" n_glo="100" />
Définition de la grille associée aux axes et domaines déclarés par compositionExemple d’une grille 3D 100x100x100
<grid id="grid_3d"> <domain domain_ref="horizontal_domain"/> <axis axis_ref="vertical_axis"/>
</grid>
Définitions des champs associés aux grilles déclarées<field id="a_field" grid_ref="grid_3d">
Associations des champs déclarés dans 1 ou plusieurs fichiers<file name="hello_word" output_freq="1day">
<field field_ref="a_field" operation="average"></file >
Les différentes déclarations peuvent être crées, modifiées ou complétées à partir de l’API fortran de XIOS.
Création de l’arborescence XMLAjout des attributs défini au moment de l’exécution (ex : résolution des grilles)
7/2/15 5
CEA/DSM/LSCE – Yann Meurdesoif
Exemple de fichier XML complet
7/2/15 6
<simulation> <context id="hello_word" >
<axis_definition> <axis id="vertical_axis" n_glo="100" /> </axis_definition>
<domain_definition> <domain id="horizontal_axis" ni_glo="100" nj_glo="100" /> </domain_definition>
<grid_definition> <grid id="grid_3d"> < domain domain_ref="horizontal_domain" > < axis axis_ref="vertical_axis" > </grid_definition>
<field_definition > <field id="a_field" operation="average" grid_ref="grid_3d" /> </field_definition>
<file_definition type="one_file" output_freq="1d" enabled=".TRUE."> <file id="output" name="hello_world" output_freq="1d"> <field field_ref="a_field" /> </file> </file_definition>
</context> </simulation>
CEA/DSM/LSCE – Yann Meurdesoif
Coté Fortran…
7/2/15 7
SUBROUTINE client(rank,size) USE xios IMPLICIT NONE INTEGER :: rank, size TYPE(xios_time) :: dtime DOUBLE PRECISION,ALLOCATABLE :: lon(:,:),lat(:,:),field_A(:,:) ! other variable declaration and initialisation .....
! XIOS initialization CALL xios_initialize("client", return_comm=comm) CALL xios_context_initialize("hello_word",comm)
! Complete horizontal domain definition CALL xios_set_domain_attr("horizontal_domain",ibegin=ibegin,ni=ni,jbegin=jbegin, nj=nj) CALL xios_set_domain_attr("horizontal_domain ",lonvalue=RESHAPE(lon,(/ni*nj/))) CALL xios_set_domain_attr("horizontal_domain ",latvalue=RESHAPE(lat,(/ni*nj/))) dtime%second=3600 CALL xios_set_timestep(dtime) CALL xios_close_context_definition()
! time loop DO ts=1,96 CALL xios_update_calendar(ts) CALL xios_send_field("field_A",field_A) ENDDO! XIOS finalization CALL xios_context_finalize() CALL xios_finalize()END SUBROUTINE client
CEA/DSM/LSCE – Yann Meurdesoif
Gestion du parallélisme des données
Le parallélisme des données s'exprime à travers la définition des grillesChaque processus client possède une partie des données de la grille globaleAxes 1-D : n_glo, n, beginDomaines 2-D : ni_glo, ni, ibegin, nj_glo, nj, jbegin (ex : grille
régulière)
7/2/15 8
CEA/DSM/LSCE – Yann Meurdesoif
Gestion du parallélisme des données
La structure des données en mémoire coté modèle peut également être décrite :Prise en compte des halos de recouvrementsXIOS n'extrait que les données utilesEx : grille régulière 2-D : data_ibegin, data_ni, data_jbegin, data_nj
7/2/15 9
CEA/DSM/LSCE – Yann Meurdesoif
Gestion du parallélisme des données
Un large éventail de grilles supportées
7/2/15 10
2D regular cartesian (longitude - latitude)
curvilineargrid
reduced gaussian grid
unstructuredgrid
CEA/DSM/LSCE – Yann Meurdesoif
Le problème des performances I/O
O(10 000)+ cœurs : les I/O deviennent un des goulets d'étranglement HPCRédhibitoire en écriture séquentiel.En parallèle : mauvaise scalabilité des systèmes de fichiers par rapport aux modèlesEcritures concurrentes dans un même fichier très peu scalable
XIOS : un "burst buffer" logiciel ?Les données sont écrites tout au long de la
simulationLissage des pics I/OFlux I/O constant 7/2/15 11
1 processEn parallèle
Avec XIOS
CEA/DSM/LSCE – Yann Meurdesoif
Fonctionnalités Client-Serveur
Les écritures sur le système de fichiers sont gérés par les serveurs XIOS1 ou plusieurs serveurs dédié aux écritures
Plusieurs clients par serveurs : ratio fixé par équilibrage de chargeMoins de requêtes I/O, écritures plus performantes
Envoie asynchrone des données des clients vers les serveurs
Recouvrement transferts et écritures par le calcul
Ecritures concurrentes par les serveurs dans un même fichiersVia NETCDF4/HDF/MPI-IO
Lancement en mode MPMDEx : mpirun –np 32 nemo.exe : -np 2 xios_server.exeFonctionne dans le cadre de modèles couplésUn même pool de serveurs pour tous les modèles
7/2/15 12
CEA/DSM/LSCE – Yann Meurdesoif
Distribution des données entre clients et serveurs
Coté client : la distribution des données est définie par le modèleCoté serveur : la distribution optimise les écritures I/O
Chaque client envoie à avec plusieurs serveursChaque serveur reçoit de plusieurs clients
Pas de point de synchronisation entre clients et serveurs et entre serveursUniquement des communications Point à Points non bloquantesMPI_Issend, MPI_Irecv, MPI_Test, MPI_Probe...Devient bloquant si les buffers sont pleins
7/2/15 13
CEA/DSM/LSCE – Yann Meurdesoif
Large utilisation de buffersLissage des pics I/O
Coté client : double bufferMessages en cours de transfert + Bufférisassions
Protocole de communication client-server
7/2/15 14
Coté Serveur : buffer circulaireOn traite les requêtes reçues pendant
que les autres se transfères
CEA/DSM/LSCE – Yann Meurdesoif
Performances
XIOS testé et utilisé sur des simulations O(10 000)+ cœursLe nombre de serveurs dédiés dépend du volume I/O
Exemple : configuration NEMO 1/12°GYRE 144 : 4322x2882x31, 8160 cœurs
Curie, système de fichier Lustre (BW théorique 150 GB/s)
Sortie au format NETCDF4, écritures parallèles (1 fichier)Tuning du nombre d’OSTBande passante moyenne < 5 GB/s
Ecriture toutes les 6h (temps modèle)8160 NEMO, 32 serveurs XIOS+5% pénalité pour les I/O (~ fluctuations machine)
Ecriture toutes les heures (temps modèle) : cas extrême8160 NEMO, 128 serveurs XIOS ( 1.5% ressources pour les I/O)+15-20% pénalité pour les I/Os3.6 Gb/s, 13 Tb/heure, 312 Tb/jour, 9.4 Pb/mois (temps réel)
7/2/15 15
CEA/DSM/LSCE – Yann Meurdesoif
Le système de workflow parallèle intégré
7/2/15 16
<field id="A" /><field id="B" /><field id="C" > (A + B) / (A*B) </field><field id="D"> (this + exp(C))/3. </field>
CEA/DSM/LSCE – Yann Meurdesoif
Le système de workflow parallèle intégré
Transformations spatialesPassage d'une grille source à une grille destinationEx : interpolation d'une grille non structurée -> grille régulièreExtraction sous-grille, interpolations, réductions (moyenne globale), moyennes zonales,
etc..Transfert des données manquantes entre clients XIOS
Représentation interne sous la forme d'un graphe de tâches parallèlesLes flux sources proviennent du modèle ou de fichiers d'entrées
Associé à un pas de tempsLes filtres : transforment les flux d'entrée en flux de sortiesChainage des filtres Sortie vers un fichier ou retour vers le modèle
7/2/15 17
CEA/DSM/LSCE – Yann Meurdesoif
Perspectives et Remerciement
Collaboration LSCE - MdSSite web : http://forge.ipsl.jussieu.fr/ioserver
XIOS est un outil maintenu et en continuel développementVers XIOS-2.0
Perspective à court et moyen termeAmélioration du workflowGestion des checkpoints / restartsGestion du multi-threadingCouplage de modèlesTolérance aux panne ?
Développements soutenus par différents projetsEuropéen : IS-ENES 1 et IS-ENES2, G8 ICOMEXANR Convergence (IPSL+MdS) (en cours)Centre d'excellence EoCoE (LSCE+MdS) et ESIWACE
7/2/15 18
top related