wiki:Modipsl_postFAQ

Version 3 (modified by acosce, 13 years ago) (diff)

--

FAQ Post-traitements

Index/Post-traitements/FAQ Post-traitements



Où tournent les post-traitements?

Les post-traitements tournent généralement sur les frontales des calculateurs. Il s'agit de travaux systématiques de traitement de fichiers qui n'ont pas leur place sur les calculateurs. Peu d'optimisation, peu de parallélisation massive, ... Sur chaque centre, les machines de calcul ont leur frontale privilégiée.

Centre Calculateur Frontale
CCRT mercure SX8 frontale TX7 mercure
CCRT mercure SX9 cesium
CCRT platine cesium
CCRT titane cesium
IDRIS brodie ulam
IDRIS vargas ulam

Attention pour le passage de mercureSX9 (ou mercureSX8) à Cesium il y a une procédure à suivre.



Comment vérifier que les post-traitements sont bien passés?

  • sur ulam, les sorties des post-traitements sont là : $WORKDIR/IGCM_OUT/IPSLCM5A/Ma_simulation
  • sur la frontale TX7, ils sont là : $SCRATCHDIR/IGCM_OUT/IPSLCM5A/Ma_simulation
  • sur cesium, ils sont là : $SCRATCHDIR/IGCM_OUT/IPSLCM5A/Ma_simulation
  • sur platine et titane, ils sont là : $SCRATCHDIR/IGCM_OUT/IPSLCM5A/Ma_simulation

On trouvera dans ces répertoires les fichiers de sorties des jobs : rebuild, ts, se, atlas. Sur cesium 2 fichiers standard error (.e) et standard output (.o) par job. A noter : Les commandes de mise sur dods sont faites à la fin du job de monitoring ou à la fin de chaque atlas.



Comment relancer les rebuild?

Pour relancer à partir des rebuild, il faut aller sur la frontale, dans le répertoire modipsl/libIGCM (l'original ou celui synchronisé dans ~MIRROR/xxxxxx/modipsl/libIGCM), modifier le job : rebuild_fromArchive.job en précisant les paramètres, le lancer sur la frontale. llsubmit sur ulam, ccc_msub sur cesium. Paramètres à modifier :

libIGCM=${libIGCM:=/path/to/your/libIGCM}
REBUILD_DIR=${REBUILD_DIR:=/path/to/your/TMP/REBUILD/FILES}
NbRebuildDir=${NbRebuildDir:=12}
PeriodDateBegin=${PeriodDateBegin:=18901201}
config_UserChoices_JobName=${config_UserChoices_JobName:=name_of_the_job}
R_SAVE=${R_SAVE:=/path/to/your/ARCHIVE/FILES}

Attention : avant de lancer le job vérifiez que son entête correspond bien à la frontale sur laquelle vous travaillez (en particulier si vous le lancer sur une autre frontale que celle de votre machine de calcul). Pour cela comparez l'entête de votre job et celle qui est indiquée dans libIGM/AA_rebuild_fromWorkdir (ou autre).



Comment ajouter une variable dans les Time Series?

Pour ajouter une nouvelle Time Serie il suffit d'ajouter son nom à la série de variables existantes, en prenant soin de la mettre avec les variables similaires : 2D ou 3D.



Comment superposer des courbes de monitoring ?

Audio
Mémo :

Aller sur :
http://webservices.ipsl.jussieu.fr/monitoring/

Rentrer dans l'onglet 1 :
http://dods.extra.cea.fr/cgi-bin/nph-dods/data/p86cadul/OL2
Pousser "List directories".
Pour ajouter des simulations à l'IDRIS, retourner sur l'onglet 1
Rentrer : http://dods.idris.fr/cgi-bin/nph-dods/rpsl003/IPSLCM5A/DEVT/pdControl
Puis Pousser "Append dircetories" pour avoir sur l'onglet suivant les simulations CCRT et IDRIS.
Dans l'onglet 2, sélectionner les simus : 27, 29, 30 et 33 (shift click ou control click pour en choisir plusieurs)
Puis Pousser "search files".
Dans l'onglet 3, choisir une variable (SBG_BIOMASS) puis pousser sur "Validate" 
puis "Validate" dans l'onglet 4 et "Prepare and Run the ferret script".
Ensuite , apparait une page appelée
"http://webservices.ipsl.jussieu.fr/monitoring/script.php" avec un joli
multi-monitoring sur la biomasse
cliquer sur "Run script on server" pour lancer toutes les figures.
Dans l'aide 'Help' est décrite la manip pour enregistrer le script ferret et
le faire tourner en local (ça fonctionne bien).

Amusez-vous bien !

Pour sélectionner des simus sur les 2 centres, il faut revenir à l'étape 1 et appuyer sur append directories pour les ajouter.



Comment ajouter une figure dans les monitoring?

Les monitoring sont paramétrés là: ~compte_commun/atlas/ Par exemple pour LMDZ : monitoring01_lmdz_LMD9695.cfg

Il est possible de modifier un monitoring en créant un répertoire POST locale à la configuration, en recopiant un fichier .cfg et en le modifant à sa convenance. Il y a 2 exemples dans le couplé. Voir post-traitements spécifiques

Attention : pour faire une opération entre deux variables il faut impérativement la délimiter avec des parenthèses :

#-----------------------------------------------------------------------------------------------------------------
#  field | files patterns | files additionnal | operations | title | units | calcul of area
#-----------------------------------------------------------------------------------------------------------------
 nettop_global | "tops topl"                  | LMDZ4.0_9695_grid.nc | "(tops[d=1]-topl[d=2])" | "TOA. total heat flux (GLOBAL)"         | "W/m^2"     | "aire[d=3]" 



Comment relancer les post-traitements ?

Les différentes étapes sur un exemple (la simulation couplée ST11 de la configuration IPSLCM5A a tourné sur la machine SX9 mercure du CCRT et ses post-traitements sont effectués sur la machine cesium du CCRT).

  • On prépare le terrain depuis la machine sur laquelle la simulation a tourné :
    cd  $HOME; mkdir -p POST/ST11 ; cd POST/ST11
    
  • On recopie les cartes caractérisant les composantes (depuis le répertoire ou la simulation a été lancée)
    cp -r $PATH_MODIPSL/ST11/config/IPSLCM5A/ST11/COMP .
    
  • On recopie les post-traitements spécifiques à la configuration (depuis le répertoire ou la simulation a été lancée)
cp -r $PATH_MODIPSL/ST11/config/IPSLCM5A/ST11/POST .
  • On recopie les cartes spécifiques (config.card et run.card) à la simulation (depuis le répertoire où la simulation a été lancée)
cp -r $PATH_MODIPSL/ST11/config/IPSLCM5A/ST11/config.card .
cp -r $PATH_MODIPSL/ST11/config/IPSLCM5A/ST11/run.card .
  • On recopie les jobs de post-traitement à soumettre :
    cp $PATH_MODIPSL/ST11/libIGCM/rebuild_fromArchive.job .
    cp $PATH_MODIPSL/ST11/libIGCM/create_ts.job .
    cp $PATH_MODIPSL/ST11/libIGCM/create_se.job .
    

ou bien si on est dans le cas RebuildFromArchive=NONE

cp $PATH_MODIPSL/ST11/libIGCM/rebuild_fromWorkdir.job .
cp $PATH_MODIPSL/ST11/libIGCM/create_ts.job .
cp $PATH_MODIPSL/ST11/libIGCM/create_se.job .
  • Maintenant on peut se connecter à la machine de post-traitement Cesium. Comme les $HOME sont communs à toutes les machines, les copies que l'on vient de faire y sont visibles.
  • On adapte les jobs à soumettre en modifiant certaines variables :

Dans tous les jobs à lancer (rebuild_fromArchive.job, create_ts.job et create_se.job), il faut modifier :

StandAlone=true
libIGCM=${HOME}/MIRROR/ST11/libIGCM # Pointe vers le répertoire libIGCM de l'expérience

Dans rebuild_fromArchive.job, il faut modifier :

PeriodDateBegin=20191201 # Date de fin de la série à rebuilder
NbRebuildDir=12 # Nombre de repertoires de la série à rebuilder jusqu'à la  PeriodDateBegin 
config_UserChoices_JobName=ST11
R_SAVE=${DMFDIR}/IGCM_OUT/IPSLCM5A/DEVT/pdControl/${config_UserChoices_JobName}
REBUILD_DIR=${R_SAVE}/TMP

ou bien si on est dans le cas RebuildFromArchive=NONE il faut modifier le rebuild_fromWorkdir.job :

PeriodDateBegin=20191201 # Date de fin de la série à rebuilder
NbRebuildDir=12 # Nombre de repertoires de la série à rebuilder jusqu'à la  PeriodDateBegin 
config_UserChoices_JobName=ST11
R_SAVE=${DMFDIR}/IGCM_OUT/IPSLCM5A/DEVT/pdControl/${config_UserChoices_JobName}
REBUILD_DIR=${R_SAVE}/TMP
MASTER=mercure # ou bien titane
libIGCM=${HOME}/MIRROR/ST11/libIGCM # Pointe vers le répertoire libIGCM de l'expérience
libIGCM_SX = # POinte vers le répertoire libIGCM utilisé sur la machine MASTER

Dans create_ts.job, il faut modifier :

PeriodDateEnd=20191230 # date de fin des time-series a créer
CompletedFlag=20091230 # date de fin des times-series déjà existantes (si tel est le cas)
TsTask=2D  # 2D or 3D
RebuildFrequency=true

Dans create_se.job, il faut modifier :

PeriodDateEnd=20191230 # date de fin de la décennie a traiter
  • Lancement des jobs de post-traitement :
ccc_msub rebuild_fromArchive.job
ccc_msub create_ts.job
ccc_msub create_se.job

ou bien si on est dans le cas RebuildFromArchive=NONE

ccc_msub rebuild_fromWorkdir.job
ccc_msub create_ts.job
ccc_msub create_se.job

Attention : avant de lancer le job vérifiez que son entête correspond bien à la frontale sur laquelle vous travaillez (en particulier si vous le lancer sur une autre frontale que celle de votre machine de calcul). Pour cela comparez l'entête de votre job et celle qui est indiquée dans libIGM/AA_rebuild_fromWorkdir (ou autre).



Comment utiliser !TimeSeries_Checker.job?

!TimeSeries_Checker.job est un script (qui se lance en interactif) qui vérifie les Séries temporelles (TS) existantes et relance les jobs create_TS nécessaires pour reconstruire les TS manquantes. C'est donc un utilitaire de post-traitement qui se lance depuis la machine de post-traitement. Voir question précédente.

Les différentes étapes sur un exemple (la simulation couplée MYEXP de la configuration IPSLCM5A a tourné sur la machine SX9 mercure du CCRT et ses post-traitements sont effectués sur la machine cesium du CCRT).

  • On se met sur la machine cesium et on prépare le terrain (voir question précédente) :
    Cesium > cd $WORKDIR; mkdir -p POST/MYEXP ; cd POST/MYEXP
    
  • On recopie les cartes caractérisant les composantes (depuis le répertoire ou la simulation a été lancée). Voir aussi question précédente.
    Cesium> scp -pr mercure:... MYEXP/COMP .
    Cesium> scp -pr mercure:... MYEXP/POST .
    Cesium> scp -r mercure:... MYEXP/config.card .
    
  • On recopie les jobs de post-traitement à soumettre :
    Cesium> scp mercure:.../libIGCM/create_ts.job .
    Cesium> scp mercure:.../libIGCM/TimeSeries_Checker.job .
    
  • On adapte !TimeSeries_Checker.job en modifiant certaines variables :
    libIGCM=${libIGCM:=...MYEXP/modipsl/libIGCM} ==> libIGCM sur cesium!!!!
    SpaceName=${SpaceName:=DEVT}
    ExperimentName=${ExperimentName:=pdControl}
    JobName=${JobName:=MYEXP}
    CARD_DIR=${CARD_DIR:=${CURRENT_DIR}}
    
  • Lancement de !TimeSeries_Checker.job :
cesium> ./TimeSeries_Checker.job

ou mieux encore , en ksh :

cesium> ./TimeSeries_Checker.job 2>&1 | tee TSC_OUT   =====> en ksh pour garder la trace dans un fichier
cesium> grep Batch TSC_OUT   =====> pour repérer l'ensemble des jobs lancés



Comment faire une moyenne saisonnière sur 100 ans?

Ceci est possible depuis libIGCM_v1_10 cad depuis le 13/12/2010.

Comment faire une moyenne saisonnière sur 100 ans? Le job create_multi_se est là pour ça. Il faut le lancer sur le serveur de post-traitement après avoir vérifié que les différentes décennies étaient présentes sur le serveur de fichiers (SE_checker).

Notez que l'atlas de ces 100 ans sera également créé. Voir exemple de l'atlas de 100 ans de piControl2 là : SE 2000 2099

  1. si ce n'est déjà fait, installer un répertoire spécial post-traitement. Voir ICI
  2. recopier create_se.job, SE_checker.job et create_multi_se.job
  3. vérifier/modifier dans create_se.job les variables :
    libIGCM=${libIGCM:=.../POST_CMIP5/libIGCM_v1_10/modipsl/libIGCM}
    
  4. vérifier que les décennies sont toutes présentes.
  5. vérifier/modifier les variables dans SE_checker.job:
    libIGCM=${libIGCM:=.../POST_CMIP5/libIGCM_v1_10/modipsl/libIGCM} 
    SpaceName=${SpaceName:=PROD}
    ExperimentName=${ExperimentName:=piControl}
    JobName=${JobName:=piControlMR1}
    CARD_DIR=${CARD_DIR:=${CURRENT_DIR}}
    
  6. lancer en interactif : ./SE_checker.job la vérification. Les jobs create_se.job nécessaires seront lancés. Exemple :
     ./SE_Checker.job
    
    ====================================================
    Where do we run ? cesium21
    Linux cesium21 2.6.18-194.11.4.el5 #1 SMP Tue Sep 21 05:04:09 EDT 2010 x86_64
    ====================================================
    
    sys source cesium Intel X-64 lib.
    
    --Debug1--> DefineVariableFromOption : config_UserChoices
    --------------Debug3--> config_UserChoices_JobName=piControlMR1
    --------------Debug3--> config_UserChoices_CalendarType=noleap
    --------------Debug3--> config_UserChoices_DateBegin=1800-01-01
    --------------Debug3--> config_UserChoices_DateEnd=2099-12-31
    
    --Debug1--> DateBegin/End for SE : 1800_1809
    --Debug1--> ATM
    --Debug1--> SRF
    --Debug1--> SBG
    --Debug1--> OCE
    --Debug1--> ICE
    --Debug1--> MBG
    --Debug1--> CPL
    ...
    --Debug1--> DateBegin/End for SE : 2030_2039
    --Debug1--> ATM
    --Debug1--> 2 file(s) missing for ATM :
    --Debug1--> piControlMR1_SE_2030_2039_1M_histmth.nc
    --Debug1--> piControlMR1_SE_2030_2039_1M_histmthNMC.nc
    --Debug1--> SRF
    --Debug1--> 1 file(s) missing for SRF :
    --Debug1--> piControlMR1_SE_2030_2039_1M_sechiba_history.nc
    --Debug1--> SBG
    --Debug1--> 2 file(s) missing for SBG :
    --Debug1--> piControlMR1_SE_2030_2039_1M_stomate_history.nc
    --Debug1--> piControlMR1_SE_2030_2039_1M_stomate_ipcc_history.nc
    --Debug1--> OCE
    --Debug1--> 4 file(s) missing for OCE :
    --Debug1--> piControlMR1_SE_2030_2039_1M_grid_T.nc
    --Debug1--> piControlMR1_SE_2030_2039_1M_grid_U.nc
    --Debug1--> piControlMR1_SE_2030_2039_1M_grid_V.nc
    --Debug1--> piControlMR1_SE_2030_2039_1M_grid_W.nc
    --Debug1--> ICE
    --Debug1--> 1 file(s) missing for ICE :
    --Debug1--> piControlMR1_SE_2030_2039_1M_icemod.nc
    --Debug1--> MBG
    --Debug1--> 3 file(s) missing for MBG :
    --Debug1--> piControlMR1_SE_2030_2039_1M_ptrc_T.nc
    --Debug1--> piControlMR1_SE_2030_2039_1M_diad_T.nc
    --Debug1--> piControlMR1_SE_2030_2039_1M_dbio_T.nc
    --Debug1--> CPL
    --Debug1--> 2 file(s) missing for CPL :
    --Debug1--> piControlMR1_SE_2030_2039_1M_cpl_atm.nc
    --Debug1--> piControlMR1_SE_2030_2039_1M_cpl_oce.nc
    --------Debug2--> Submit create_se  for period 2030-2039
    IGCM_sys_MkdirWork : .../POST_CMIP5/piControl/piControlMR1/OutScript
    IGCM_sys_QsubPost : create_se
    Submitted Batch Session 179472
    ...
    
  7. attendre la fin des jobs create_se
  8. recopier create_multi_se.job
  9. Vérifier/Modifier les variables :
    libIGCM=${libIGCM:=.../POST_CMIP5/libIGCM_v1_10/modipsl/libIGCM}
    
  10. si besoin, paramétrer le nombre de décennies dans config.card. 50Y ou 50 ans par défaut. Ajouter cette ligne dans la section POST cad à la fin après le mot-clé [POST]
    MultiSeasonalFrequency=100Y
    
  11. lancer le job create_multi_se.job : ccc_msub create_multi_se.job
  12. Les années prises en compte seront les dernières cad celles entre DateEnd (pris dans config.card du répertoire local) et DateEnd - MultiSaesonalFrequency.

Les moyennes sont stockées dans les répertoires Analyse des différentes composantes dans les sous-répertoires SE_100Y. Par exemple : ATM/Analyse/SE_100Y/

Attachments (1)

Download all attachments as: .zip