ROMS MER d`IROISE (RMI) - Espace d`authentification univ

Transcription

ROMS MER d`IROISE (RMI) - Espace d`authentification univ
ROMS MER d'IROISE
(RMI)
Comment compiler, soumettre et valider une simulation
ROMS Mer d'Iroise sur la machine Caparmor ?
(figure)
Septembre 2008
[email protected][email protected]
26/09/08
1/9
Table des matières
0/Introduction.......................................................................................................................................3
1/La configuration ROMS Mer d'Iroise (RMI)....................................................................................3
2/Ou récupérer le fichier archive rmi_vx.tar.gz....................................................................................3
3/Comment compiler RMI sur la machine Caparmor..........................................................................4
3.1La compilation (OpenMP 4 threads)...........................................................................................4
3.2Quelques points à vérifier si la compilation n'a pas fonctionnée................................................5
4/Comment soumettre RMI sur la machine Caparmor.........................................................................5
4.1L'exécutable roms.......................................................................................................................5
4.2Les fichiers d'entrée....................................................................................................................5
4.3Le script de soumission...............................................................................................................6
4.3.aLe répertoire de stockage des données................................................................................6
4.3.bLe calendrier.......................................................................................................................6
4.4La soumission.............................................................................................................................7
4.4.aLa première soumission......................................................................................................7
4.4.bLes soumissions suivantes..................................................................................................7
5/Comment valider la version d'origine RMI.......................................................................................7
6/Options de la physique du modèle....................................................................................................8
6.1cppdefs.h.....................................................................................................................................8
6.2param.h.......................................................................................................................................8
7/Les paramètres (Config/Iroise15KM_inter.in)..................................................................................8
8/Références :.......................................................................................................................................8
26/09/08
2/9
0/ Introduction
L'objectif de ce document est de vous permettre de prendre en main une configuration du modèle
ROMS de la Mer d'Iroise (RMI), de compiler le code source, de soumettre un an de simulation et de
valider vos résultats.
Cette configuration RMI est issue des travaux de doctorat de Gildas Cambon décrits en détail dans
sa thèse référencées à la fin de ce document et rechargeable à l'adresse suivante :
http://www.legos.obs-mip.fr/~cambon/Docs/TheseGCAMBON.pdf
Pour mener à bien cette prise en main nous supposons que vous pocédez un compte valide sur le
calculateur Caparmor présent sur le site de l'Ifremer Brest et que vous avez à votre disposition un
espace disque de stockage d'au moins de 5 Go à votre disposition sur cette machine.
1/ La configuration ROMS Mer d'Iroise (RMI)
L'exécution d'une simulation de 1 an se fait sous la forme d'un enchaînement de 12 simulations de 1
mois. La configuration fait 118 x 141 x 30 points. La version présentée dans ce document tourne sur
4 processeurs (parallélisation OpenMP) et met 3 heures pour simuler 1 mois (environ 36 heures
pour 1 an). Les sorties des quantités de mouvements (U, V, W) et des traceurs (T, S, etc) se font tous
les 2 jours sous forme d'une moyenne (fichiers Iroise15KM_avg_YyMmm.nc).
2/ Ou récupérer le fichier archive rmi_vx.tar.gz
Le fichier archive compressé contenant les fichiers sources de la configuration RMI est disponible à
l'URL1 (ou adresse web) suivante :
http://stockage.univ-brest.fr/~grima/RMI
Le nom du fichier archive compressé que vous pouvez télécharger est de la forme : rmi_vx.tar.gz
Le x correspondant au numéro de la version.
Copier ce fichier archive compressé dans un de vos répertoires de la machine Caparmor 2 et
décompresser et désarchiver le à l'aide des commandes suivantes :
gunzip rmi_vx.tar.gz
tar xvf rmi_vx.tar
Vous devriez obtenir maintenant dans le répertoire où vous avez soumis ces commandes une
arborescence de fichiers identique à celle représentée dans la figure suivante.
1 Uniform Resource Locator : http://fr.wikipedia.org/wiki/URL
2 Il va de soi que nous supposons ici que vous ayez un compte valide sur le calculateur Caparmor situé sur le site de
l'IFREMER Brest.
26/09/08
3/9
Figure : arborescence des fichiers du code source de la configuration ROMS Mer d'Iroise.
Vous pouvez maintenant passer à l'étape suivante qui consiste à compiler les fichiers du code source
de ROMS Mer d'Iroise pour obtenir un exécutable fonctionnant sur le calculateur Caparmor.
3/ Comment compiler RMI sur la machine Caparmor
Nous supposons dans ce chapitre que toutes les étapes décrites dans le chapitre précédent ont été
effectuées avec succès.
3.1 La compilation (OpenMP 4 threads)
Placez vous dans le répertoire ROMS_MER_IROISE/Scripts.
Nous allons compiler les codes sources du modèle ROMS pour obtenir un exécutable (nommé
roms) qui ne fonctionnera uniquement que sur le calculateur Caparmor. Cet exécutable
fonctionnera en parallèle sur plusieurs processeurs afin de réduire les temps de restitution. La
parallélisation par défaut est du type OpenMP et utilisera 4 threads répartis sur 4 processeurs (ou
coeurs) du calculateur.
Si un fichier roms existe dans le répertoire ROMS_MER_IROISE/Scripts renommer ou effacer
le.
Pour compiler les fichiers du code source de ROMS Mer d'Iroise afin d'obtenir un exécutable
fonctionnant sur le calculateur Caparmor vous n'avez qu'à soumettre le script :
jobcomp_CAPAMOR3
Si vous le souhaitez vous pouvez rediriger les sorties des commandes dans un fichier texte pour
pouvoir après soumission vérifier l'ensemble des commandes et leurs réponses (nous
3 Ce fichier script est une adaptation d'un script de Laurent Debreu provenant du paquet Romstools.
26/09/08
4/9
recommandons cette façon de procéder) :
jobcomp_CAPAMOR >& jobcomp_output.txt
jobcomp_CAPARMOR > jobcomp_output.txt 2>&1
(csh ou tcsh)
(sh, ksh, bash)
Si la compilation a correctement fonctionné, vous devriez obtenir dans le répertoire
ROMS_MER_IROISE/Scripts un fichier exécutable nommé roms.
Au cours de la compilation un répertoire ROMS_MER_IROISE/Compile va être créé dans lequel
tout le code source du modèle ROMS a été copié et compilé.
3.2 Quelques points à vérifier si la compilation n'a pas fonctionnée
Si la compilation n'a pas aboutit vérifiez les points suivants :
– L'arborescence de mes répertoires doit être similaire à celle décrite dans le chapitre 2.
– Éditer le fichier jobcom_output.txt et noter les erreurs éventuelles qui y ont été rapportées lors
de la compilation. Une commande de copie de fichier a peut être mal fonctionné, ou un
changement de répertoire, ou la compilation d'un fichier, etc. Vous pouvez toujours repartir
d'une version originale du fichier archive compressé pour relancer votre compilation. Dans ce
cas recommencez les étapes du chapitre 2 depuis le début.
– Vérifiez les droits Unix/Linux d'écriture et de lecture de vos répertoires et fichiers. Modifiez les
si vous avez des doutes.
– Si vous avez des problèmes avec la commande module reportez vous à la documentation en
ligne sur le site IFREMER (intranet : https://portail.ifremer.fr) de la mise en place de son
environnement sur la machine Caparmor.
– Vérifier auprès de l'assistance du calculateur Caparmor qu'il n'y ait pas de problème en cours
(maintenance, mises à jours, etc).
– Si après toutes ses étapes vous n'arrivez pas à compiler les codes sources d'origine du modèle
RMI, vous pouvez envoyer un mail à [email protected] en expliquant votre
problème et en joignant une copie du fichier jobcomp_output.txt.
4/ Comment soumettre RMI sur la machine Caparmor
4.1 L'exécutable roms
Avant de soumettre votre simulation vous devez tout d'abord vérifier que vous avez bien un
exécutable du nom de roms dans votre répertoire ROMS_MER_IROISE/Scripts.
4.2 Les fichiers d'entrée
Vous devez récupérer les fichiers d'entrée de la simulation nécessaires au bon fonctionnement de la
configuration RMI.
Ils sont au nombre de cinq :
Iroise15KM_grd.nc.gz
(paramètres de la grille)
Iroise15KM_frc.nc.gz
(champs de forçages)
Iroise15KM_bulk.nc.gz
(champs nécessaires aux calculs des bulk)
Iroise15KM_ini.nc.gz
(champs d'initialisation)
Iroise15KM_clm.nc.gz
(champs climatologiques)
Ces fichiers sont disponibles sous forme compressée (*.gz) dans le répertoire
/home7/caparmor/grima/ROMS_DATA/Iroise15KM du calculateur Caparmor. Il vous faudra les
recopier dans l'un de votre répertoire (/homex/caparmor/login/votre/répertoire/data) en vérifiant
auparavant que vous ayez une espace disque suffisant pour cela (environ 1,5 Go compressé).
cd /home7/caparmor/grima/ROMS_DATA/Iroise15KM
26/09/08
5/9
cp Iroise15KM_grd.nc.gz
cp Iroise15KM_frc.nc.gz
cp Iroise15KM_bulk.nc.gz
cp Iroise15KM_ini.nc.gz
cp Iroise15KM_clm.nc.gz
/homex/caparmor/login/votre/répertoire/data/.
/homex/caparmor/login/votre/répertoire/data/.
/homex/caparmor/login/votre/répertoire/data/.
/homex/caparmor/login/votre/répertoire/data/.
/homex/caparmor/login/votre/répertoire/data/.
Avant de les utiliser il faudra les décompresser à l'aide de la commande gunzip :
gunzip Iroise15KM_grd.nc.gz
gunzip Iroise15KM_frc.nc.gz
gunzip Iroise15KM_bulk.nc.gz
gunzip Iroise15KM_ini.nc.gz
gunzip Iroise15KM_clm.nc.gz
Désormais dans votre répertoire /homex/caparmor/login/votre/répertoire/data vous devez avoir les
fichiers suivants, qui occupent environ 2 Go de votre espace disque:
Iroise15KM_grd.nc
(3827476 octets)
Iroise15KM_frc.nc
(117574508 octets)
Iroise15KM_bulk.nc
(1202585868 octets)
Iroise15KM_ini.nc
(16823328 octets)
Iroise15KM_clm.nc
(661350272 octets)
4.3 Le script de soumission
Le script de soumission est un fichier au format texte avec dans ces premières lignes des
instructions PBS4, il est présent dans le répertoire ROMS_MER_IROISE/Scripts et se nomme
submit_roms_mer_iroise.pbs. Il va falloir éditer ce fichier avec votre éditeur préféré (vi, emacs,
nedit, etc) pour y apporter les informations concernant le nom de votre répertoire de stockage de
données et le calendrier de votre simulation.
4.3.a Le répertoire de stockage des données
Éditer le fichier ROMS_MER_IROISE/Scripts/submit_roms_mer_iroise.pbs et rechercher la
chaîne de caractères : set INOUTDIR=
Vous devez compléter cette instruction en indiquant le répertoire où vous avez stocké les fichiers
d'entrée (présentés dans le chapitre 4.2). Si nous suivons l'exemple précédent vous devriez avoir
complété cette instruction comme suit :
set INOUTDIR=/homex/caparmor/login/votre/répertoire/data
Si c'est la première expérience que vous allez soumettre vous pouvez passer au chapitre 4.4, sinon
passez au chapitre suivant concernant les modifications de calendrier de la simulation.
4.3.b Le calendrier
Toujours dans le même fichier vous avez la possibilité de définir l'année et le mois de départ de
votre simulation et l'année et le mois de fin.
Les paramètres à modifier sont respectivement NY_START, NM_START, NY_END et NM_END :
##############
## Calendar ##
##############
4 Portable Batch System, http://en.wikipedia.org/wiki/Portable_Batch_System
26/09/08
6/9
## Start ##
#--Year
set NY_START=1
#--Month
set NM_START=1
## End ##
#--Year
set NY_END=15
#--Month
set NM_END=12
Dans le cas d'une toute première expérience, il faut absolument que les paramètres NY_START et
NM_START soient égales à 1. en effet, il est nécessaire d'avoir un fichier d'initialisation en entrée
du modèle et le seul qui existe lors d'une première expérience c'est le fichier Iroise15KM_ini.nc
que vous avez copié au chapitre 4.2. Ce fichier correspond à un état initial pour démarrer une
simulation au 1er janvier.
Lorsque vous aurez soumis votre simulation et qu'elle aura correctement tournée, à la fin de chaque
mois 4 fichiers seront sauvegardés dans le même répertoire où se trouve les fichiers en entrée.
Parmi ces 4 fichiers il y a un fichier qu'on appelle fichier restart (Iroise15KM_rst_YyMm.nc.gz).
Ce fichier comporte les informations nécessaires pour poursuivre une simulation le mois suivant.
Donc si vous désirez modifier NY_START et/ou NM_START il faut que vous vous assuriez que le
fichier restart du mois précédent est disponible dans le répertoire défini dans la variable
INOUTDIR.
4.4 La soumission
4.4.a La première soumission
La soumission sur Caparmor d'un script PBS se fait à l'aide de la commande PBS qsub :
qsub submit_roms_mer_iroise.pbs
Vous pouvez vérifier que votre travail a bien été pris en compte en soumettant la commande qstat.
Placez vous ensuite dans le répertoire ROMS_MER_IROISE/Scripts/SCRATCH où la
simulation va avoir vraiment lieu. Vous devriez observer une évolution de la taille des fichiers et en
particulier le fichier Iroise15KM_YyMmm.out que vous pouvez consulter en cours de simulation
pour constater ou non le bon déroulement de votre travail.
Pour plus d'information sur comment soumettre, suivre ou arrêter son travail, veuillez consulter la
documentation Caparmor mis en ligne sur l'intranet du site de l'IFREMER5.
4.4.b Les soumissions suivantes
Nous supposons que vous avez réalisé avec succès au moins un mois de simulation. Si vous désirez
maintenant poursuivre votre simulation pour les mois suivants il va falloir éditer le fichier
ROMS_MER_IROISE/Scripts/submit_roms_mer_iroise.pbs et modifier le calendrier en suivant
les instructions du chapitre 4.3.b. Ensuite il faudra soumettre ce fichier avec la commande qsub
comme indiqué dans le chapitre précédent.
5/ Comment valider la version d'origine RMI
Sur
le
calculateur
Caparmor
dans
le
répertoire
5 https://portail.ifremer.fr
26/09/08
7/9
/home7/caparmor/grima/ROMS_DATA/Iroise15KM vous avez à votre disposition les résultats
d'une simulation RMI mois par mois pour une première année. Pour valider vos résultats vous
devez recopier les fichiers résultats que vous voulez confronter, les décompresser et vérifier que les
contenus sont identiques.
6/ Options de la physique du modèle
Les principales informations concernant les options de la physique de la configuration RMI sont
contenus dans les fichiers du répertoire ROMS_MER_IROISE/Config (voir le chapitre 2 pour
l'arborescence des fichiers et répertoire de la configuration RMI) :
6.1 cppdefs.h
●
Parallélisation openMP, sur 4 processeurs : DEFINE OPENMP
●
Utilisation de 4 frontières ouvertes : DEFINE OBC_EAST, DEFINE OBC_WEST, DEFINE
OBC_NORTH, DEFINE OBC_SOUTH
●
utilisation des conditions aux limites type « Flather » pour la ssh, ubar, vbar (courants
barotropes) et les conditions de radiation de type « Orlanski » pour les champs
tridimensionnels et les traceurs.
●
Forçage de la marée aux frontières ouvertes a partir des produit TPXO.
●
Formulation « bulk » pour les flux de chaleur.
●
Utilisation du modèle de fermeture turbulente « KPP », en surface et au fond.
6.2 param.h
●
Définition du nombre d'onde de marée forcé dans ce fichier par la variable Ntides = 8 ou 10.
Pour de plus amples détails, vous pouvez consulter le Chapitre 2 de la thèse de doctorat de Gildas
Cambon.
7/ Les paramètres (Config/Iroise15KM_inter.in)
●
●
●
●
●
Variables en sortie : zeta, ubar, vbar, U, V, T, S, rho, W, Akv, Akt, hbl, hbbl et Bostr.
Friction de fond quadratique logarithmique, avec une longueur de rugosité Zo=1mm.
Il n'y a pas de coefficient de diffusivité/viscosité explicite dans le modèle.
Rappel entrant/sortant aux points frontières :
○ Pour la quantité de mouvement, rappel entrant tau_M_in = 1 jour, rappel sortant
tau_M_out = 1/360 jour,
○ Pour les traceurs, rappel entrant tau_T_in=1/3 jour, rappel sortant tau_T_out= 1/360
jour.
Couche éponge et bande de nudging :
○ Épaisseurs de la couche éponge/nudging de 10 km (X_SPONGE),
○ Augmentation progressive, selon un profile en cosinus du coefficient de rappel à travers
la couche éponge jusqu'à la valeur maximale tau_M_out ,
○ Augmentation également selon un profil cosinus de la diffusivité et de viscosité jusqu'à
la valeur maximale VSPONGE, (identique pour la diffusivité et la viscosité).
8/ Références :
–
Gildas Cambon, thèse de doctorat, 2008: Étude numérique de la mer d'Iroise : Dynamique,
26/09/08
8/9
–
–
–
Variabilité du front d'Ouessant et Évaluation des échanges cross-frontaux,
http://www.legos.obs-mip.fr/~cambon/Docs/TheseGCAMBON.pdf.
Penven, P. and Debreu, L. and Marchesiello, P. and McWilliams, J. C, : Evaluation an
application of the ROMS 1-way embedding procedure to the central california upwelling
system. 2006, volume 12, pages 157-187.
Roms_tools User's Guide, P. Penven et T. Than, http://roms.mpl.ird.fr/papers/doc.pdf.
Site web ROMS_AGRIF: http://www.roms.mpl.ird.fr
26/09/08
9/9