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