La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

État d'avancement de la plate-forme OpenPalm

Présentations similaires


Présentation au sujet: "État d'avancement de la plate-forme OpenPalm"— Transcription de la présentation:

1 État d'avancement de la plate-forme OpenPalm
Réunion d'avancement projet AquiFR 21 avril 2015 État d'avancement de la plate-forme OpenPalm

2 Applications incorporées dans la maquette version du 29 janvier 2015
Plate-forme OpenPalm comprenant: 4 applications EauDyssée : Basse Normandie, Loire, Seine, Somme Pas de temps journalier Résolution de 125 m à 8000 m 1 application Marthe : Poitou-Charente (POC) Pas de temps mensuel Résolution 1000 m Code d'EauDyssée: Instruction PALM pour couplage avec sorties SURFEX Code Marthe: Librairie MARTHE tourne sous PALM

3 Rappel hiérarchie des répertoires
Répertoire des codes AquiFR EauDyssée Marthe Basse Normandie Somme Poitou-Charente Loire Seine EauDyssée : Sortie binaire, texte Palm rundir Marthe : Sortie binaire, texte

4 Rappel carte des applications
mailles mailles Somme Basse Normandie Seine Loire Poitou-Charente

5 Application Palm d'AquiFR version du 29 janvier 2015
Lecture fichier SURFEX grille SAFRAN 8 km sur la France au pas de temps journalier - Variables d'entrées (pas de temps, etc.) : initialement inscrites dans fichiers d'entrée du modèle - Forçage :Infiltration et ruissellement à chaque pas de temps 4 Applications EauDyssée avec directives Palm 1 Application Marthe indépendante Synchronisation des applications à chaque pas de temps Communique 1 entier de synchronisation

6 Application openPalm d'AquiFR version du 21 avril 2015
Marthe est couplé avec instructions Palms au pas de temps journalier - Application sur la Somme - POC en journalier pas encore testé EauDyssée MARTHE Synchronisation des applications à chaque pas de temps Communique 1 entier de synchronisation

7 Application openPalm d'AquiFR version du 21 avril 2015
Regroupement des 4 branches EauDyssée dans 1 seule branche EauDyssée MARTHE EauDyssée tourne en parallèle au sein de la même branche. - nécessite de connaître le répertoire de run de l'application en fonction du numéro de processeur

8 Regroupement des 4 branches EauDyssée
Mise en parallèle d'EauDyssée dans sa carte d'idendité !PALM_UNIT -name eaudyssee\ ! functions {F90 SUB_ODIC}\ ! object_files {../EauDyssee/src/dir_obj/libeaudyssee_aquifer.a}\ ! parallel mpi\ ! minproc 1\ ! maxproc 10\ ! comment {librairie ODIC} ! !PALM_OBJECT -name ruissellement\ ! space NULL\ ! localisation REPLICATED_ON_ALL_PROCS\ ! intent IN\ ! time ON\ ! comment {Ruissellement SURFEX 1D} …...... Constante nb_appli_odic définie dans prepalm (nb_appli_odic = 4 pour 4 applications tournant en parallèle sur 4 processeurs)

9 Regroupement des 4 branches EauDyssée
Au tout début du code d'EauDyssée : Lecture des répertoires de simulations de chaque applications à partir d'un fichier texte nommé “working_directory_eaudyssee” : Nb_mailles Working_directory /rundir/somme /rundir/loire /rundir/basse_normandie /rundir/seine_6_couches_ISBA_AGS OPEN(10, FILE='working_directory_eaudyssee', FORM='FORMATTED', STATUS='OLD') READ(10, *) DO I = 1, nb_appli_odic READ(10, '(I5, 1x, A100)') INBSOU, YTABAPPLI(I) ENDDO CLOSE(10) Changement de répertoire de run en fonction du numéro de processeur numéroté de 0 à 3 CALL MPI_Comm_rank(PL_COMM_EXEC, il_rank, il_err) CALL CHDIR(TRIM(YTABAPPLI(il_rank + 1)))

10 Application openPalm d'AquiFR version du 21 avril 2015
Regroupement des 4 branches EauDyssée dans 1 seule branche EauDyssée MARTHE Communique un tableau contenant les hauteurs de nappe les échanges nappe-rivière

11 Transmission des données hauteurs nappe et échange nappe/rivière
EauDyssée parallèle sur 1 branche Somme Seine Loire Basse normandie Nb de mailles 63226 41609 37620 37667 4 tableaux produits de taille (2, nombre de mailles de l'appli) Coté Palm, utilisation d'un distributeur de type « custom » décrivant la répartition des tableaux locaux de chaque appli dans le tableau global. Distributeur Palm Hauteur nappe Qnappe/riv 1 tableau global de taille (2, nbsou_global) Constante Palm : nbsou_global = nombre de mailles totales des applis =

12 Transmission des données hauteurs nappe et échange nappe/rivière
Modification de la carte d'idendité d'EauDyssée !PALM_DISTRIBUTOR -name distr_aquifer\ ! type custom\ ! shape (nbsou_global, 2)\ ! nbproc nb_appli_odic\ ! function distr_aquifer\ ! object_files {distr_aquifer.o domain_aquifer.o}\ ! comment {} ! !PALM_SPACE -name size_aquifer\ ! shape (nbsou_global, 2)\ ! element_size PL_DOUBLE_PRECISION\ ! comment {size aquifer} !PALM_OBJECT -name hauteur_qnapriv\ ! space size_aquifer\ ! distributor distr_aquifer\ ! localisation DISTRIBUTED_ON_ALL_PROCS\ ! time ON\ ! intent OUT\ ! comment {Matrice hnappe et qnapperiv} Description du distributeur basé sur les subroutines Fortran distr_aquifer.f90 et domain_aquifer.f90 Dans l'objet transmis, indication du distributeur utilisé et localisation

13 Transmission des données hauteurs nappe et échange nappe/rivière
Dans le code EauDyssée, un seul PUT du tableau local de l'appli à rajouter à chaque pas de temps en remplacement de l'entier de synchronisation : ZHQ_OUT(:, 1) = ZH_PIEZO ZHQ_OUT(:, 2) = ZQNAPPE_RIV cl_object = 'hauteur_qnapriv' cl_space = 'size_aquifer' CALL PALM_PUT(cl_space, cl_object, JSTEP, PL_NO_TAG, ZHQ_OUT, il_err) Plus besoin de « tags » dans les communications → répartition des vecteurs locaux gérés dans « distr_aquifer.f90 » et « domain_aquifer.f90 »

14 Transmission des données hauteurs nappe et échange nappe/rivière
Unité de Synchro OPEN(10, FILE='sortie_test.bin', FORM='unformatted', ACCESS='SEQUENTIAL', ACTION='write') DO JSTEP=1, INB_STEP ! cl_space = 'size_aquifer' cl_object = 'hauteur_qnapriv' CALL PALM_GET(cl_space, cl_object, JSTEP, PL_NO_TAG, ZHQ_OUT, il_err) WRITE(10) ZHQ_OUT ! Marthe DO ITAG = 1, nb_appli_marthe cl_space = 'one_integer' cl_object = 'synchro_Marthe' CALL PALM_GET(cl_space, cl_object, JSTEP, ITAG, ISYNCHRO_MARTHE, il_err) ENDDO …. CLOSE(10)

15 Résumé 4 applications EauDyssée en journalier : Basse Normandie, Loire, Seine, Somme 2 applications Marthe : 1 Somme en journalier intégré à la nouvelle version 1 POC en mensuel  Ajout d'une application EauDyssée : Rajouter une ligne au fichier “working_directory_eaudyssee” Modifier la constante Palm nb_appli_odic Modifier la constante Palm nbsou_global

16 Suite Modifications à incorporer dans le code de Marthe
Regroupement des sorties, 1 seule branche Couplage avec le vrai SURFEX S'occuper du réseau hydrographique (maillage différent du réseau souterrain) Méthodologie similaire au maillage souterrain Identifier les recouvrements Adaptation des post-procs au nouvelles sorties regroupées

17 Installation du code via GIT
Git : logiciel de gestion de version Partage du code et des applications entre tous les développeurs du projet Chacun peut soumettre ses modifications de manière cohérentes En ligne de commande sous ubuntu, git est disponible dans les dépôts : sudo apt-get install git Sous linux, le code peut etre récupéré à partir d'un serveur via la commande (accès ssh) : git clone On obtient un répertoire aquifr contenant tous le projet AquiFR.

18 Installation du code via GIT
Répertoire à la racine du projet aquifr: External : contient les fichiers .tgz correspondant à mpich, palm et prepalm 4 répertoires des sources d'Eaudyssée, de Marthe, de Synchro et Forçage Palm qui contient l'appli aquifr.ppl Results contenant les post-proc python Rundir contenant les répertoires de chaque applications Fichier ebauche_install_aquifr.sh Installation de l'application décrite dans le fichier ebauche_install_aquifr.sh : Compilation de PALM Compiltation d'EauDyssée Compilation de Marthe Génération du makefile Palm et compilation du palm_main


Télécharger ppt "État d'avancement de la plate-forme OpenPalm"

Présentations similaires


Annonces Google