xios - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/xios_workshopi… ·...

18
CEA/DSM/LSCE Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif , R. Lacroix, M.H. Nguyen, A. Caubel , J. Dérouillat U t 2 U .

Upload: others

Post on 22-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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 .

Page 2: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 3: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 4: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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)

Page 5: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 6: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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>

Page 7: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 8: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 9: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 10: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 11: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 12: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 13: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 14: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 15: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 16: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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>

Page 17: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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

Page 18: XIOS - syst.univ-brest.frsyst.univ-brest.fr/per3s/wp-content/uploads/2015/12/XIOS_workshopI… · CEA/DSM/LSCE – Yann Meurdesoif 7/2/15 1 XIOS Y. Meurdesoif, R. Lacroix, M.H. Nguyen,

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