Architecture de Polyphemus - PowerPoint PPT Presentation

About This Presentation
Title:

Architecture de Polyphemus

Description:

Preprocessing: int r t g n rer des donn es interm diaires communes plusieurs ... configurations tr s pr cises (TP ParisTech). Ajout d'un mod le lagrangien de diffusion de ... – PowerPoint PPT presentation

Number of Views:89
Avg rating:3.0/5.0
Slides: 23
Provided by: cer65
Category:

less

Transcript and Presenter's Notes

Title: Architecture de Polyphemus


1
Architecture de Polyphemus
  • Vue densemble.
  • Comment trouver ses repères?
  • Comment envisager des adaptations mineures?
  • A propos des outils de développement.
  • A venir.

2
Vue densemble
  • Lorganisation de la future version 1.4
  • reflète les 3 étapes suivantes
  • preprocessing,
  • processing,
  • post-processing.
  • reflète la modularité.

3
/AtmoData
/Talos
/SeldonData
/atmopy
/common
/driver
/models
/modules
/wgrib /eqsam /isorropia /isorropia_aec /ne
wran
/include
/preprocessing /ic /bc /bio /dep emissi
ons /ground /meteo
/processing /assimilation /castor /decay
/gaussian /global /local /nesting /plume-i
n-grid /racm /radm /siream /siream-aec
/postprocessing /ensemble /optics /waterplume
/config (/config) /raw data
/data /results
4
Repère structuration
  • Preprocessing intérêt à générer des données
    intermédiaires communes à plusieurs scenarii ou
    traitements particuliers (calcul densemble...).

5
Un sous-répertoire par type de traitement. A un
fichier .cpp correspond un programme exécutable
(partout dans Polyphemus). Ex Dans meteo, on
compilera meteo.cpp pour obtenir meteo qui
exploite des données ECMWF. Si on a des données
MM5, on utilisera MM5-meteo obtenu à partir de
MM5-meteo.cpp.
/preprocessing /ic /bc /bio /dep emissi
ons /ground /meteo
6
Repère structuration
  • Preprocessing intérêt à générer des données
    intermédiaires communes à plusieurs scenarii ou
    traitements particuliers (calcul densemble...).
  • Processing programme qui traitera le modèle
    considéré (gaussien, eulérien, ...) avec une
    méthode donnée.

7
Idem que preprocessing mais uniquement des .cpp
avec les fichiers de configuration exemples
/preprocessing /ic /bc /bio /dep /emiss
ions /ground /meteo
/processing /assimilation /castor /decay /
gaussian /global /local /nesting /plume-in
-grid /racm /radm /siream /siream-aec
8
Repère structuration
  • Preprocessing intérêt à générer des données
    intermédiaires communes à plusieurs scenarii ou
    traitements particuliers (calcul densemble...).
  • Processing programme qui traitera le modèle
    considéré (gaussien, eulérien, ...) avec une
    méthode donnée.
  • Post-processing en python pour profiter, soit de
    linteractivité (ipython), soit de
    lautomatisation (écriture de scripts).

9
/preprocessing /ic /bc /bio /dep /emiss
ions /ground /meteo
/processing /assimilation /castor /decay /
gaussian /global /local /nesting /plume-in
-grid /racm /radm /siream /siream-aec
/postprocessing /ensemble /optics /waterplume
10
Repère structuration
  • Dans le répertoire /include
  • Ce qui est voué à être partagé (librairies,
    fonctions, etc...)
  • Ce qui est externe (newran, wgrib, isorropia...)

11
/wgrib /eqsam /isorropia /isorropia_aec /ne
wran
/AtmoData
/Talos
/SeldonData
/atmopy
/common
/driver
/models
/modules
/include
/preprocessing /ic /bc /bio /dep /emis
sions /ground /meteo
/processing /assimilation /castor /decay /
gaussian /global /local /nesting /plume-in
-grid /racm /radm /siream /siream-aec
/postprocessing /ensemble /optics /waterplume
12
Repère architecture du processing
  • 3 niveaux
  • Le  driver  (ex résolution simple ou calcul
    densemble ou assimilation de données etc...) est
    lancé par sa méthode Run ( Driver.Run() ).
  • Opère sur
  • le(s)  model(s)  (ex équation de chimie
    transport) est intégré à chaque pas de temps par
    sa méthode Forward ( Model.Forward() ).
  • Qui est composé si nécessaire
  • des  modules  (ex les termes pris en compte
    dans léquation de chimie transport advection,
    diffusion, chimie, etc) également intégés par
    Forward ( Module.Forward() )

13
Repère Illustration par polair3d.cpp
Driver
Model
Modules
14
/AtmoData
/Talos
/SeldonData
/atmopy
/common
/driver /assimilation /common /local /uncertai
nty
/models .cxx, .hxx
/modules /aerosol /chemistry /common /transpor
t
/wgrib /eqsam /isorropia /isorropia_aec /newran
/include
/preprocessing /ic /bc /bio /dep /emissions
/ground /meteo
/processing /assimilation /castor /decay /
gaussian /global /local /nesting /plume-in
-grid /racm /radm /siream /siream-aec
/postprocessing /ensemble /optics /waterplume
15
Repère schématiquement
  • Dans le .cpp
  • On inclut les fichiers sources contenant les
    modules, le modèle, la méthode de sauvegarde et
    le pilote.
  • On déclare Modèle(module1, module2, ...).
  • On declare Pilote(modèle, méthode de sauvegarde).

16
Clés changer la chimie de RACM en RADM
17
Clés changer la chimie de RACM en RADM?
18
Clés passer à un modèle gaussien?
include "AtmoData.hxx" include
"PlumeDriver.cxx" include "GaussianPlume.cxx" in
clude "BaseOutputSaver.cxx" ... int main(int
argc, char argv) typedef double real
typedef GaussianPlumeltrealgt ClassModel
PlumeDriverltreal, ClassModel, BaseOutputSaverltreal
, ClassModelgt gt Driver(argv1)
Driver.Run() ...
Pas de modules pour le gaussien, tout est
implémenté dans le modèle.
Cette fois, le driver est spécifique car des
instructions propres au gaussien y sont (lecture
de la météo dans un fichier .dat spécial).
19
Clés une sauvegarde spécifique?
  • Dans /include/driver/common se trouvent les
    outils disponibles qui touchent au driver,
    notamment les procédures de sauvegarde, dans le
    sous-répertoire output_saver.
  • Partir dun .cxx qui est le plus proche de ce que
    lon veut et en faire une copie pour
    modification.
  • Déclarer la classe obtenue au niveau de
    BaseOutputSaverinit() et dans le fichier de
    configuration.

20
Contribuer
  • Pour quun développement puisse devenir une
    contribution Polyphemus, il faut assurer
  • 1/ la cohérence avec larchitecture existante,
  • 2/ le respect des conventions de codage,
  • 3/ un intérêt potentiel suffisant pour dautres
    que soi,
  • 4/ et si le développement est conséquent, un test
    associé.

21
Outils de développement
  • Pour compiler, utiliser de préférence SCons qui
    est plus portable et maintenable que make! (une
    version locale de scons est incluse dans la
    distribution)
  • Valgrind peut être utile pour les fuites de
    mémoire et lanalyse du temps de calcul.
  • Kdiff3 offre une interface conviviale pour
    analyser les différences entre deux fichiers
    texte.
  • Utiliser les trackers de bugs et de requêtes sur
    le site du projet Polyphemus dans Gforge (onglet
     Suivi ) et les listes de diffusion.
  • Pour des développeurs plus aguerris et réguliers,
    lensemble du projet est accessible et modifiable
    sur le dépôt svn de la Gforge Inria.

22
Dans les semaines et les mois à venir...
  • Interface graphique pour lancer et exploiter des
    calculs en local ou sur un serveur distant via un
    navigateur web. Dans un premier temps, limité à
    des configurations très précises (TP ParisTech).
  • Ajout dun modèle lagrangien de diffusion de
    particules.
  • Passage au format netcdf.
Write a Comment
User Comments (0)
About PowerShow.com