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