ECLIS
Qu'est-ce ?
Un environnement pour réaliser des simulations sur supercalculateur
et stocker les résultats sur une machine d'archivage
+ -Toute simulation faisant intervenir de 1 à N modèles (couplés / forcé)
Modèles dont le "modèle" est d'avoir :
- un exécutable (pas forcément MPI)
- des données fixes,
- une namelist,
- des forcages évolutifs,
- un état initial,
- un état de sortie,
et de produire des diagnostics qu'on veut archiver
Le seul environnement géré pour faire tourner CNRM-CM
Initié par Aurore Voldoire. Besoin criant pour CNRM-CM
Une organisation, non obligatoire, des résultats des simulations
+ -Validé pour toutes configurations utiles à GMGEC
- AMIP :
* avec / sans Surfex
* et aussi avec nudging
- Aladin
- Surfex offline :
* avec / sans océan,
* en mode FA ou TXT
- Nemo forcé
* avec LIM, Gelato ou sans glace de mer
* avec ou sans damping
- CNRM-CM
- CNRM-RCM : Couplé Méditerranée
- CNRM-ESM
- avec chimie / schéma d'aérosols en global
et bientôt avec Grisli
Validé sur NEC, BullX, IBM (IDRIS et CEP [ JEF] ), bientôt disponible sur PC
Deux scripts principaux : install et script_couple
Motivations / avantage
Expliciter la définition d'une simulation (séparément d'un script)
Partager des outils (scripts) dont la mise au point peut être laborieuse
Maîtriser la réalisation des simulations
Faciliter la gestion de simulations, qu'elles soient :
- nombreuses ou non,
- longues ou non
- problématiques ou soumises aux seuls aléas du système
Masquer les contraintes des supercalculateurs (travaux multi-steps)
Faciliter les migrations
Déroulé
Créer un fichier de paramètres
Invoquer un script d'installation / lancement
Relancer si besoin
Prendre les résultats sur cougar
Organisation générale
Fichier param_EXPID
Une expérience est complètement définie par un fichier param_EXPID, où EXPID est le nom d'expérience, et une version d'ECLIS
Les noms en majuscules désignent des paramètres définis dans le fichier param_... Leur valeur par défaut, si elle existe, est indiquée en italiques entre [ ]
Une expérience appartient à un groupe GROUP [] qui influe sur le chemin des répertoires utilisés; exemple GROUP=DEC/S1980
Répertoire RELDIR et fichier EXPID.conf
Chaque expérience a un répertoire principal appelé répertoire de relance' RELDIR [~/relances/GROUP/EXPID], créé par Eclis.
Il contient le fichier de configuration de l'expérience EXPID.conf , qui récapitule la quasi-totalité des paramètres conditionnant l'expérience (issus de param_EXPID et de valeurs par défaut).
Il contient aussi le(s) namelist(s) de référence, les namelist(s) mises à jour, des listings, des liens vers les répertoires auxilliaires (cf infra).
Découpage temporel
L'expé couvre une période de longueur quelconque entre INIDATE et ENDDATE (inclusives, format YYYYMMDD)
Elle est découpée en une série de 'macro-jobs' d'une durée inférieure ou égale à NMONTH [12]
Le 1° et le dernier macro-jobs peuvent avoir un premier/dernier mois non complet
La boucle sur les macro-jobs est implémentée par le script relan (de Alain Braun, dont les sources sont embarqués dans Eclis)
Elle utilise un fichier EXPID_his pour gérer la boucle (dans RELDIR). Ce fichier définit aussi le reste des paramètres conditionnant l'expérience, ceux qu'on peut changer pendant la durée de la simulation (ex : NMONTH, NPROC_ARP). Il indique le script qui crée les jobs (ligne PROO)
Macro-job et jobs/steps
Chaque macro-jobs est organisé en 3 jobs (steps) : get, compute, put créés par le script principal d'Eclis avec l'aide de l'outil Mtool (E.Sevault)
Chaque step réalise une boucle de NMONTH (de get, compute ou put). Ftget et ftput sont groupés.
Dans RELDIR, le lien 'steps' donne accès aux jobs de tous les steps du macro-job courant, et à leurs outputs
Le step "compute" du macro-job n+1 peut être lancé avant le step "put" du macro-job n, si ARCHIVING=DURING
Répertoires
- d'échange FTEXP
- de calcul RUNDIR
Les steps "get" et "put" s'exécutent dans le répertoire FTEXP [$FTDIR/eclis/transfers/EXPID] , créé par Eclis, où ils posent les données échangées avec la machine d'archivage ou avec le step 'compute'. Il est accessible depuis RELDIR par le lien symbolique 'ftexp'
Le step compute s'exécute dans le répertoire RUNDIR [$FTDIR/eclis/rundirs/EXPID], ( ou dans $TMPDIR/EXPID si KEEP_TMPDIR=0) , qui est créé par Eclis. Il est accessible depuis RELDIR par le lien symbolique 'rundir'
$FTDIR/eclis est nettoyé par 'le système' pour les fichiers vieux de 5 jours
+ - Données
Le fichier param spécifie les chemins des données d'entrée, pour chaque modèle impliqué mmm (ATM, SFX, OCE, ICE, RIV, CPL) :
- binaire du modèle : {mmm}EXE - ex : SFXEXE
- namelist de référence : {mmm}NAMREF - ex: ATMNAMREF
- données fixes : DATA_{mmm} - ex: DATA_OCE - cas spéciaux pour Arpege, pour Surfex (PGD en sus d'ecoclimap)
- restart initial de l'expérience :{mmm}REST - ex: ICEREST
- forcages si applicable
La variable MACH_RESTART (resp. MACH_NAMELIST) permet, au besoin, d'aller chercher ailleurs tous les restarts (resp. namelsits)
Forçages
données supposées être sur machine d'archivage (sauf pour Arpege)
patterns de chemin utilisant YYYY et MM si besoin,
mode malin pour spécifier un scénario de forcage, y compris un cyclage des forcages :
SCEN_1975_1995,
SCYC_1980_1985 avec NSPINUPS modifiable
SCYC_1980_1985_1990 avec NSPINUPS=2
possibilité d'organiser un 'cache' local pour minimiser les transferts
FTFORCINGS pour Nemo,
SFX_FRC pour Surfex
dénominations :
* Arpege : BCOND, FORVOL, FOROZO, FORGHG, FORSST, ( FORSUL, FORBCA, FORSSA, FORSDA )
* Surfex :
FORATM="~senesi/surfex/forcing/GLO_ERAI_GPCC_05D/FORCING_YYYYMM01.nc"
FORSST=
* Nemo :
OCE_FORCINGS ="U10 V10 Q2M T2M PCP SNW LWR RNF"
FORU10GEN =/home/c/cglo/cglo765/COREv2/OONLY/u10_core_yYYYY_oonly.nc
ou : FORU10TAR = ..... avec FORU10GEN = [ pattern pour le nom dans le tar] # SI les fichiers sont à dé-tarer
FORV10 =v10_myrule_yYYYY.nc # Pour préciser ou corriger un nom local
La namelist Nemo est analysée pour savoir s'il faut chercher les mois M-1 et M+1
Sortie
Les sorties (diagnostics) de chaque modèle sont post-traitées d'une manière adhoc
- Arpege : les fichiers POST sont regroupés mensuellement par tar
- Surfex : idem (sauf si SFXOUTTAR=0), que ce soient des POST ou des NetCDF
(lequels sont renommés avec la date)
- Nemo : après ré-assemblage des sous-domaines si besoin, et correction de
l'axe des temps, regroupement mensuel par tar
- Gelato : regroupement mensuel par tar
- Trip : post-traitement par script adhoc
- Oasis : nil
Elles sont ensuite transférées sur machine d'archivage sur les répertoires de nom {mmm}OUTARCH [EXPARCHDIR/{mmm}/output]. Valeur par défaut de EXPARCHDIR : GROUP/EXPID
Exemple : SFXOUTARCH="~senesi/EXPERIENCES/Surfex/OUTPUTS/expe1"
Les etats de sortie (restarts) sont, à raison d'un restart tous les SAVE_RESTART_PER mois, transférés sur cougar dans des répertoires créés par ECLIS de nom {mmm}RESARCH [EXPARCHDIR/{mmm}/output]; Ils sont nommés suivant le pattern : {mmm}RESGEN [EXPID.rst.{mmm}.P_DDDD_]
Listings des différents modèles :
- celui du dernier job est disponible dans RELDIR, même en cas de plantage
- les autres sont stockés dans DIR_LISTING [RELDIR/listings] si la lettre-clé du modèle figure dans la chaine SAVE_LISTINGS (A:ATM, S: LSM, I:ICE, R: RIV, O:OCE ...)
Le fichier RELDIR/last_stdall contient le stderr et sdtout de tous les modèles lancés par mpirun
Les listings des jobs sont disponibles sur RELDIR. Seuls les 4 derniers et un sur 5 sont conservés.
Un fichier param
#!/bin/bash
[ -z $EXPID ] && EXPID=$(basename $0 | sed -e 's/param_//g')
TITRE="NEMO-GLT with AR5 version, on beaufix"
GROUP=TEST/NEMO
INIDATE=19480101 ; ENDDATE=19480101 ; INITIME=0
OCEEXE=~senesi/SAVE/nemo/bin/nemo3.3_o1.5.47g.v11.4p.24P.GLT.FRC
DATA_OCE=~senesi/SAVE/nemo/data_frc
nams=~senesi/SAVE/dev/eclis/testing/beaufix/namelists
OCENAMREF=$nams/namelist_FRCGLT ; ICENAMREF=$nams/namgel_sc_timers
IOXNAMREF=$nams/iodef_frccoreglt.3.xml ; IOSNAMREF=$nams/xmlio_server.def_frccore_1Gb
MACH_RESTART=cougar
LOCEREST=0 ; ICEREST="~mgie003/AR5/PICTL/oce/restart/PICTL.rst.ice.P18500101"
OCEFORCINGS="U10 V10 Q2M T2M PCP SNW LWR RNF"
FORYEAR=SCEN_1948_2007 # Default value for YEAR_U10, YEAR_V10, ..(all forcings)
FORGEN=/home/c/cglo/cglo765/COREv2/OONLY/xxx_core_yYYYY_oonly.nc
FORU10GEN=${FORGEN/xxx/u10} ; FORV10GEN=${FORGEN/xxx/v10} ; FORQ2MGEN=${FORGEN/xxx/q10} ;
FORT2MGEN=${FORGEN/xxx/t10} ; FORPCPGEN=${FORGEN/xxx/tprecip} ; FORSNWGEN=${FORGEN/xxx/precip} ;
FORLWRGEN=${FORGEN/xxx/rad} ;
FORRNFGEN=/home/c/cglo/cglo765/DaiTrenberthSummer/runoff_1m_yYYYY.nc
NPROC_OCE=24 ;NPROC_IOS=0 ;
NMONTH=12 ; ELAPS=05:00:00 ; MEM=30gb
ELAPSFRONT=00:30:00 ; MEMFRONT=3gb ;
RUNMAIL=senesi@meteo.fr ;
QUEUE=normal32
INSTALLER=${ECLIS?}/scripts/install
. $INSTALLER $*
Fichiers param de diverses configurations en ~senesi/eclis/current/testing/beaufix
Installer une expérience
Environnement
Environnement :
- fichier ~/.ftuas via ftmotpasse
- pour facilités (relan et delexp)
* export ECLIS=~senesi/eclis/current
* source $ECLIS/setup
- pour delexp : renseigner le fichier .netrc a/s de cougar
L'installation
Installer = exécuter un fichier param qui comporte à la fin les lignes
INSTALLER=.....scripts/install
source $INSTALLER $*
L'INSTALLER vérifie tout ce qu'il peut (forcages, tailles) , crée les répertoires, copie et archive les états initiaux et les namelists, puis propose de lancer l'expé
Quelle version d'ECLIS choisir ?
- elles sont en beaufix:~senesi/eclis
- ECLIS mémorise dans le fichier .conf la version d'ECLIS utilisée à l'installation d'une expérience et utilisera celle-là tout au long de l'expé. Les versions installées ne sont pas modifiées, même en cas de bogue.
- utiliser la version "current" qui est, normalement, la plus riche et déboguée; la compatibilité ascendante est assurée, sauf avertissement très explicite; Eclis mémorise alors la version qui est pointée par le lien symbolique "current"
Gérér une expérience
Cas normal
- expérience lancée à la fin de l'install ou par 'relan EXPID'
- RELDIR contient les listings de chaque modèle, préfixés par last_, et last_stdall, pour le dernier job terminé, et les outputs des jobs
- et aussi les namelists instanciées du dernier job, préfixées par last
- le fichier RELDIR/EXPID_his rend compte de l'avancement :
* DAFC= date finie courante
* DATC = date en cours de traitement
* INFA / INFD : dates de lancements, de fin, durées
- on peut augmenter NMONTH (dans le fichier _his) pour coller à la durée max de la classe de jobs
- commande squeue pour voir ses jobs avec un nom complet (et la date) :
alias sq="squeue -u $(whoami) --format='%.7i %.9P %.30j %.8u %.2t %.10M %.6D %R'"
- nota : si ARCHIVING=DURING, on peut avoir deux jobs/steps en machine en même temps
Plantages et reprises
Un mécanisme (trap) récupère la main sur un certains nombres de cas d'erreur
Un mail rend compte de la date et du step objet du plantage (mais mail manquant depuis step 2 sur beaufix, act.)
Il est facile de diagnostiquer le step fautif , puis le stade du job ou se situe le problème, en regardant le contenu du répertoire 'steps' : aller à la fin du dernier stepXX.out
Si le problème est dans la phase 'mpirun', aller voir RELDIR/last_stdall, qui pourra indiquer quel est le modèle fautif; son listing last_xxx peut renseigner davantage
Si plantage dans le step 2 (compute), les mois déja traités auront leur outputs archivés par le step 3 (il est lancé quand même), et DAFC sera mis à jour. Le step 3 n'efface aucun résultat tant qu'il n' pas archivé tous les résultats des NMONTH mois
Si le problème vient d'un plantage du modèle pour lequel on a su appliquer un remède : 'relan EXPID'
Si le problème vient d'une indisponibiilité de la machine d'archivage (step 1 ou 3) : on peut relancer toute l'expé en relancant le step fautif : cd RELDIR ; cd steps ; sbatch step.03 . Rentable quand il s'agit du step 3 !
Dans le cas de relance du seul step03, si on travaille en 'ARCHIVING=DURING', il faut d'abord retrouver le bon répertoire 'steps' : celui du lancement précédent et relancer son step03; puis relancer le step 03 du lancement courant. Autre solution , plus coûteuse n CPU : on peut modifier le fichier his pour relancer depuis le début du lancement précédent.
Nettoyer une expérience
et gérer ses sorties
delexp EXPID :
- détruit RELDIR et, sur cougar, les {mmm}ARCHDIR et {mmm]OUTDIR
- sauvegarde EXPID.conf dans ~/.exp_conf
- mieux vaut mettre ses fichiers param ailleurs que dans RELDIR
- RUNDIR et FTEXP: pas traités (nettoyage DSI Automatique)
- fichiers de forcage : pas touchés si hors FTEXP
cm_files [options] EXPE [USER] : pour gérer les sorties finement
-a ACTION, --action=ACTION
delete, VersMediaArchive (default) or VersMediaRapide or ChargeEnEspaceRapide or
LibereEspaceRapide, If a USER is specified, allows to migrate files from
another user but not to delete
-r REALM, --realm=REALM
A, I, O, L, R or C : process only files from one realm(if realms are not mixed in directories)
-l DIRS, --dirs=DIRS : comma separated list of directory types to process,
for instance : OCERESARCH, ATMRESARCH (mind the case where realms are mixed in directories).
-p PATTERN, --pattern=PATTERN
pattern for directory types to process, e.g. RESARCH for ATMRESARCH+OCERESARCH+...,
PATHM for monthly means ...; this can be a regular expression
-f FREQ, --freq=FREQ whatever the option, left unchanged one out of n
restarts files starting with first one; - 1 means keep all restart files
-t, --test does not do the job, but let you check the ftp directives in ./ftp.in
-c, --copy_request copy the migration request file in ~/.migrations
-m MAIL, --mail=MAIL mail address to send the result of migration, useful
when migrating files from another user
Les critères doivent être tous satisfaits
Misc.
Update de namelist Arpege
Avec le script UPDNAMARP standard ($ECLIS/toolbox/update_namarp.sh)
Paramètres forcés :
NPROC, NSTOP, NINDAT, NSSSS, NFRHIS
Paramètre forcés si = AUTO dans la namelist :
LMCCO3, NFRPOS, NFRSFXHIS, NFRCORM, NFRRAZ,
NPRTRW, NPRTRV, NPRGPNS, NPRGPEW
NSTRIN, NSTROUT (acceptent aussi la valeur NPROC)
Voir le script final sans lancer la simulation
Avec toutes les informations de Mtool sur fichiers d'origine
CM_SUBMIT_METHOD="--submitcmd=echo" ./param_EXPID
répondre 'y' à la question sur le lancement de l'expé
consulter le répertoire indiqué sur la dernière ligne mentionnant "depot"
Plus épuré :
CM_SUBMIT_METHOD="--submitcmd=echo --inclprompt=off " ./param_EXPID
FTGET smart, FTPUT blindé
Le sur-mesure
Greffons / plugins
Principes
Pour ajouter des séquences de commandes au script de run, à certains endroits
Utilisé pour : CCM, nudging, ESM, RCM, post-traitements EAC
Plugins "standards" :
- atm_lbc_nudging
- atm_post
- chemistry_aero
- oce_medit
- oce_lbc_nudging
- cpl_medit
Ne permet pas de coupler un modèle supplémentaire
Fonctionnement :
- les séquences de commandes additionnelles sont groupées dans un fichier auxilliaire, dit de plugin
- il est divisé en sections qui correspondent aux emplacements d'insertion (automatique) dans le script général
- il est désigné dans le paramètre PLUGINS de l'expé
- les chemins de fichiers de plugin sont recherchés :
* par nom relatif dans :
- dans le répertoire courant à l'install, puis
- $ECLIS/plugins
* puis par nom absolu
Doc :
- Plugins standards : http://www.cnrm.meteo.fr/cm/spip.php?article15
- Concevoir un plugin : http://www.cnrm.meteo.fr/cm/spip.php?article13
+ - Exemple d'utilisation de plugin
Ce qu'il faut ajouter dans un fichier param pour apporter des conditions aux limites (pour un run Aladin) et/ou des données de guidage (pour un run global ou Aladin) en utilisant le plugin standard atm_lbc_nudging
PLUGINS="atm_lbc_nudging "
# lateral boundary conditions plugin parameter : forcing experiment name
ATM_LBC_EXPE=HISTr8 # This is not an ECLIS paramater nor a plugin parameter
ATM_NUDLBC_DATA_DIR="~mrga589/nec/ifs/restart/CORDEX/${ATM_LBC_EXPE}"
ATM_NUDLBC_GRE=RE${GEOM}${ATM_LBC_EXPE}DDDD.tar
ATM_NUDLBC_LS="${GEOM}${ATM_LBC_EXPE}LBC*"
ATM_NUDLBC_GEN=ELSCF0123ALBC
Sections de plugin
Les sections de plugins sont soulignées
step1 - get
- boucle1 sur les mois :
* RECUP ... ftres : listage dans ftres des transferts de restarts à réaliser
* FETCH_LOOP1
- EFGET ftres : transferts effectifs de ce qui est listé dans ftres
- FETCH
- boucle2 : FETCH_LOOP2
step2 - compute
- cd $RUNDIR
- COMPUTE_EARLY_INIT
- copie des restarts de FTEXP à RUNDIR
- COMPUTE_INIT
- boucle sur les mois
* traitement des namelists
* liens symboliques pour accès aux binaires, aux données fixes, aux forcages
* COMPUTE_BEFORE
* traitement spécifique des forcages Arpege (updcli, updozo)
* mpirun
* COMPUTE_AFTER
* cyclage des restarts
* déplacement des résultats vers FTEXP
* COMPUTE_AFTER_LATE
- COMPUTE_END
step3 - put
- boucle sur les mois
* PUT_LOOP_EARLY
* post-traitements et tar des sorties
* PUT_LOOP
- EFPUT des restarts et sorties
- PUT
Exemple de fichier de plugin
gestion des spécificités de NemoMed
################################################################
[ PLUGIN_PREINSTALL ]
# Setting NemoMed coupled run default values for some variables which have a default value in ECLIS
# The output and restart path on archive which are specific to oce_med
OCEOUTARCH=oce/output/${EXPID} ; OCERESARCH=oce/restart/${EXPID}
# Restart archive files naming scheme specific to oce_med
OCERESGEN=$EXPID.rst.med.PDDDD.nc
# Usual names for some files, for oce_med
OCENAM=namelist_med ; OCERESIN=restart_med.nc ; OCELISTOUT=ocean_med.output
# Setting oce_med default values for oce_lbc_nudging plugin variables
# Variables for which LBC are needed
OCE_NUDLBC_VARS=${OCE_NUDLBC_VARS:-"SO TO SSH"}
# Names expected by NemoMed for the LBC data.
# They include YYYY1 for the (single) year
OCE_NUDLBC_SO=data_1m_salinity_nomask_med.YYY1.nc
OCE_NUDLBC_TO=data_1m_potential_temperature_nomask_med.YYY1.nc
OCE_NUDLBC_SSH=data_1m_sea_surface_height_nomask_med.YYY1.nc
################################################################
[ PLUGIN_INSTALL ] # Defining NemoMed specific variables default values
# Name of a file to feed with the history of steric variations for the run
STERICVARMED=${STERICVARMED:-${RELEXP}/global_steric_variations.asc}
# Recording variables value
cat >> $RELEXP/$EXPID.conf <<EOF
# Variables set by plugin oce_medit
STERICVARMED=$STERICVARMED
EOF
#######################################################################
[ PLUGIN_COMPUTE_BEFORE ]
# Steric variations history file
ln -s $STERICVARMED global_steric_variations.asc
cp $STERICVARMED $STERICVARMED.before$YEAR$MONTH$DAY
#######################################################################
[ PLUGIN_COMPUTE_AFTER ]
mv DCT.diagnostic ${EXPID}_1d_$YEAR$MONTH${DAY}_${DATEF}_DCT
Micro-plugins
Même principe que les greffons, mais les séquences de script sont écrites dans le fichier param , dans des paramètres nommés {section}_ADD.
Exemple :
COMPUTE_BEFORE_ADD="cp ~deque/bin/majdatfa . \n
for f in RX?????????? ; do echo \$f | ./majdatfa ; done"
Scripts personnel
Facile à faire, dans le fichier param :
script=mon_script
toolbox=mon_rep_toolbox
Voir d'abord les alternatives (greffons).
Puis tester son propre script et me demander à généraliser le script commun
en conséquence, pour éviter les divergences.
Modèle additionnel (NIS)
Paramètres à renseigner pour faire tourner un modèle en sus (couplé) ou seul (forcé)
Voir les détails en http://www.cnrm.meteo.fr/cm/spip.php?article32
Communs :
NISNAM / NISRESIN / NISRESOUT / NISLISTOUT / UPDNAMNIS * / POSTNIS *
NISEXE * / NPROC_NIS / DATA_NIS / NISREST / NISNAMREF
Couplé :
NISGTS *
CPLNISRES
Forçages :
FORNIS
NISFOR / YEAR_NIS
En périphérie
verifrelan
Script cron-é sur PC
Vérifie qu'une expé tourne
La relance si besoin, après avoir analysé les sorties :
- peut faire de l'effet papillon sur Nemo ou Arpege
- recule de quelques mois
Pas complètement stabilisé
EM
Experiment Manager
Pour gérer les sorties de simulations :
- préparer les post-traitements atmosphères et surface (FA -> NetCDF) : "em post"
- post-traiter / filtrer les sorties ocean et glace de mer
- rapatrier simplement les sorties depuis cougar, et gérer sur PC : "em get", "em files",
- vérifier les trous dans les sorties , sur cougar ou PC : "em check"
Suivi d'une expé : "em status", "em progress"
Pour les visu CDAT : création d'un index cdscan : "em index"
Pratiqué et apprécié à ASTER, CAIAC et EAC (Virginie)
CREDAS
Spécificités beaufix
Procs et noeuds
- Beaufix = 24 procs (cores) par noeud, et facturation par noeud entier
- Tous runs : préciser NPROC_{mmm} pour chaque modèle impliqué; pas la peine de préciser le nb de noeuds
* Runs Arpege et Surfex seuls(s): on peut, à la place, utiliser NN = nombre de noeuds
- Pas moyen de bien remplir les noeuds quand, en couplé, on veut faire deux runs à comparer et dont l'un consomme nettement plus
- Hyperthreading = mettre deux threads OpenMP par tâche MPI.
* Gain de 30%.
* Testé seulement avec Arpege 6 sans Sfx
* Activation : HYPERTHREADING=YES
Modules :
- C'est une manière de préciser les versions de compilateur et les chemins des librairies dynamiques
- Eclis purge tous les modules pour le step 2 'compute', et charge intel/13.1.4.183 et intelmpi/4.1.1.036
- les modèles doivent avoir été compilés avec les mêmes versions d'intel et intelmpi
* faisable avec "module load intel/13.1.4.183" et ...
* ou en utilsant le "wrapper" ~khatib/public/bin/impi-4.1.1.036_ifc-13.1.4.183
- Netcdf ( et autres librairies )
* faire l'édition de lien avec l'option "-Wl,-rpath,$DIR_NETCDF"
* ou invoquer le micro-plugin : COMPUTE_INIT_ADD="module load ma_version_nectdf"
cf. http://www.cnrm.meteo.fr/cm/spip.php?article36
Résumé
Beaucoup y ont trouvé leur compte : simplicité de mise en oeuvre / robustesse / maîtrise
Exemples de fichier param en : ~senesi/eclis/current/testing/beaufix (cf README)
Installer / lancer = exécuter un fichier param
Reprendre = relan EXPID
RELDIR=~/relances/GROUP/EXPID ; listings last_...; liens : steps ftexp rundir
Sorties sur cougar en ATMOUTARCH, SXFOUTARCH ... ; ex : ~/GROUP/atm/output