Description de l'application Climat pour LEGO - Eric Maisonnave, Cerfacs RØunion LEGO, Toulouse, 18/05/2006

La page est créée Joelle Guyot
 
CONTINUER À LIRE
Description de
l'application Climat
     pour LEGO
 Eric Maisonnave, Cerfacs

                  Réunion LEGO, Toulouse, 18/05/2006
Plan

1. Une grille pour faire quoi ?
2. Le modèle couplé
3. Pré et post traitement
4. Etat des lieux

                     Réunion LEGO, Toulouse, 18/05/2006
Transport de l'énergie:
Equateur -> pôles

                          Réunion LEGO, Toulouse, 18/05/2006
L'étude du
      réchauffement
      climatique

Réunion LEGO, Toulouse, 18/05/2006
Supercalculateurs

Puissance des processeurs:
simulations longues (1000 ans)

Large bande passante:
haute résolution

                           Réunion LEGO, Toulouse, 18/05/2006
Grille

Nombre de processeurs:
étude de paramètrisation,
simulations indépendantes simultanées
(ensemble)

                           Réunion LEGO, Toulouse, 18/05/2006
Supercalculateur
       /
     Grille

        1950   2100     2250      2400       2550

                      1950-2100
                         Réunion LEGO, Toulouse, 18/05/2006
Notre expérience
                                                        E
                                                        X
                                                        P
                                        1 Scénario      E
                                                        R
                                                        I
                                                        E
                                                        N
                                                        C
                                                        E

1950-2000              2000-2100
 Contrôle               Scénario

   40 jours / 8 processeurs
                                   Réunion LEGO, Toulouse, 18/05/2006
Utiliser une grille pour une expérience d'ensemble

Grâce à la grille , produire un grand nombre
de scénarios pour tester la sensibilité des résultats
à la paramétrisation du modèle

                                  Réunion LEGO, Toulouse, 18/05/2006
Plan

1. Une grille pour faire quoi ?
2. Le modèle couplé
3. Pré et Post traitement
4. Etat des lieux

                     Réunion LEGO, Toulouse, 18/05/2006
Scénario

1950-2000         2000-2100
 Contrôle          Scénario

                       Réunion LEGO, Toulouse, 18/05/2006
Scénario

1800 simulations mensuelles

                    Réunion LEGO, Toulouse, 18/05/2006
Simulation mensuelle

     Prétraitement
          Simulation couplée
                        Post-traitement

                     Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

             Modèles utilisés

                        ARPEGE v4.5

TRIP                    Oasis v3

                        OPA v9 + LIM

                           Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

Caractéristiques communes:

 Fortran ~90
 G95
 LAM-MPI

                             Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

ARPEGE :
Action de Recherche Petite Echelle Grande Echelle
    Modélisation des écoulements atmosphériques (dynamique)


    Rayonnement, nuages


    Modèle de sol


    Taille du code: 2.500 fichiers, 600.000 lignes de code


                                       Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

              Pas de temps : 20 minutes
          

              Etat initial mensuel
          

              Diagnostics journaliers
          

                               Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

Température moyenne océan-glace
Albédo
Courants

Flux de chaleur
Pluie & trop plein réservoirs terrestres
Tensions de vent

                          Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

                          OASIS       ARPEGE         OPA         TRIP         Total
                                     4 processeurs
CPU (sec)                  200         1500/p        1500         200        7900
Elapsed (min)               3             25          25           3           25
Mémoire max (Mo)           350          200/p        600           20         600
Mémoire statique (Mo)      2.8           153         562          1.5         720
Entrées (Mo)               170            2          190           1          360
Sorties (Mo)                3            190         130           1          320
Echanges MPI (Mo)          240            62         136           40         240

                                                      Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

OPA :
Océan Parallélisé
    Modélisation des écoulements océanique (dynamique)


    Traceurs actifs: température et salinité


    Modèle de glace de mer (Université Louvain la Neuve)


    Taille du code: 230 fichiers, 100.000 lignes de code


                                        Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

                 Pas de temps : 1h20
             

                 Etat initial mensuel
             

                 Diagnostics mensuels

                                Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

Flux de chaleur
Pluie & débits fleuves
Tensions de vent

Température moyenne océan-glace
Albédo
Courants

                         Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

TRIP :
Total Runoff Integrating Pathways
 Modélisation des écoulements fluviaux
 Taille du code: 50 fichiers, 3.200 lignes de code

                                         Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

OASIS :
Coupleur de code
    Redistribue les exé sur les processeurs alloués (LAM-MPI)
    Assure la synchronisation des échanges ARPEGE-OPA-TRIP
    Interpole les champs échangés d'un maillage à l'autre


    Taille du code: 220 fichiers, 45.000 lignes de code


                                        Réunion LEGO, Toulouse, 18/05/2006
Simulation couplée

                         OASIS        ARPEGE         OPA         TRIP        Total
                                     4 processeurs
CPU (sec)                  200         1500/p        1500         200        7900
Elapsed (min)               3             25          25           3           25
Mémoire max (Mo)           350          200/p        600          20          600
Mémoire statique (Mo)      2.8           153         562          1.5         720
Entrées (Mo)               170            2          190           1          360
Sorties (Mo)                3            190         130           1          320
Echanges MPI (Mo)          240            62         136          40          240

                                                      Réunion LEGO, Toulouse, 18/05/2006
Sur la Grille

x10 x1800
                     Réunion LEGO, Toulouse, 18/05/2006
Plan

1. Une grille pour faire quoi ?
2. Le modèle couplé
3. Pré et Post traitement
4. Etat des lieux

                     Réunion LEGO, Toulouse, 18/05/2006
Prétraitement

Opération 1: Copie des fichiers d'entrée
                  Opération 1.1:
    fichiers décrivant               l'état initial du modèle (changent chaque mois)


             Les exécutables fortran qui constituent le coeur de la simulation ont besoin de fichiers d'entrée de

    fichiers de     contraintes                +OPA,
                                                  exécutables
                                                        restart.trip pour TRIP, (toujours
             plusieurs types: fichier décrivant l'état initial du modèle (ICMSH0123INIT pour ARPEGE,
                                                                                                      lespour mêmes)


             restart.nc et restart_ice_in.nc pour                               atm.nc, ocean.nc et trip.nc
             OASIS), fichiers de contraintes (conditions aux limites, concentrations de certains gaz,
    fichiers de paramètres (modifiés chaque mois)


Volume des fichiers : 100 Mo (états initiaux)
                      + ~300 Mo (contraintes)
               Où retrouver les fichiers d'entrée
        issus de la simulation mensuelle précédente ?

                                                                        Réunion LEGO, Toulouse, 18/05/2006
Prétraitement

Opération 2: Modif des fichiers de paramètres
                   Opération 1.1:
    Changement        des paramètres temporels (dépendent du mois)


          Les exécutables fortran qui constituent le coeur de la simulation ont besoin de fichiers d'entrée de

    Changement
          restart.nc etdes      paramètres               physiques                (dépendent
                                                                                     ocean.nc et trip.nc pourdu scénario)
          plusieurs types: fichier décrivant l'état initial du modèle (ICMSH0123INIT pour ARPEGE,


                        restart_ice_in.nc pour OPA, restart.trip pour TRIP, atm.nc,
                   OASIS), fichiers de contraintes (conditions aux limites, concentrations de certains gaz,

Fichiers ASCII

                                                                                  Réunion LEGO, Toulouse, 18/05/2006
Prétraitement

Opération 3: Fusion fichiers entrée - contraintes
                    Opération 1.1:
    Exécutables        fortran


            Les exécutables fortran qui constituent le coeur de la simulation ont besoin de fichiers d'entrée de

    Fusion du    fichier           d'entrée pour OPA,atmosphérique                      (dépend
            plusieurs types: fichier décrivant l'état initial du modèle (ICMSH0123INIT pour ARPEGE,
                                                                                                             du mois)


            restart.nc et restart_ice_in.nc            restart.trip pour TRIP, atm.nc, ocean.nc  et trip.nc pour
            OASIS), fichiers de contraintes (conditions aux limites, concentrations de certains gaz,
    avec les fichiers de contraintes (dépendent du scénario)

Fichiers binaires, opération rapide

                                                                               Réunion LEGO, Toulouse, 18/05/2006
Sur la Grille

                                       Stock de
                                       400 Mo
                                        /scénar

Transférer l'état
initial ?
                         Réunion LEGO, Toulouse, 18/05/2006
Post-traitement

Opération 1: Conversion de format
                des diags ARPEGE
            Opération 1.1:

            Les exécutables fortran qui constituent le coeur de la simulation ont besoin de fichiers d'entrée de
            plusieurs types: fichier décrivant l'état initial du modèle (ICMSH0123INIT pour ARPEGE,
    Exécutables fortran après chaque simulation mensuelle
            restart.nc et restart_ice_in.nc pour OPA, restart.trip pour TRIP, atm.nc, ocean.nc et trip.nc pour


            OASIS), fichiers de contraintes (conditions aux limites, concentrations de certains gaz,

    Supprime les diags inutiles à notre étude


Durée: 1 minute elapsed, 500 Mo d'I/O

                                                                                    Réunion LEGO, Toulouse, 18/05/2006
Post-traitement

Opération 2: Réduction des données
                    Opération 1.1:
    Exécutables       fortran après chaque simulation mensuelle


            Les exécutables fortran qui constituent le coeur de la simulation ont besoin de fichiers d'entrée de

    Réalise des
            restart.ncmoyennes               spatiales             surTRIP,des      régions
            plusieurs types: fichier décrivant l'état initial du modèle (ICMSH0123INIT pour ARPEGE,
                                                                                                        clefs


                      et restart_ice_in.nc pour OPA, restart.trip pour         atm.nc, ocean.nc et trip.nc  pour
                    OASIS), fichiers de contraintes (conditions aux limites, concentrations de certains gaz,

Entrée: 500 Mo, Sortie: qq Ko (sauvage !)

                                                                                    Réunion LEGO, Toulouse, 18/05/2006
Post-traitement

Opération 3 (?): Réduction des données
                  Opération 1.1:
    Exécutables        fortran toutes les 180 simulations mensuelles


            Les exécutables fortran qui constituent le coeur de la simulation ont besoin de fichiers d'entrée de

    Réalise des
            restart.ncdécompositions                      en vecteurs
                                                                   pour TRIP, atm.nc,propres
            plusieurs types: fichier décrivant l'état initial du modèle (ICMSH0123INIT pour ARPEGE,
                                                                                                         (rapide)


                       et restart_ice_in.nc pour OPA, restart.trip                     ocean.nc et trip.nc  pour
            OASIS), fichiers de contraintes (conditions aux limites, concentrations de certains gaz,
    Permet de réduire le volume de sortie d'un facteur 7 ?


    Le décompactage se fait au labo (rapide)


    Nécessite que 9 Go de données transite sur le réseau Grid5000


Entrée: 9 Go, Sortie: 1.2Go

                                                                         Réunion LEGO, Toulouse, 18/05/2006
Post-traitement

Opération Finale : relance & rapatriement
                    Opération 1.1:
    script deLesre-soumission                     Batch
                  exécutables fortran qui constituent le coeur de la simulation ont besoin de fichiers d'entrée de

    sauvegarde        des      fichiers      pour d'entrée            deTRIP,laatm.nc,
                                                                                  simulation
             plusieurs types: fichier décrivant l'état initial du modèle (ICMSH0123INIT pour ARPEGE,
!

             restart.nc et restart_ice_in.nc      OPA, restart.trip pour                 ocean.nc et trip.nc pour
             OASIS), fichiers de contraintes (conditions aux limites, concentrations de certains gaz,
    mensuelle suivante ?
    rapatriement des données vers le labo
"

    nécessite qu'au plus 12 Go de données transite sur le réseau
#

                                                                             Réunion LEGO, Toulouse, 18/05/2006
Stockage sur la Grille

             Option ''sauvage'' :

                  au max, 500 Mo x 10

              $
                  restart OPA transféré
              %

                  x 10 x 1800
                  qq Mo en sortie
              &

                  de Grid5000

                         Réunion LEGO, Toulouse, 18/05/2006
Stockage sur la Grille

             Option ''élaborée'' :

                  au max, 10 Go x 10

              '
                  diags de sortie transitent
              (

                  également par le réseau
                  (90 Go / scénario)
                  12 Go en sortie
              )

                  de Grid5000 / scénario

                          Réunion LEGO, Toulouse, 18/05/2006
Plan

1. Une grille pour faire quoi ?
2. Le modèle couplé
3. Pré et Post traitement
4. Etat des lieux

                     Réunion LEGO, Toulouse, 18/05/2006
Déjà fait

    Physique du modèle
*

    Modèle couplé G95, FEDORA 3
+

    Tests sur FEDORA4ALL
,

    Développement routine décompression EOF
-

    et tests jeux de données océaniques

                             Réunion LEGO, Toulouse, 18/05/2006
The model DOES have a promising ENSO

                                         Premiers résultats
           Nino3 index                 nouveau modèle couplé

                                           Réunion LEGO, Toulouse, 18/05/2006
Reste à faire

    Finaliser le document de description D1
.

    Mettre au point le modèle FEDORA4ALL D2
/

    Choisir une option de post traitement
0

                            Réunion LEGO, Toulouse, 18/05/2006
je vous présente l'application que le Cerfacs a
proposé dans le cadre du projet LEGO
Il s'agit simplement tirer le meilleur parti d'une
grille comme Grid5000 pour faire une simulation
de climat
Avant de décrire le fonctionnement en détail de
l'application, dire quel type d'application pour les
grilles, décrire l'expérience que l'on veut faire.
Finir par faire le point sur ce qui a été fait.
L'énergie du soleil arrive principalement au
tropiques.
Elle est advectée, diffusée vers les pôles, via
l'océan et l'atmosphère.
Comment se fait se transfert ? Sur quels modes de
variabilité naturelle ? (pourquoi étés plus chauds,
régions plus pluvieuses, moussons, elnino,
tempêtes)
Les préoccupations de l'équipe de recherche dans
laquelle je travaille
Réchauffement des températures globales
extrèmement rapide observé
c'est également une problématique étudiée au
Cerfacs (détection, attribution, impact)
on utilise la puissance des processeurs des
supercalculateurs (VPP Fujitsu, NEC SX) pour
réaliser des simulations longues (1000 ans)
On utilise les réseaux rapides entre processeurs
pour faire du message passing (code parallèles) et
augmenter la résolution des maillages.
On va se servir des propriétés des grilles pour
attaquer un autre type de problème: l'étude de
paramètre
On se sert du grand nombre de processeurs pour
lancer beaucoup de simulations indépendantes
entre elles, en même temps (impossible sur super
calculateurs à cause des restrictions sur le nombre
de travaux par utilisateur)
Donc la relative lenteur des processeurs de grille
est compensée par leur nombre.
Supposons qu'une même simulation de 150 ans va
5 fois plus vite sur supercalculateur que sur grille,
si on a 5x plus de processeurs, on va aussi vite.
MAIS il faut que, sur la grille, le démarrage d'une
simul ne dépende pas de l'état final d'une autre
simulation
Le rapport (à la louche) est de 1/100 entre
Grid5000 et Earth Simulator (1/16 entre ES et
NEC, ¼ entre VPP et CRAY XD1)
-100 procs pour la config Locean (sur 5000 ES)
L'expérience pour LEGO est donc une simulation
d'ensemble (plusieurs simulations indépendantes
entre elles)
On choisit le thème scientifique particulier du
scénario climatique. On simule 150 ans du climat,
une dizaine de fois, chaque fois différent par un
paramètre physique de l'atmosphère.
On appelle expérience les 10 simulations de 150
ans et improprement « scénario » une de ces 10
simulations: 10, ce serait déjà 10x plus que les
expériences précédentes au Cerfacs.
De quoi est constituée une simulation de scénario
de 150 ans, comment la fait-on ?
Le coeur de notre application , c'est le modèle
couplé océan-atmosphère, dont je vais décrire le
principe et les caractéristiques techniques
Dans le point 3, je décrirai ce que l'on fait avant et
après l'utilisation des modèles
Si je reprends mon schéma d'un scénario, il est en
fait constitué ...
Chaque scénario de 150 ans est composé de
1800 simulations mensuelles, qui constituent
chacune une unité de base qui sera soumise au
système de batch OAR. Ces simulations de
bases sont séquentielles (les sorties d'une
simulation mensuelle constituent les entrées
de la simulation suivante) mais utilisent
plusieurs processeurs (trois modèles et le
coupleur fonctionnent simultanément).
On découpe pour checkpoint et pour faciliter
la gestion des fichiers de sortie.
Pratiquement, c'est un script Unix, qui se
décompose en 3 morceaux: Prepro, simul couplée
par Oasis proprement dite, postpro
Je reviendrai sur le pré et le post traitement.
3 modèles et un coupleur (4 executables)
modèles de circulation générale (sur tout le globe)
Ce sont des exécutables mono processeurs
sauf Arpege sur 4 procs
qui communiquent entre eux via lam-mpi

g95 choisi sur Grid 5000 (+15% CPU)
Atmosphère:
Météo France & centre européen, multi utilisé et
reconnu dans la communauté internationale
Pour la prévi du temps comme pour le climat
Modélisation des écoulements atmosphériques,
nuages, certaines propriétés de sol
code difficilement manipulable (pas de makefile
jusqu'à il y a peu)
Propriétés de l'atmosphère discrétisées sur la grille
ci-dessus
Pas de temps : 20 minutes
Lit un état initial, produit un état final permettant
de caractériser l'atmosphère (format propriétaire)
Diag du modèle format propriétaire, tous les 48 pas
de temps
Tous les jours, chaque 36 pas de temps, échanges
de champs de couplage ...
Envoi et reçoit des champs d'Oasis
via bibliothèque de routines implémentées dans le
code Arpege et encapsulant appels MPI_recv et
MPI_send
OASIS    ARPEGE         OPA    TRIP   Total
                                  4 processeurs
  CPU (sec)               200       1500/p        1500   200    7900
  Elapsed (min)                       25           25            25
  Mémoire max (Mo)        350        200/p        600    20     600
  Mémoire statique (Mo)    2.8        153         562    1.5    720
  Entrées (Mo)            170                     190           360
  Sorties (Mo)                        190         130           320
  Echanges MPI (Mo)       240          62         136    40     240

240 Mo toutes les minutes elapsed ne doivent pas
stresser le réseau d'une machine et même de
Grid5000 (Renater3) ?
Océan:
CNRS (Locean, Jussieu). Utilisé en Europe dans
beaucoup de modèle de climat (5 ingé sur le
maintien du code)
Pour la prévi opérationnelle comme pour le climat
Bien ré-écrit il y a 2 ans
Propriétés de l'atmosphère discrétisées sur la grille
ci-dessus
Pas de temps : 1h 20
Lit un état initial, produit un état final permettant
de caractériser l'océan (format Netcdf)
Diag du modèle format netcdf, tous les mois
Tous les jours, chaque 18 pas de temps, échanges
de champs de couplage ...
Envoi et reçois des champs d'Oasis
via bibliothèque de routines implémentées dans le
code Arpege et encapsulant appels MPI_Get et
MPI_Put
Les même mais inversés sauf ecoulements car Trop
plein des réservoirs de surface d'ARPEGE est
envoyé à TRIP qui calcule un débit à l'embouchure
des fleuves qui est à son tour passé à OPA
TRIP code léger
Il existe des états initiaux et finaux des champs de
couplage (netcdf)
Pas de diags
OASIS    ARPEGE         OPA    TRIP   Total
                                  4 processeurs
  CPU (sec)               200       1500/p        1500   200    7900
  Elapsed (min)                        25         25             25
  Mémoire max (Mo)        350        200/p        600    20     600
  Mémoire statique (Mo)    2.8        153         562    1.5    720
  Entrées (Mo)            170                     190           360
  Sorties (Mo)                        190         130           320
  Echanges MPI (Mo)       240          62         136    40     240

Ce sont les chiffres pour CRAY XD1
atmosphere gourmande en CPU
ocean en taille mémoire
700 Mo doivent se trouver sur les machine pour
chaque scénario
Ce qui nous donnerait sur la grille, si on s'en tient à
la config « tout le modèle couplé sur une même
machine » : X simulations mensuelles tournant
ensemble (idéalement 10 ou plus), pendant 30-45
minutes sur 8 processeurs, produisant 320 Mo à la
fin (avant postprocessing) , et se répétant 1800 fois
Dans le point 3, je décrirai ce que l'on fait avant et
après l'utilisation des modèles
Opération 1.1:

contraintes :conditions aux limites,
concentrations de certains gaz,
bathymétrie, orographie, etc ...
Opération 1.1:

contraintes :conditions aux limites,
concentrations de certains gaz,
bathymétrie, orographie, etc ...
Opération 1.1:

contraintes :conditions aux limites,
concentrations de certains gaz,
bathymétrie, orographie, etc ...
Ce qui nous donnerait sur la grille: 400 Mo stockés
en permanence sur chaque machine
Les fichiers d'entrées (qui changent tous les mois)
devraient soit transiter par le réseau, soit être
stockés sur la machine accueillant le scénario
Opération 1.1:
Opération 1.1:

Forme très sauvage de réduction de données.
Utilise le package Statpack, développé par Pascal
Terray (LOCEAN) dont on va également se servir
dans l'opération suivante (peut utiliser OPEN MP)
Opération 1.1:

Forme plus douce de réduction de données.
Permet de garder plus de chose pour de futures
analyses auxquelles on a pas encore penser mais
qui peuvent surgir au fil du dépouillement des
résultats
Opération 1.1:

Rapatriement final:
(liaison Renater 1Mo/s). On peut
envisager de déclencher cette opération à
chaque fin d'opération 3.
Ce qui nous donnerait sur la grille: 500 Mo stockés
en permanence sur chaque machine
Transferts des fichiers d'entrée seulement à travers
le réseau
seuls quelques diags 1D sont sauvés, rapatriement
Renater rapide
Problème + intéressant de gestion de flux de
données
Pour terminer, rapidement, car je suis en retard
Ce qui est fait depuis le début du projet
1ere version du modèle couplé OASIS totalement
gratuit
Vous pouvez aussi lire