wiki:Modipsl_execFAQ

Version 28 (modified by acosce, 11 years ago) (diff)

--

FAQ Exécution

Index?/Exécution/FAQ Exécution



Le parallelisme et les fichiers Bands

Dans LMDZ si le nombre de points par tâche MPI est distribué de façon uniforme, l'équilibrage de charge n'est pas optimum. Il existe une option adjust (dans lmdz.card) qui permet d'indiquer au code que l'on veut qu'il "ajuste" sa répartition des points. Pour cela lors d'un run on mesure le temps passé dans chaque partie du code et on définit la répartition optimum. Cette nouvelle répartition est stockée alors dans le fichier Bands_res_nbProc.dat (dépend de la configuration – de la machine – de la résolution – du nombre de proc).
Idéalement il faut faire une pré-simulation permettant de créer ce fichier (~ 3 mois de simulation). Puis ensuite utiliser ce fichier pour la simulation "maître". Le fichier est stocké dans le répertoire $DMFDIR/IGCM_OUT/nom_config/.../nom_simul/ATM/Debug/
Voir ici pour l'utilisation de adjust et du fichier Bands.

A retenir pour IPSLCM5A : Par défaut, le couplé IPSLCM5A, peut tourner sur un nombre quelconque de processeurs. Il crée lui-même le fichier Bands lors des 3 premiers mois de la simulation puis utilise celui du dernier mois. Il est possible d'utiliser le fichier Bands d'une autre simulation, voir paramétrage dans COMP/lmdz.card.

ATTENTION : Pour être certain d'obtenir les même résultats entre deux simulations il faut annuler l'ajustement et la création des fichiers Bands. Il faut utiliser pour les deux simulations le MÊME fichier Bands.



Comment décrypter le fichier Script_Output

A la fin de chaque période de simulation un fichier Script_Output correspondant est créé.
IMPORTANT : d'une manière générale si votre simulation s'arrête vous pouvez rechercher dans ce fichier le mot clef "IGCM_debug_CallStack" qui sera précédé par une ligne expliquant l'erreur que vous rencontrez.

Exemple : 

--Debug1--> IGCM_comp_Update

IGCM_debug_Exit :  IGCM_comp_Update missing executable create_etat0_limit.e

!!!!!!!!!!!!!!!!!!!!!!!!!!
!! IGCM_debug_CallStack !!
!------------------------!

Plus précisément voici comment interpréter ce fichier :
Il comporte trois parties :

  • copies des fichiers d'input
  • exécution
  • copies des fichiers d'output

Ces trois parties sont délimités ainsi :

#######################################
#       ANOTHER GREAT SIMULATION      #
#######################################

 1ère partie

#######################################
#      DIR BEFORE RUN EXECUTION       #
#######################################

 2ème partie

#######################################
#       DIR AFTER RUN EXECUTION       #
#######################################

 3ème partie

Si à la fin de votre simulation le fichier run.card indique qu'il y a eu un problème vous devez analyser votre fichier Script_Output. Il y a plusieurs solutions :

  • si le fichier s'arrête avant le début de la deuxième partie c'est que soit vous n'avez pas effacé un fichier run.card existant, soit l'un des fichiers d'input que vous demandez n'existe pas.
  • si le fichier s'arrête durant la deuxième partie c'est certainement que vous n'avez pas demandé assez de mémoire ou de temps CPU
  • si le fichier est entier c'est soit qu'il y a une erreur lors de l'exécution, soit qu'il y a un problème lors de la copie des outputs.

Si le message suivant apparaît dans la deuxième partie du fichier, c'est qu'il y a un problème lors de l'exécution.

========================================================================
EXECUTION of : mpirun -f ./run_file > out_run_file 2>&1
Return code of executable : 1
IGCM_debug_Exit :  EXECUTABLE

!!!!!!!!!!!!!!!!!!!!!!!!!!
!! IGCM_debug_CallStack !!
!------------------------!

!------------------------!
IGCM_sys_Cp : out_run_file xxxxxxxxxxxx_out_run_file_error
========================================================================

Si au contraire vous avez le message suivant

========================================================================
EXECUTION of : mpirun -f ./run_file > out_run_file 2>&1
========================================================================

Il y a alors deux solutions :

  • dans 90% des cas c'est que le problème s'est produit lors de la copie des outputs.
  • dans les 10% restant c'est que vous êtes passé par un garde fou du modèle et que celui-ci s'est fini proprement mais avant

la fin de la simulation. Dans ce cas là si votre modèle propose un journal de sortie autre que celui de la simulation il faut le consulter. Par exemple, le fichier de sortie de l'océan est stocké sur le serveur de fichiers sous ce nom là :

IGCM_sys_Put_Out : ocean.output xxxxxxxx/OCE/Debug/xxxxxxxx_ocean.output

Sinon (par exemple pour LMDZ ou INCA) votre journal de sortie est confondu avec celui de la simulation et celui-ci n'a pas eu le temps d'être copié sur l'espace de stockage. Si votre simulation a tourné sur le $SCRATCHDIR vous pouvez le récupérer là, sinon vous devez relancer votre simulation sur le $SCRATCHDIR Sur mercure par défaut elle est sur le $TMPDIR. Pour cette opération il faut modifier la variable RUN_DIR_PATH voir ICI.



Écraser une simulation

  1. Vous devez effacer dans votre répertoire d'expérience les fichiers stack_error (si existant) et run.card.
  2. Vous devez effacer les répertoires $CCCSTOREDIR/IGCM_OUT/_config_/(...)/_nom_simul_ et $CCCWORKDIR/IGCM_OUT/_config_/(...)/_nom_simul_ au CCRT ou $HOMEGAYA/IGCM_OUT/_config_/(...)/_nom_simul_ à l'IDRIS.
  3. Si il existe, vous devez effacer le répertoire REBUILD/_config_/_nom_simul_ contenant les fichiers à reconstruire, dans le scratchdir ou workdir.
  4. Effacer le répertoire $SCRATCHDIR/IGCM_OUT/_config_/(...)/_nom_simul_ au CCRT
  5. Si vous aviez changé la variable RUN_DIR_PATH vous devez également effacer le répertoire correspondant à votre simulation sur votre scratchdir.
  6. Relancer le job



Prolonger ou relancer une simulation

  1. Dans le fichier config.card modifiez la date de fin de simulation, pour le cas où vous voulez prolonger une simulation.
  2. Dans le fichier run.card vous devez :
    • vérifier que les variables PeriodDateBegin et PeriodDateEnd correspondent bien à votre prochaine période de simulation (ex: si vous venez de finir le mois de mai 2000 vous devez avoir PeriodDateBegin= 20000601 et PeriodDateEnd= 2000630)
    • indiquer PeriodState = OnQueue ou Running
  3. Dans le Job vous devez modifier le numéro du fichier de sortie pour qu'il ne se plante pas en cherchant à remplacer un fichier Script_Output existant. Par défaut c'est Script_Output_NomJob.0001, vous pouvez le changer par Script_Output_NomJob.CumulPeriod (vous trouverez CumulPeriod dans run.card)
  4. Si vous êtes dans le cas où votre simulation s'est arrêtée au milieu d'un mois et vous voulez la relancez, il faut effacer les fichiers créés pour ce mois là dans vos archives ($CCCSTOREDIR/IGCM_OUT/etc...). Vous pouvez utiliser le script modipsl/libIGCM/clean_month.job pour cela. Mode d'emploi :
     cd $SUBMIT_DIR (ie modipsl/config/IPSLCM5A/EXP00)
     cp ../../../libIGCM/clean_month.job . ; chmod 755 clean_month.job  # une seule fois pour toute
     ./clean_month.job   #   Repondre aux questions. 
    qsub Job_EXP00
    



Comment préparer une nouvelle expérience ?

Pour cela il suffit de recopier le répertoire EXP00, dans son ensemble, dans un autre répertoire.
Par commodité on appellera ce répertoire du même nom que l'expérience (JobName dans config.card).

cd modipsl/config/IPSLCM5A
cp -pr EXP00 MONEXP
cd MONEXP
rm -f run.card Sc* Jo* # nécessaire si une simu a déjà tourné dans le répertoire EXP00
vi config.card # Changer ce qu'on veut et en particulier JobName
../../util/ins_job # installera un nouveau Job_MONEXP et dira qu'il ne peut pas réinstaller les jobs de post-traitements qui existent déjà. Pas grave.

ATTENTION : si vous modifiez vos codes et recompilez durant une simulation c'est ce nouvel exécutable qui sera pris en compte pour la fin de la simulation



Démarrer depuis une autre simulation

Dans le fichier config.card vous devez préciser les différents paramètres de la section Restarts :

#========================================================================
#D-- Restarts -
[Restarts]
#D- If you want a GENERAL RULE FOR ALL COMPONENTS RESTARTS, put this flag to 'y'
OverRule=y
#D- Last day of the experience used as restart
RestartDate=1869-12-30
#D- Define restart simulation name
RestartJobName=CD1
#D- Path Server Group Login
RestartPath=${ARCHIVE}/IGCM_OUT/IPSLCM5A/DEVT/pdControl


Si la simulation a été faite par une autre personne, vous devez bien préciser le répertoire :

RestartPath=/u/rech/lab/plabxxx/IGCM_OUT/IPSLCM5A/DEVT/pdControl # ou /dmnfs/contxxx/login/IGCM_OUT/IPSLCM5A/DEVT/pdControl

IMPORTANT : la librairie sait très bien gérer la différence de traitement entre un path dmnfs avec les fichiers de restart accessibles directement et un path storedir avec des fichiers de restart tarés. La gestion se fait à partir du path que vous indiquez, il n'y a rien d'autre à préciser.
A noter : vous pouvez séparer les paramètres de redémarrage par composantes. Laisser OverRule=n et utiliser alors les différents paramètres Restart, RestartDate, RestartJobName et RestartPath pour chaque composante (section). Par exemple pour l'atmosphère :

#D-- ATM -
[ATM]
#
WriteFrequency="1M 1D HF"
# If config_Restarts_OverRule == 'n' all params are read
Restart= y
# Last day of the experience used as restart for this component
RestartDate=1999-12-30
# Define restart simulation name
RestartJobName=2L18
RestartPath=${ARCHIVE}/IGCM_OUT/IPSLCM5A/DEVT/pdControl


Pour avoir exactement les mêmes résultats, il faut prendre le même fichier Bands. Cela se précise dans COMP/lmdz.card avec les paramètres LMDZ_NbPeriod_adjust et LMDZ_Bands_file_name ainsi :

LMDZ_NbPeriod_adjust=0
# To force usage of this Bands file, put LMDZ_NbPeriod_adjust=0 and replace XXXXXXX by Restart Job Name
LMDZ_Bands_file_name=${ARCHIVE}/IGCM_OUT/IPSLCM5/CEPRO0/ATM/Debug/CEPRO0_Bands_96x95x39_3prc.dat_3



Comment vérifier que les sorties sont complètes ? (PAS VALABLE TGCC)

Depuis le 19 janvier 2011, le script check_expe_files_size.sh disponible dans le répertoire libIGCM/libIGCM_post ou là : check_expe_files_size.sh permet de repérer les trous dans des séries de fichiers rangés selon la nomenclature IPSL.

Options :

  • L'option -Z permet d'étudier les tailles des fichiers et de repérer si les tailles des mois de janvier (février, ...) sont différentes entre les années. Fonctionne aussi avec les années bissextiles. Attention au temps d'execution qui dépasse largement 10 mn dans ce cas.
  • L'option -I xxxx, permet d'arrêter la vérification des noms à cette année là. Utile dans le cas d'une simulation en route avec des rebuild non faits.
  • L'option -R permet de parcourir l'arborescence.

Machines testées : CCRT (répertoire $DMFDIR) et IDRIS (gaya directement) -- Ne fonctionne pas pour l'archivage sur le storedir (TGCC)

Exemples d'utilisation :

check_expe_files_size.sh SRF/Output/MO # verification des noms du repertoire SRF/Output/MO
check_expe_files_size.sh -Z SRF/Output/MO # verification des noms et des tailles des fichiers du repertoire
check_expe_files_size.sh -R -S "*/Output" # verification des noms des fichiers pour toute une simulation IPSL
check_expe_files_size.sh -Z -R -S "*/Output" # verification des noms et des tailles des fichiers pour toute une simulation IPSL
check_expe_files_size.sh -I 1949 -R -S "*/Output" # verification jusuque a l annee 1949 incluse des noms des fichiers pour une simulation IPSL

Exemple avec erreur. A noter le code retour non nul :

Example (with errors) :
> pwd
IGCM_OUT/IPSLCM5A/DEVT/pdControl/SX81210 
> check_expe_files_size.sh  -Z -R ATM/Output
quiet : 0 recursion : 1 - examsize : 1 - dir - ATM/Output -- subdir -- maxyearp1 : 9999
48 files proceeded.
Years occurring : 2000
Years tested : 2000
File name patterns and holes (if any) :
                                       ./DA/SX81210_YYmmdd_YYmmdd_1D_histday.nc : 
                                        ./HF/SX81210_YYmmdd_YYmmdd_HF_histhf.nc : 
                                       ./MO/SX81210_YYmmdd_YYmmdd_1M_histmth.nc : 200011
                                    ./MO/SX81210_YYmmdd_YYmmdd_1M_histmthNMC.nc : 

Size verification per month (if different) :
                                       ./DA/SX81210_YYmmdd_YYmmdd_1D_histday.nc : 
                                        ./HF/SX81210_YYmmdd_YYmmdd_HF_histhf.nc : 
                                       ./MO/SX81210_YYmmdd_YYmmdd_1M_histmth.nc : [11]
                                    ./MO/SX81210_YYmmdd_YYmmdd_1M_histmthNMC.nc : 
> echo $?
1



Comment boucher un trou cad relancer une simulation pour refaire les fichiers d'un mois complet? (PAS VALABLE TGCC)

Saperlipopette, j'ai perdu un fichier! Il s'agit du mois d'octobre 1932 de la simulation ARGENT. Que dois-je faire pour le recréer?

Pour boucher un trou, il faut refaire exactement la même simulation, c'est à dire :

  • sur le serveur de fichiers :
    • supprimer (ou mettre de côté) les autres fichiers du même mois. Utiliser le suffixe 19321031 (ou bien 19321030 si vous êtes en calendrier 360d) pour avoir aussi les fichiers de type Restart.
      cd IGCM_OUT/IPSLCM5A/DEVT/pdControl/ARGENT
      find . -name '*19321031*' -exec rm -f {} \;
      
  • sur la machine de calcul :
    • créer un repertoire dédié spécial : cp -pr ARGENT ARGENTREDO
    • dans ce nouveau répertoire, modifier le fichier run.card pour avoir les bonnes valeurs des paramètres suivants :
      OldPrefix= ARGENT_19320930
      PeriodDateBegin= 1932-10-01
      PeriodDateEnd= 1932-10-31
      CumulPeriod= xxx # Attention mettre la bonne valeur cad la valeur associé au même mois dans le fichier run.card témoin (ARGENT)
      PeriodState= OnQueue
      
    • modifier le fichier config.card pour ne faire qu'un seul mois ie qu'une seule Period (ou ce qu'il faut pour boucher le trou). Ne pas modifier DateBegin :
      DateEnd= 1932-10-31
      
    • modifier le fichier config.card pour ne pas faire de post-traitement de type TS ou SE :
      ...
      TimeSeriesFrequency=NONE
      ...
      SeasonalFrequency=NONE
      
    • vérifier que l'on prendra exactement le même fichier Bands.
      • Si c'est au delà de la 3ème itération pas de problème, c'est fait automatiquement.
      • Sinon, dans le fichier COMP/lmdz.card, modifier les paramètres LMDZ_NbPeriod_adjust et LMDZ_Bands_file_name ainsi :
        LMDZ_NbPeriod_adjust=0
        # To force usage of this Bands file, put LMDZ_NbPeriod_adjust=0 and replace XXXXXXX by Restart Job Name
        LMDZ_Bands_file_name=${ARCHIVE}/IGCM_OUT/IPSLCM5/CEPRO0/ATM/Debug/CEPRO0_Bands_96x95x39_3prc.dat_3
        
    • relancer la simulation :
      vi run.card # vérifier encore une fois
      vi Job_ARGENT # vérifier les parametres de temps et les noms des Scripts de sortie
      qsub Job_ARGENT 
      



Comment relancer une simulation à l'identique pour récupérer quelques fichiers de sortie disparus ? (PAS VALABLE TGCC)

Ceci est une variante de la question précédente. Elle permet de faire une autre simulation à l'identique mais à côté. Pas besoin de détruire les fichiers sur le serveur de fichiers, on recrée tous les fichiers du mois en question.

Exemple : refaire tourner v3.historicalAnt1 car 3 fichiers ont disparu pour 19640930.

Actions :

  • Sur le serveur de fichiers : créer les fichiers Restart, mesh_mask et Bands.
    ## Directory
    mkdir ....IGCM_OUT/IPSLCM5A/REDO/historicalAnt/v3.historicalAnt1REDO
    cd ....IGCM_OUT/IPSLCM5A/REDO/historicalAnt/v3.historicalAnt1REDO
    mkdir -p ATM/Restart CPL/Restart ICE/Restart MBG/Restart OCE/Restart SBG/Restart SRF/Restart
    # Restart
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/ATM/Restart/v3.historicalAnt1_19640831_restart.nc ATM/Restart/v3.historicalAnt1REDO_19640831_restart.nc
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/ATM/Restart/v3.historicalAnt1_19640831_restartphy.nc      ATM/Restart/v3.historicalAnt1REDO_19640831_restartphy.nc
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/CPL/Restart/v3.historicalAnt1_19640831_flxat.nc   CPL/Restart/v3.historicalAnt1REDO_19640831_flxat.nc
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/CPL/Restart/v3.historicalAnt1_19640831_sstoc.nc   CPL/Restart/v3.historicalAnt1REDO_19640831_sstoc.nc
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/ICE/Restart/v3.historicalAnt1_19640831_restart_icemod.nc ICE/Restart/v3.historicalAnt1REDO_19640831_restart_icemod.nc
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/MBG/Restart/v3.historicalAnt1_19640831_restart_trc.nc     MBG/Restart/v3.historicalAnt1REDO_19640831_restart_trc.nc
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/OCE/Restart/v3.historicalAnt1_19640831_restart.nc OCE/Restart/v3.historicalAnt1REDO_19640831_restart.nc
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/SBG/Restart/v3.historicalAnt1_19640831_stomate_rest.nc    SBG/Restart/v3.historicalAnt1REDO_19640831_stomate_rest.nc
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/SRF/Restart/v3.historicalAnt1_19640831_sechiba_rest.nc    SRF/Restart/v3.historicalAnt1REDO_19640831_sechiba_rest.nc
    # mesh_mask
    mkdir -p OCE/Output
    cd OCE/Output
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/OCE/Output/v3.historicalAnt1_mesh_mask.nc v3.historicalAnt1REDO_mesh_mask.nc
    cd ../..
    # Bands
    mkdir -p ATM/Debug
    cd ATM/Debug
    ln -s ../../../../../PROD/historicalAnt/v3.historicalAnt1/ATM/Debug/v3.historicalAnt1_Bands_96x95x39_3prc.dat_3 v3.historicalAnt1REDO_Bands_96x95x39_3prc.dat_3
    cd ../..
    
  • Sur la machine de calcul:
    • créer un repertoire dédié spécial :
      cp -pr  v3.historicalAnt1 v3.historicalAnt1REDO
      
    • dans ce nouveau répertoire, modifier le fichier run.card pour avoir les bonnes valeurs des paramètres suivants :
      OldPrefix= v3.historicalAnt1REDO_19640831
      PeriodDateBegin= 1964-09-01
      PeriodDateEnd= 1964-09-30
      CumulPeriod= xxx # Attention mettre la bonne valeur cad la valeur associé au même mois dans le fichier run.card témoin (ARGENT)
      PeriodState= OnQueue
      
    • modifier le fichier config.card pour ne faire qu'un seul mois (ie qu'une seule Period), ne pas faire les Post-traitements et lancer rebuild à la fin du mois refait.
      JobName=v3.historicalAnt1REDO
      ...
      SpaceName=REDO
      ...
      DateEnd= 1964-09-30
      ...
      RebuildFrequency=1M
      ...
      TimeSeriesFrequency=NONE
      ...
      SeasonalFrequency=NONE
      
    • relancer la simulation :
      vi run.card # vérifier encore une fois
      mv Job_v3.historicalAnt1 Job_v3.historicalAnt1REDO
      vi Job_v3.historicalAnt1REDO # vérifier les parametres de temps et les noms des Scripts de sortie
      qsub Job_v3.historicalAnt1REDO 
      
  • une fois le job fini, vérifier que les solver.stat sont bien identiques :
    sdiff  OCE/Debug/v3.historicalAnt1REDO_19640901_19640930_solver.stat /dmnfs11/cont003/p86maf/IGCM_OUT/IPSLCM5A/PROD/historicalAnt/v3.historicalAnt1/OCE/Debug/v3.historicalAnt1_19640901_19640930_solver.stat
    



Pourquoi je trouve le mot clé Fatal dans le fichier run.card ?

Si vous trouvez le mot clé Fatal dans run.card, cela peut être dû à un job de post-traitement de type pack_xxx qui s'est planté et qui a stoppé la simulation pour vous laisser le temps de stabiliser la simulation.

La chaine 'STOP HERE INCLUDING THE COMPUTING JOB' se trouve dans la sortie du job de pack en question.

Cela peut être dû à des quotas atteints, à des jobs de type rebuild mal terminé ou à d'autres raisons à découvrir dans le script de sortie du job de pack concerné.

Comment repérer les simus à refaire éventuellement lorsque le CCRT prévient qu'une bande est irrécupérable et listent les fichiers perdus? (PAS VALABLE TGCC)

Si vous avez reçu un message du CCRT donnant une liste de fichiers perdus à cause d'un accident de bande, vous aurez envie d'avoir une synthèse des périodes impactées et des éventuels relance de simus à faire. Le script : check_ccrt_files.sh disponible là : TOOLS/CHECKscripts permet de faire cela.

  1. Il suffit de lui passer en paramètre le nom d'un fichier contenant la liste des fichiers perdus.
  2. Il répond en donnant l'intervalle complet et en détaillant les fichiers perdus par famille.

Exemple :

check_ccrt_files.sh liste

Exemple d'affichage :

check_ccrt_files.sh liste

HOL03
5 files proceeded.
===> Année à refaire? ==> Years occurring : 1787
File name patterns and holes (if any) :
/dmnfs11/cont003/login/SORTIES_CPL_IPSL/HOL03/Atm/Output/HF/HOL03_1m_YYmmdd_YYmmdd_histhf.nc : 178709
/dmnfs11/cont003/login/SORTIES_CPL_IPSL/HOL03/Atm/Output/MO/HOL03_1m_YYmmdd_YYmmdd_dyn_hist_ave.nc : 178709
/dmnfs11/cont003/login/SORTIES_CPL_IPSL/HOL03/Atm/Output/MO/HOL03_1m_YYmmdd_YYmmdd_dynzon.nc : 178711-178712
/dmnfs11/cont003/login/SORTIES_CPL_IPSL/HOL03/Atm/Output/MO/HOL03_1m_YYmmdd_YYmmdd_histmth.nc : 178712
HOL04
5 files proceeded.
===> Année à refaire? ==> Years occurring : 2252
File name patterns and holes (if any) :
/dmnfs11/cont003/login/SORTIES_CPL_IPSL/HOL04/Oce/Output/MO/HOL04_1m_YYmmdd_YYmmdd_grid_T.nc : 225209-225210
/dmnfs11/cont003/login/SORTIES_CPL_IPSL/HOL04/Oce/Output/MO/HOL04_1m_YYmmdd_YYmmdd_grid_U.nc : 225210
/dmnfs11/cont003/login/SORTIES_CPL_IPSL/HOL04/Oce/Output/MO/HOL04_1m_YYmmdd_YYmmdd_grid_V.nc : 225210
/dmnfs11/cont003/login/SORTIES_CPL_IPSL/HOL04/Oce/Output/MO/HOL04_1m_YYmmdd_YYmmdd_grid_W.nc : 225210
...



Comment refaire un mois d'une simulation qui a tourné sur DMFDIR en stockant les résultats sur STORE?

Exemple sur la simulation past1000

login sur titane: ssh titane.ccc.cea.fr

1455-12 à refaire sur STORE, original sur dmnfs
1477-12 à refaire sur STORE, original sur dmnfs
1517-11 à refaire sur STORE, original sur dmnfs

cd $DMFDIR/IGCM_OUT/IPSLCM5A/TEST/PD_TEST

dmget LMCMP5/???/Restart/*14551130* LMCMP5/???/Restart/*14771130* LMCMP5/???/Restart/*15171030* LMCMP5/OCE/Output/LMCMP5_mesh_mask.nc LMCMP5/ATM/Debug/LMCMP5_Bands_96x95x39_26prc.dat_*

tar cvf $SCRATCHDIR/IGCM_OUT/IPSLCM5A/TEST/PD_TEST/RESTART.REDO.past1000.tar LMCMP5/???/Restart/*14551130* LMCMP5/???/Restart/*14771130* LMCMP5/???/Restart/*15171030* LMCMP5/OCE/Output/LMCMP5_mesh_mask.nc LMCMP5/ATM/Debug/LMCMP5_Bands_96x95x39_26prc.dat_*

cd $SCRATCHDIR/IGCM_OUT/IPSLCM5A/TEST/PD_TEST

tar xvf RESTART.REDO.past1000.tar

cd /work/cont003/p25khod/IPSLCM5A/modipsl/config/IPSLCM5A/LMCMP5_newlibIGCM.REDO

==> éditer run.card

==> PackFrequency=NONE dans config.card

==> qsub

#========================================================================
#D-- Post -
[Post]
#D- Do we rebuild parallel output, this flag determines
#D- frequency of rebuild submission (use NONE for DRYRUN=3)
RebuildFrequency=1Y
#D- Do we rebuild parallel output from archive (use NONE to use SCRATCHDIR as buffer)
RebuildFromArchive=NONE
# Pas de PACK
PackFrequency=NONE
#D- If you want to produce time series, this flag determines
#D- frequency of post-processing submission (NONE if you don't want)
TimeSeriesFrequency=NONE
#D- If you want to produce seasonal average, this flag determines
#D- the period of this average (NONE if you don't want)
SeasonalFrequency=NONE
#D- Offset for seasonal average first start dates ; same unit as SeasonalFrequency
#D- Usefull if you do not want to consider the first X simulation's years
SeasonalFrequencyOffset=0

Création de l'état initial pour LMDZOR

Pour plus d'information, voir LMDZOR_v4.

Si vous n'avez pas de fichier d'états initiaux pour le modèle couplé celui-ci les crée automatiquement. Ce qui n'est pas le cas pour les configurations forcées contenant LMDZ (LMDZOR, LMDZORINCA, LMDZEPROBUS). Dans ces cas vous trouverez un répertoire CREATE/ en plus de votre répertoire d'expérience. Nous allons prendre pour exemple la config LMDZOR_v4.
Le répertoire CREATE/ est composé de :

  • un fichier config.card
  • un fichier config.card_Interannuel
  • un sous répertoire COMP/

L'utilisateur peut décider soit de créer un état initial et conditions aux limites pour un run climatologique c'est à dire qu'il utilisera pour chaque année de simulation le même fichier de conditions aux limites. Soit de créer un état initial et conditions aux limites pour un run inter-annuel ou run nudgé c'est à dire qu'à chaque année de simulation correspondra un fichier de conditions aux limites différents prenant en compte les données de sst et de glaces de mer (sic). Nous allons voir maintenant comment procéder dans ces deux cas.

  • RUN CLIMATOLOGIQUE

Pour un run climatologique, utilisez les config.card et lmdz.card avec le suffix _Climat.

cd modipsl/config/LMDZOR_v4/CREATE
ln -s config.card_Climat config.card             >>>> choix du config.card et lmdz.card avec un lien ou copie
cd COMP; ln -s lmdz.card_Climat lmdz.card; cd .. 
../../../util/ins_job                            >>>> creation du job Job_ELC-$RESOL ($RESOL = la resolution selon la compilation, ex 96x95x39) dans le répertoire CREATE/
ccc_msub Job_ELC-$RESOL                          >>>> soumission du job tel quel 

L'état initial(start.nc et startphy.nc) est le fichier de condition aux limites(limit.nc) ainsi créés seraient sur le serveur de stockage (gaya ou DMFDIR) dans le répertoire IGCM_OUT/LMDZOR/ELC-$RESOL. L'état initial se trouve ensuite dans ATM/Outout/Restart et le fichier de conditions aux limites dans le répertoire ATM/Output/Boundary.

Ensuite avant de lancer votre simulation vous devez vérifier que le fichier modipsl/config/LMDZOR_v4/LMDZOR/COMP/lmdz.card renvoie bien vers ces fichiers

[InitialStateFiles]
List=   (${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Output/Restart/${CREATE}_clim_start.nc, start.nc) \
        (${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Output/Restart/${CREATE}_clim_startphy.nc, startphy.nc)
[...]
[BoundaryFiles]
ListNonDel= (${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Output/Boundary/${CREATE}_clim_limit.nc, limit.nc) \
[...]


  • RUN INTER-ANNUEL OU NUDGE

Dans ce cas là vous devez utiliser les fichiers suffixés _Interannuel. Ils permettent de créer les fichiers de conditions aux limites pour une série d'années spécifié en avance, en utilisant les données AMIP. Certains paramètres dans config.card_Interannuel doivent être considère et éventuellement modifié : CalendarType, DateBegin, DateEnd. Le paramètre CalendarType decide combien de jours le fichier limit.nc va contenir. Pour 360jours, mets CalendarType=360D, pour 365jours mets CalendarType=noleap et pour 365 ou 366 selon les années bissextille, mets CalendarType=leap. Par contre, pour cette expérience CREATE, il ne faut pas modifier le paramètre PeriodLength=1Y car create_etat0_limit créer toujours des fichiers d'un an.

cd modipsl/config/LMDZOR_v4/CREATE
ln -s config.card_Interannuel config.card        >>>> choix du config.card et lmdz.card avec un lien ou copie
cd COMP; ln -s lmdz.card_Interannuel lmdz.card; cd .. 
vi config.card_Interannuel                       >>>> modifier DateBegin, DateEnd et le CalendarType
../../../util/ins_job                            >>>> creation du job Job_ELI-$RESOL ($RESOL = la resolution selon la compilation, ex 96x95x39) dans le répertoire CREATE/
ccc_msub Job_ELI-$RESOL                          >>>> soumission du job tel quel 

Les fichiers créés seraient stocké dans le répertoire IGCM_OUT/LMDZOR/ELI-$RESOL. Contrairement au cas climatologique vous obtenez un trios "start.nc, startphy.nc et limit.nc par an de simulation."

Pour votre simulation vous devrez comme précédemment vérifier les chemins de start et startphy dans le fichier lmdz.card. Mais attention cette fois ci pour le fichier de conditions aux limites il faudra l'indiquer dans la section List et non pas ListNonDel de BoundaryFiles.

[InitialStateFiles]
List=  (${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Output/Restart/${CREATE}_${year}1230_start.nc, start.nc) \
       (${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Output/Restart/${CREATE}_${year}1230_startphy.nc, startphy.nc)
[...]
[BoundaryFiles]
List=(${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Output/Boundary/${CREATE}_${year}1230_limit.nc, limit.nc) 


Remarque : Si vous souhaitez utiliser d'autres jeux de données que les données AMIP vous devez modifier le fichier modipsl/config/LMDZOR_v4/CREATE/lmdz.card et peut-etre aussi le modèle LMDZ.



Passage d'une simulation couplée à une simulation forcée

Vous avez fait tourner une simulation couplée IPSLCM5A et vous voulez faire tourner la simulation forcée LMDZOR_v4 équivalente. Voici les différentes étapes :

1) Extraire la configuration forcée LMDZOR_v4 dans le répertoire modipsl/config ou se trouve le repertoire IPSLCM5A :

>cd modipsl/config
>svn co http://forge.ipsl.jussieu.fr/igcmg/svn/CONFIG/LMDZOR/branches/LMDZOR_v4 LMDZOR_v4
>ls
IPSLCM5A  LMDZOR_v4

2) Modifier le fichier LMDZOR_v4/LMDZOR/config.card en fonction de la simulation à lancer (Nom, Dates,...)

3) Créer les jobs de la nouvelle configuration LMDZOR_v4

>cd modipsl/util
>./ins_job

4) Créer le fichier de condition aux limites en utilisant les SST du modèle couplé(voir ). Attention, pour avoir le même trait de côtes que dans la simulation couplée, il est necessaire d'utiliser pour la création des conditions aux limites le fichier o2a.nc utilisé par la simulation couplée. Pour cela, ajouter le chemin du fichier o2a.nc dans CREATE/COMP/lmdz.card en lieu et place du commentaire. Par exemple :

(/dmnfs/cont003/p86ipsl/IGCM/INIT/ATM/IPSLCM5A/ORCA2.3xLMD9695/o2a.nc, o2a.nc)

5) Indiquer la résolution de la composante LMDZOR (qui correspond à la résolution de la simulation couplée).

>cd modipsl/config/LMDZOR_v4
>cat ../IPSLCM5A/.resol
ORCA2xLMD9695-L39
RESOL_ATM_3D=96x95x39
>echo "LMD9695-L39" > .resol
>echo "RESOL_ATM_3D=96x95x39" >> .resol

6) Lancer la simulation

>cd modipsl/config/LMDZOR_v4/LMDZOR
puis soumission du Job



Comment désactiver STOMATE dans IPSLCM5 ou LMDZOR ?

Attention! Il n'y a pas eu validation scientifique des résultats. Pour désactiver stomate dans le couplé IPSLCM5A, il faut :

  • supprimer la composante SBG dans le fichier config.card :
    -SBG= (stomate, ORCHIDEE_1_9_4_AR5)
    -SBG= ("", "")
    
  • dans COMP/orchidee.card ajouter la recherche du fichier lai2D.nc :
    +ListNonDel= (${R_BC}/SRF/${config_UserChoices_TagName}/lai2D.nc, .)
    
  • dans PARAM/orchidee.def, ajouter le paramètre pour demander la lecture du fichier LAI_MAP :
    +# Read a LAI map (12 monthly values)
    +LAI_MAP = y
    +# default = n
    



Comment lancer un run guidé (nudge) ?

Ce paragraphe s'applique aux configurations contenant LMDZ Il faut :

  • activer l'option ok_guide dans le fichier lmdz.card (cette option permet d'activer le flag_correspondant dans le fichier PARAM/guide.def)
  • vérifier que dans la partie BoundaryFiles il y a bien les fichiers de vents d'indiqués
    Exemple : 
    [BoundaryFiles]
    List= ....\
          (/dmnfs/p24data/ECMWF96x72/AN${year}/u_ecmwf_${year}${month}.nc, u.nc)\
          (/dmnfs/p24data/ECMWF96x72/AN${year}/v_ecmwf_${year}${month}.nc, v.nc)\
    
  • choisir le bon calendrier dans config.card (leap)



Comment regarder/récupérer/utiliser les fichiers sur dods

  • A l'IDRIS, il faut aller sur le web à l'adresse : http://dodsp.idris.fr/ et choisir son login, sa configuration, sa simulation puis enfin la composante ATM (puis le sous répertoire Output ou Analyse) ou encore ATLAS ou MONITORING.
  • Au CCRT, il faut aller sur le web à l'adresse :
  • Une fois trouvé un fichier netcdf (suffixe .nc), on peut le récupérer en cliquant dessus ou l'analyser avec les fonctionalités DODS. Pour cela il faut à son adresse ajouter cgi-bin/nph-dods juste après l'adresse www. Exemples :
     ciclad : ferret ...
     > use "http://dods.extra.cea.fr/cgi-bin/nph-dods/data/mon_login/..."
     > use "http://dodsp.idris.fr/cgi-bin/nph-dods/mon_login/..."
    
    Plus d'informations là : http://dods.ipsl.jussieu.fr/