Principe du couplage via Palm et illustration avec le modèle

Transcription

Principe du couplage via Palm et illustration avec le modèle
Plateforme EAUDYSSEE
9Restructuration MODCOU.
9Développement de EAUDYSSEE via PALM.
Otmane Souhar, post doc CNRS UMR-Sisyphe/Centre de Géosciences
Restructuration MODCOU
9 Recodage de MODCOU en Fortran 90.
9 Rétroaction entre les composantes de MODCOU.
9 Amélioration du transfert dans la zone non saturée.
9 Ajout de nouveaux modules (Rapid, module de
transport réactif).
Développement de Eaudyssee via PALM
Modélisation intégrée des flux de nitrate à l’échelle du
bassin versant de la Seine: couplage des modèles
agronomique, STICS et hydrogéologique, EAUDYSSEE
Couplage de modèles: pourquoi faire?
9 Problèmes multidisciplinaires:
¾ diversité des processus mis en jeu (physique, chimique, biologique, …)
9 Problèmes multi-échelles:
¾ multiple échelles spatiales et temporelles.
9 Réutilisation des modèles ’’experts’’:
¾ utilisations des modèles patrimoniaux.
9…
Couplage de modèles: comment faire?
9 Trois façons possibles:
¾ Insérer un modèle dans un autre
• Long et difficile à mettre en œuvre (> 2 modèles).
• Rapide en exécution.
¾ Echanger des informations: protocole de communication
• Couplage dynamique difficile.
• Complexe avec plus de deux modèles et de nombreux échanges.
¾ Plateforme de couplage
• Outils existants: DIAS, OpenMI, PALM …
• Difficultés et temps d’exécution différents selon la plateforme
utilisée.
Coupleur PALM
9 PALM:
Cerfacs, Toulouse, France.
9 Pourquoi PALM ?
¾
¾
¾
¾
¾
¾
¾
Facile à utiliser: interface graphique.
Gratuit pour les établissements de recherche.
Peu de changement dans les codes sources.
Modélisation parallèle.
Modélisation distribuée.
Utilise le protocole de communication (lamMPI, openMPI).
Propose des outils d’interpolation, de redistributions automatique, de
bibliothèque mathématique (Blas, Lapack, Minimisers …).
Vocabulaire PALM
9 Unité: composant informatique
¾ Code de calcul.
¾Partie d’un code de calcul.
¾Unité prédéfinie (subroutine
fortran, fonction C, C++).
Nombre de proc
32
9 Unité parallèle:
Vocabulaire PALM
9Branche: séquence d’unités et
d’instructions: algorithme
Vocabulaire PALM
9Objet: quantité de donnée produite
ou consommée par une unité.
9Communication: échange d’un
objet entre deux unités.
Les caractéristiques du logiciel PALM
Mécanisme de communication
9 Les communications effectives
sont décrites en reliant les plots dans
l’interface graphique.
9 Poignée de main entre les clients
et les serveurs.
Schéma de communication « end point »
9 Pas de spécification concernant l’unité réceptrice ou
émettrice de l’objet produit ou consommé dans les
codes de calcul.
¾ Dans le code source des unités :
• Production de données : SERVEUR
CALL PALM_Put (…)
• Consommation de données: CLIENT
CALL PALM_Get (…)
Instrumentation du code source Fortran, C ou C++
CALL PALM_Put (’space1’, ’obj1’, time, tag , array, error)
CALL PALM_Get (’space2’, ’obj2’, time, tag , array, error)
Code d’erreur
Variable contenant les données associées
à l’objet
Entier qui indique le tag associé à cette
instance de l’objet
Entier qui indique le time associé à cette
instance de l’objet
Chaîne de caractère contenant le nom de
l’objet
Chaîne de caractère contenant le nom de
l’espace associé à l’objet
Comment un code devient une unité PALM ?
Création de la carte d’identité :
!PALM_UNIT -name Model\
!
-functions { F90 model }\
!
-object_files { Arboressance.o model.o }\
!
-comment { ... }
!
!
!PALM_SPACE -name h\
!
-shape (n,m)\
!
-element_size PL_DOUBLE_PRECISION\
!
-comment { ... }
!
!
!PALM_OBJECT -name h_obj\
!
-intent IN\
-space h\
!
!
-time ON\
-comment { ... }
!
unité
espace
objet
En résumé …
9Trois étapes pour construire une application PALM :
¾ création des unités (instrumentation, carte d’identité).
¾ définition de l’algorithme.
¾ définition du schéma de communication.
+
9Des outils de déboguage et de supervision.
Conclusion PALM …
9 Un logiciel pour gérer des applications complexes de façon
modulaire sans dégrader leurs performances.
9 Une IHM conviviale et simple à utiliser pour intégrer,
présenter et superviser ses applications.
9 Des intérêts multiples :
¾ Faciliter l’évolution et la maintenance d’une application complexe et de
ses composants.
¾ Intégrer aisément des codes extérieurs dans une application (couplage
multi-physique, développement collaboratif, …).
¾ Exploiter au maximum le parallélisme intrinsèque d’une application.
Découplage et couplage des trois sous modèles
de MODCOU
PROGRAM MAIN
9Mode de communications:
Initialisation
¾modules.
¾lecture de fichiers.
Début: boucle temps global
MODSUR
NONSAT
NEWCOU
Fin: boucle temps global
END PROGRAM
Carte d’identité de l’unité BILHY
!PALM_UNIT
-name MAIN_BILHY\
!
-functions {f90 MAIN_BILHY }\
!
-object_files {mode_util_texte.o modd_main_instr.o modd_global.o read_instruction.o \
!
modd_foncprod.o init_foncprod.o foncprod.o write_foncprod.o get_input_pour_foncprod.o cumul_foncprod.o\
!
update_global_fp.o interface_foncprod.o modd_imposed_bilhy.o interface_imposed_bilhy.o interface_bilan_hydrique.o\
!
MAIN_BILHY.o }\
!
-comment {UNITE MODSUR}
!
!PALM_SPACE
-name vect1D_BILHY\
!
-shape (:)\
-element_size PL_DOUBLE_PRECISION\
!
!
-comment {Tableau Qi}
!
!PALM_OBJECT
-name dim_qi \
!
-space one_integer\
!
-intent OUT\
!
-comment {dimension de Qi}
!
!PALM_OBJECT
-name Qi_BILHY\
!
-space vect1D_BILHY\
!
-time PL_NO_TIME\
!
-intent OUT\
!
-comment {Infiltration: Qi calcule par FP}
!
!PALM_OBJECT
-name synchro\
!
-space one_integer\
!
-time PL_NO_TIME\
!
-intent IN\
!
-comment {Synchronisation de l'echange de Qi entre FP et ZNS}
Couplage des trois sous modèles de EAUDYSSEE
Time = OFF
B2
B1
Start ON
Start ON
100
100
MAIN_ZNS
MAIN_BILHY
UNITE NONSAT
UNITE MODSUR
B3
Start ON
end
end
100
MAIN_NEWCOU
UNITE NEWCOU
end
Performance (CPU Time): Time = OFF
PrePALM file : FP_ZNS_NEWCOU.ppl
Out file : /home/goblet/PALM/Couplage_FP_ZNS_NEWCOU_TEMPS_OFF/CODE/palmperf_MAIN_NEWCOU_000.log
Branches:
CPU time
Elapsed time
B1
455 Sec 690000
33.30%
33.29%
B2
456 Sec 520000
33.37%
33.37%
468 Sec 415327
B3
456 Sec 030000
33.33%
33.34%
467 Sec 906527
Total Branches:
1368 Sec 240000
1403 Sec 557114
Units:
CPU time
MAIN_BILHY
1
2 Sec 490000
MAIN_NEWCOU
1
139 Sec 160000
MAIN_ZNS
1
57 Sec 860000
Total Units:
Elapsed time
1.25%
33.24%
69.75%
29.00%
CPU time
234 Sec 114106
Elapsed time
365
0 Sec 080000
8.33%
Qi_ZNS_OUT.MAIN_ZNS
365
0 Sec 280000
29.17%
dim_qi.MAIN_BILHY
1
0 Sec 000000
dim_qi_ZNS.MAIN_ZNS
1
0 Sec 000000
synchro.MAIN_ZNS
365
0 Sec 290000
30.21%
synchro1.MAIN_NEWCOU
365
0 Sec 310000
32.29%
57.03%
28.96%
0 Sec 027206
0.00% 0.00%
0 Sec 000319
9.47%
11 Sec 128088
4.52%
5 Sec 306187
117 Sec 492876
CPU time
Elapsed time
Qi_NEWCOU_IN.MAIN_NEWCOU
365
0 Sec 340000
58.62%
Qi_ZNS_IN.MAIN_ZNS
365
0 Sec 010000
1.72%
dim_qi.MAIN_ZNS
1
0 Sec 000000
0.00% 0.03%
dim_qi_ZNS.MAIN_NEWCOU
1
0 Sec 000000
0.00% 0.01%
synchro.MAIN_BILHY
365
0 Sec 110000
18.97%
synchro1.MAIN_ZNS
365
0 Sec 120000
20.69%
0 Sec 580000
67 Sec 002528
34 Sec 028548
0.00% 0.02%
0 Sec 960000
PALM_Get:
Total PALM_Get:
233 Sec 651052
33.41%
700 Sec 652364
Qi_BILHY.MAIN_BILHY
Total PALM_Put:
232 Sec 887206
33.35%
199 Sec 510000
PALM_Put:
467 Sec 235260
13.57%
38 Sec 958505
27.84%
79 Sec 923163
0 Sec 086852
0 Sec 040558
54.81%
3.74%
157 Sec 341364
10 Sec 725082
287 Sec 075524
Performance (memory): Time = OFF
Branches
B1
B2
B3
Blocks
Units
MAIN_BILHY
MAIN_ZNS
MAIN_NEWCOU
100%
Memory usage
0%
234.209035 sec ( 100.00% total)
Couplage des trois sous modèles de EAUDYSSEE
Time = ON
B1
B2
Start ON
Start ON
100
100
MAIN_BILHY
MAIN_ZNS
UNITE MODSUR
UNITE NONSAT
B3
Start ON
end
end
100
MAIN_NEWCOU
UNITE NEWCOU
end
Performance (CPU Time): Time = ON
Performance (memory): Time = ON
En développement interne
9 Prise en compte des battements de nappe:
¾ Validation et impact sur les transferts de nitrate (Thèse E.
Philippe).
9 Amélioration échange nappe-rivière:
¾ Thèse de C. David. (modèle Rapid à ’’Palmer’’).
¾ Thèse de F. Saleh. (Relation hauteur débit).
¾ Application en Alsace rivière Î nappe (Thèse C. Thierion).
A venir: Couplage avec des modèles
externes
9 Couplage avec la nouvelle version STICS:
¾ Bilan hydrique.
¾ Bilan de nitrate.
¾ Base de données.
9 Couplage avec STICS-PHYTO