wiki:ModipslBeginner

Version 39 (modified by acosce, 16 years ago) (diff)

--

MODIPSL for beginner

(Auteurs : Anne Cozic, Marie-Alice Foujols)


MODIPSL pour les débutants

MODIPSL est l'interface d'accès aux modèles de l'IPSL. Cette page résume ce qu'un nouvel utilisateur de MODIPSL doit connaître.
Cette page veut rassembler les informations pour les nouveaux utilisateurs et pointer vers les pages plus complètes de chaque configuration ou de chaque outil quand nécessaire.
N'hésitez pas à consulter la présentation du cours "modipsl" ppt (ou pdf). Les transparents 24 à 48 reprennent avec des schémas une grande partie des informations qui vous seront données ci-dessous.


Table des matières




Environnements de calculs



Extraire modipsl

Lecture seule

svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl

Pour vous simplifiez la vie et éviter de retaper cette ligne de commande à chaque nouvelle extraction de modipsl, nous vous conseillons de vous créer un alias :

alias svn_ano='svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl'

La commande d'extraction devient alors juste

svn_ano

Mode administrateur

svn co svn+ssh://yourlogin@forge.ipsl.jussieu.fr/ipsl/forge/projets/igcmg/svn/modipsl/trunk modipsl

D'autres commandes en bas de cette page : http://forge.ipsl.jussieu.fr/igcmg/wiki/WikiStart

Pour en savoir plus sur SVN



Presentation des repertoires

Après avoir extrait Modipsl vous avez un répertoire contenant 7 sous-répertoires :

  • bin/
  • config/
  • doc/
  • lib/
  • modeles/
  • tmp/
  • util/

Tous ces répertoires sont vides excepté le répertoire doc/ contenant le texte de la licence CECILL (license sous laquelle sont placés les modèles de l'IPSL) et le répertoire util/ qui contient les scripts nécessaire à une installation complète de n'importe quelle configuration disponible des modèles de l'IPSL.

mod.def         >>>>>> Définition pour chaque configuration de leurs composantes et de leurs tags
model           >>>>>> Extraction des modèles validés disponibles
ins_make        >>>>>> Installation et configuration des Makefiles 
ins_job         >>>>>> Installation et configuration des scripts de lancement

Voir le transparent 26 de la présentation suivante ppt



Liste des configurations

Via modipsl vous pouvez avoir accès à un grand nombre de configurations regroupant différents modèles de l'IPSL. Pour connaître cette liste il vous suffit dans le répertoire util/ de passer la commande suivante :

cd modipsl/util
./model -h 

Pour avoir plus d'informations sur une configuration en particulier (modèles utilisés, versions CVS ou SVN utilisées ...) il faut passer la commande

./model -h nom_de_la_config

Exemple avec LMDZ4OR_v2 :

>> ./model -h LMDZ4OR_v2

>> model : LMDZ4OR_v2
 
LMDZ4OR_v2 configuration with parallel LMDZ4 and ORCHIDEE
working configuration
Official beta release
IOIPSL/src svn tags/v2_1_1
LMDZ4 tag LMDZ4_V3_1
ORCHIDEE tag orchidee_1_9_1
LMDZ4OR_v2 svn trunk
libIGCM HEAD
 
model manager email address : Abderrahmane.Idelkadi@lmd.jussieu.fr
 
Component 1 : IOIPSL/tags/v2_1_1/src
Tag       1 : HEAD
System    1 : svn
Server    1 : http://forge.ipsl.jussieu.fr/igcmg/svn
Directory 1 : IOIPSL/src
Local Dir 1 : modeles
Component 2 : ORCHIDEE
Tag       2 : orchidee_1_9_1
System    2 : cvs
Server    2 : sechiba@cvs.ipsl.jussieu.fr:/home/ssipsl/CVSREP
Directory 2 : .
Local Dir 2 : modeles
Component 3 : LMDZ4
Tag       3 : LMDZ4_V3_1
System    3 : cvs
Server    3 : lmdzbrowse@cvs.lmd.jussieu.fr:/home/cvsroot
Directory 3 : .
Local Dir 3 : modeles
Component 4 : CONFIG/trunk/LMDZ4OR_v2
Tag       4 : HEAD
System    4 : svn
Server    4 : http://forge.ipsl.jussieu.fr/igcmg/svn
Directory 4 : LMDZ4OR_v2
Local Dir 4 : config
Component 5 : libIGCM
Tag       5 : ?
System    5 : cvs
Server    5 : anonymous@cvs.ipsl.jussieu.fr:/home/ioipsl/CVSROOT
Directory 5 : .
Local Dir 5 : .

La première partie les modèles utilisés dans la configuration ainsi que leurs numéros de version sur CVS ou SVN. Ensuite est donnée l'adresse e-mail du responsable de cette configuration, puis tous les paths des composantes.



Travailler avec une configuration

Dans ce paragraphe nous prendrons comme exemple le modèle couplé IPSLCM4_v2. Les autres configurations utilisant le nouveau modipsl (IPSL_ESM_V1, LMDZ4OR_v2, LMDZINCA_v2, LMDZORINCA) suivent le même principe. Quand des cas particuliers existent nous vous les indiquerons.


Extraction

cd modipsl/util
./model -h               >>>> indique toutes les configurations dispo
./model IPSLCM4_v2       >>>> on choisi d'extraire la configuration IPSLCM4_v2

Lors de cette extraction plusieurs logins et mots de passe vous seront demandés. Pour les récupérer adressez vous au responsable de la configuration (voir ci-dessus)
Cette commande récupère sur CVS et/ou SVN les différents modèles composant la configuration demandée. Les sources de ces modèles sont installées dans le répertoire modipsl/modeles/. Pour notre exemple vous obtenez les répertoires suivants :

  • modipsl/modeles/IOIPSL/
  • modipsl/modeles/LMDZ4/
  • modipsl/modeles/OPA/
  • modipsl/modeles/ORCHIDEE/
  • modipsl/modeles/UTIL/

Modipsl installe également ce que l'on appelle une configuration. Elle est dans le répertoire modipsl/config/ (ici modipsl/config/IPSLCM4_v2/).
Cette configuration vous permettra de compiler l'ensemble des modèles, puis de lancer une simulation.


Compilation

Avant la première compilation des différents modèles de votre configuration vous devez créer les makefiles adaptés à la machine sur laquelle vous travaillez.

cd modipsl/util
./ins_make

La commande ins_make permet de créer un makefile pour la config. Dans notre exemple modipsl/config/IPSLCM4_v2/Makefile. Ce Makefile contrôle tous les makefiles des différents modèles utilisés.Une fois qu'il est créé vous n'avez pas besoin de le regéner (sauf changement de machine ou d'emplacement de modipsl dans votre architecture).
Vous pouvez ensuite lancer la compilation (résolution par défaut soit ORCA2 et LMDZ 96x71x19) :

cd modipsl/config/IPSLCM4_v2/
gmake

Suivant la configuration sur laquelle vous travaillez le Makefile peut vous proposer différentes résolutions. Pour les connaître vous devez regarder les différentes target dans le fichier Makefile. Pour IPSLCM4_v2 ce sont les suivantes :

  • ORCA2xLMD4443
  • ORCA2xLMD444315
  • ORCA2xLMD444311
  • ORCA2xLMD7245
  • ORCA2lgmxLMD7245
  • ORCA2xLMD9671
  • ORCA2lgmxLMD9671
  • ORCA2xLMD14496
  • ORCA2xLMD144142

Lorsque vous savez quelle résolution vous désirez vous pouvez alors lancer la compilation :

cd modipsl/config/IPSLCM4_v2/
gmake resolution_desirée

par exemple

gmake ORCA2xLMD144142 

Petit truc : A la fin de la compilation le makefile crée un fichier .resol qui contiendra la résolution de la dernière compilation. Une fois ce fichier créé vous pouvez ensuite relancer les compilations juste avec la commande gmake vous n'êtes plus obligé de préciser la résolution.


Lancer une simulation

Cas general

Presentation du repertoire experience

Dans le répertoire modipsl/config/IPSLCM4_v2/ vous trouverez 1 sous répertoires EXP00
Ce répertoire contient les fichiers nécessaires pour lancer une simulation :

  • un fichier config.card
  • un répertoire COMP/
  • un répertoire PARAM/

Le fichier config.card contient la fiche d'identité de votre simulation (nom - dates de début et de fin - calendrier ...). Il contient également les options de démarrage : démarrage depuis les états initiaux (par défaut) ou redémarrage depuis une simulation (à soi ou non). Voir plus d'informations sur les redémarrages pour le couplé IPSLCM4_v2
Le répertoire PARAM/ contient les fichiers de paramètres nécessaires aux modèles
Le répertoire COMP/ contient deux sortes de fichiers : des cartes (.card) et des drivers (.driver). Les drivers ne sont pas à changer, ils indiquent les opérations à faire pour chaque composantes (modèles) de votre configuration. Les cartes elles contiennent les informations nécessaires pour chaque composantes (les fichiers d'états initiaux, les fichiers de conditions aux limites, les fichiers d'émissions ...) ainsi que comment gérer les fichiers sorties des composantes (noms des fichiers que l'on veut conserver, et post-traitement qu'on leur associe)
Vous trouverez plus d'informations sur les cartes là : http://wiki.ipsl.jussieu.fr/wiki_ipsl/IGCMG/libIGCM/DocUtilisateur


Etapes avant la creation du job de simulation

config.card
Avant de créer un job pour votre simulation vous devez indiquer tous les paramètres nécessaires à cette dernière dans le fichier config.card
Voici les rubriques à modifier :

JobName=_nom_simul_
DateBegin=_date_debut_simul_
DateEnd=_date_fin_simul_
PeriodLength= indiquez ici la fréquence de lancement de l'exécutable >>> voir ci-dessous après l'exemple 
JobNumProcTot=_nombre_processeurs

Exemple :

JobName=RUN1
DateBegin=1950-01-01
DateEnd=2000-12-30
PeriodLength=1M
JobNumProcTot=4

!PeriodLength :
PeriodLength correspond à la fréquence des fichiers de sorties de votre modèle. Vous avez le choix entre 1 jour, 5 jours, 1 mois ou 1 an (1D, 5D, 1M ou 1Y). Si vous choisissez 1D cela signifie que au bout d'une année de simulation vous aurez 360 fichiers de sorties. Si vous choisissez 1M vous aurez 12 fichiers de sorties, et si vous choisissez 1Y vous aurez 1 fichier de sortie.
Attention il faut impérativement que PeriodLength ne soit pas plus supérieur à la durée de votre simulation : c'est à dire pour une simulation de 1 mois ne demandez pas une PeriodLength de 1 an.

répertoire COMP
Comme indiqué ci-dessus le répertoire COMP contient une carte par composante (modèle) de votre configuration. Chacune de ces cartes est divisée en différentes parties :

  • [InitialStateFiles] >>>> indique les fichiers d'état initiaux utilisés pour votre simulation (ex start.nc et startphy.nc pour le modèle lmdz)
  • [BoundaryFiles] >>>> indique les fichiers de conditions aux limites (deux parties List pour les fichiers variant avec le temps, et ListNonDel pour ceux qui ne varient pas)
  • [ParametersFiles] >>>> liste des fichiers de paramètres pour le modèle (stockés dans EXP00/PARAM/)
  • [RestartFiles] >>>> liste des fichiers de restart pour le redémarrage du modèle : cette liste ne doit pas être modifiée
  • [OutputText] >>>> liste des fichiers texte en sortie du modèle
  • [OutputFiles] >>>> liste des fichiers netcdf en sortie du modèle avec le post-traitement éventuel
  • [Post_...] >>>> description des différentes post-traitements.

A chaque fois la syntaxe utilisée est la suivante :

exemple :
ListNonDel= (${R_BC}/ATM/${config_UserChoices_TagName}/${RESOL_ATM}/HISTORIQUE/so4.run1850.cdf, .),\

(path_fichier, fichier)
Elle est équivalente à :
cp path_fichier fichier

répertoire PARAM
Ce répertoire contient les fichiers de paramètres des différents modèles. Reportez vous aux documentations scientifiques de chacun de ces modèles pour en connaître les différentes utilisations.

Creation du job

Avant : vérifier le fichier config.card.

cd modipsl/util
./ins_job 

Cette commande recherche tous les fichiers config.card existant dans des sous-répertoires de modipsl et crée les job associés (en reprenant la rubrique JobName du fichier config.card). Si jamais un fichier du même nom (Job_nom_simul) existe déjà alors un message d'avertissement apparait et le job n'est pas écrasé. Vous devez l'effacer au préalable pour pouvoir le recréer.

Après : vérifier le fichier Job_nom_simul

N'oubliez pas de modifier les variables elapstim_req et memsz_job en entête de job si nécessaire (voir documentation sur les machines de calculs de l'IDRIS ou du CCRT).

#PBS -l memsz_job=6.0gb       # limite memoire
#PBS -l elapstim_req=00:30:00 # limite en temps elapsed

Remarque : Pour connaître les temps autorisés sur les différentes queues de la machine vous pouvez utiliser la commande class au CCRT ou news class à l'IDRIS.
Par défaut la simulation tournera sur le disque tmpdir de la machine. Si vous voulez qu'elle ait lieu sur le scratchir, vous devez modifier la variable RUN_DIR_PATH dans le fichier Job_nom_simul

RUN_DIR_PATH=$SCRATCHDIR

Avant de lancer votre simulation il vous reste une dernière étape : vous devez définir la variable PeriodNb dans votre Job. PeriodNb peut être définie comme le nombre maximal de PeriodLength (dans config.card) pouvant être simulée sur le elapstim_req demandé !
exemple :

PeriodLength=1M
elapstim_req=20.00.00
PeriodNb=12             >>>> cela signifie que vous pouvez faire passer 12 mois de simulations durant 20h de temps CPU



Lancement de la simulation

Avant : Vérifier les dates et les options de démarrage du fochier config.card.

Au CCRT
cd modipsl/config/IPSLCM4_v2/EXP00/
ccc_msub Job_nom_simul
A l'IDRIS
cd modipsl/config/IPSLCM4_v2/EXP00/
qsub Job_nom_simul


Le parallelisme

Par défaut, pour le couplé IPSLCM4_v2 le nombre de processeurs demandé est le suivant :

IPSLCM4_v2 Nb de processeurs total Nb de processeurs pour LMDZ/ORCHIDEE Nb de processeurs pour OPA et OASIS Fichier utilisé par LMDZ
ORCA2xLMD9671 4 3 1 Bands_96x71x19_3prc.dat

Il est possible de demander le nombre de processeurs suivants pour les résolutions citées.

IPSLCM4_v2 Nb de processeurs total Nb de processeurs pour LMDZ/ORCHIDEE Nb de processeurs pour OPA et OASIS Fichier utilisé par LMDZ
ORCA2xLMD14496 6 5 1 Bands_144x96x19_5prc.dat
ORCA2xLMD144142 6 5 1 Bands_144x142x19_5prc.dat
ORCA2xLMD144142 8 7 1 Bands_144x142x19_7prc.dat

Pour changer le nombre de processeurs utilisés et prendre une des valeurs du tableau précédent (4, 6, 6 ou 8), il faut modifier le parametre JobNumProcTot dans le fichier config.card, juste avant de lancer la commande ins_job. On peut également le changer ultérieurement en modifainat dans le fichier Job_nom_simul le parametre BATCH_NUM_PROC_TOT=

Pour le changer pour mettre un nombre non dans cette liste, le fichier Bands n'existe pas. Il faut donc en plus modifier les cards pour ne pas aller le chercher et modifier LMDZ pour qu'il crée le fichier. Voir : IPSLCM4_v2_PAR

Cas particuliers LMDZ4OR_v2 et LMDZINCA_v2

Répertoires d'experience
  • Pour LMDZ4OR_v2 le répertoire d'expérience se nomme LMDZOR
  • Pour LMDZINCA_v2 il y a un répertoire d'expérience par configuration de INCA : EXP_AER, EXP_CH4, EXP_NMHC ....

Plus d'information sur la config LMDZINCA_v2 ici : http://forge.ipsl.jussieu.fr/igcmg/wiki/LMDZINCA_v2

Création de l'état initial

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 LMDZ4OR_v2 et LMDZINCA_v2. Dans ces deux cas vous trouverez un répertoire CREATE/ en plus de votre répertoire d'expérience. Nous allons prendre pour exemple la config LMDZ-ORCHIDEE.
Le répertoire CREATE/ est composé de :

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

L'utilisateur peut décider soit de créer un état initial pour un run climato 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 pour un 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 CLIMATO

Dans ce cas vous laissez les fichiers tels que vous les avez extraits.

cd modipsl/config/LMDZ4OR_v2/CREATE/
ls                                >>>> verification des fichiers dans le répertoire CREATE/ (cf ci-dessus) 
cd ../../../util
./ins_job                         >>>> creation du job Job_ELC-$RESOL ($RESOL = la resolution de votre simulation, ex LMD9671) dans le répertoire CREATE/
cd ../config/LMDZ4OR_v2/CREATE
ccc_msub Job_ELC-$RESOL              >>>> soumission du job tel quel 

L'état initial ainsi créé sera dans le répertoire $DMFDIR/IGCM_OUT/LMDZ4OR_v2/ELC-$RESOL/

ls $DMFDIR/IGCM_OUT/LMDZ4OR_v2/ELC-LMD9671/ATM/Restart/
ELC-LMD9671_19791230_limit.nc   ELC-LMD9671_19791230_start.nc ELC-LMD9671_19791230_startphy.nc

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

[InitialStateFiles]
List=   (${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Restart/${CREATE}_19791230_start.nc, start.nc) \
        (${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Restart/${CREATE}_19791230_startphy.nc, startphy.nc)
[...]
[BoundaryFiles]
ListNonDel= (${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Restart/${CREATE}_19791230_limit.nc, limit.nc) \
[...]


  • RUN NUDGE

Dans ce cas là vous devez utiliser les fichiers suffixés AMIP. Ils permettent de créer les fichiers aux limites pour les années 1956 à 2005 en utilisant les données AMIP6.

cd modipsl/config/LMDZ4OR_v2/CREATE
mv config.card_Interannuel config.card
mv COMP/lmdz.card_Interannuel COMP/lmdz.card
cd ../../../util
./ins_job                             >>>> creation du Job Job_ELI-$RESOL
cd ../config/LMDZ4OR_v2/CREATE
ccc_msub Job_ELI-$RESOL

L'état initial ainsi créé sera dans le répertoire $DMFDIR/IGCM_OUT/LMDz4OR_v2/ELI-$RESOL/. Contrairement au cas climato vous obtenez 50 trios "start.nc, startphy.nc et limit.nc"

ls $DMFDIR/IGCM_OUT/LMDz4OR_v2/ELI-LMD9671/ATM/Restart/
ELI-LMD9671_19561230_limit.nc   ELI-LMD9671_19561230_start.nc   ELI-LMD9671_19561230_startphy.nc 
(...)
ELI-LMD9671_20051230_limit.nc   ELI-LMD9671_20051230_start.nc   ELI-LMD9671_20051230_startphy.nc 

Pour votre simulation vous devrez comme précédemment indiquer les path 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/Restart/${CREATE}_${year}1230_start.nc, start.nc) \
       (${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Restart/${CREATE}_${year}1230_startphy.nc, startphy.nc)
[...]
[BoundaryFiles]
List=(${R_OUT}/${config_UserChoices_TagName}/${CREATE}/ATM/Restart/${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/LMDZ4OR_v2/CREATE/lmdz.card

Etat de la simulation en cours

La variable PeriodState du fichier run.card peut vous aider à connaître l'état de votre simulation :

Start ou OnQueue : run en attente
Running : run en cours d'exécution
Completed : run fini correctement
Fatal : run fini avec un plantage



Fin de simulation

Lorsque votre simulation est finie deux fichiers sont créés dans votre répertoire d'expérience:

  • run.card
  • Script_Output_JobName

Si la simulation s'est mal déroulée vous aurez un troisième fichier :

  • !JobName_date_out_gcm.e_error qui contient le journal de sortie de votre simulation

Le fichier run.card indique l'état de votre run à la fin de la simulation. Il contient une variable PeriodState qui vous renseigne

PeriodState= completed ( = simulation bien finie) 
PeriodState= Fatal (= problème durant la simulation) 

Lorsque votre simulation est bien finie les fichiers de sorties sont stockés au path suivant :

$DMFDIR/IGCM_OUT/IPSLCM4_v2/_nom_simul_ 
Avec les sous répertoires suivant : 
ATM CPL ICE OCE SRF Out Exe 
MOD = Restart et Output de la composante (ATM,ICE...) 
Out = journaux de sorties du run 
Exe = exécutables utilisés pour le run



Execution

Relancer une simulation

  1. Vous devez effacer dans votre répertoire d'expérience les fichiers statck_error (si existant) et run.card.
  2. Vous devez effacer le répertoire $DMFDIR/IGCM_OUT/IPSLCM4_v2/_nom_simul_
  3. Si vous aviez changer la variable RUN_DIR_PATH vous devez également effacer le répertoire correspondant à votre simulation sur votre scratchdir.
  4. Relancer le job



Poursuivre une simulation

Vous devez indiquer dans le fichier run.card

PeriodState= OnQueue