.. _dat.cap2dat: La documentation officielle de Datarmor est disponible sous http://w3z.ifremer.fr/intraric/Mon-IntraRIC/Calcul-scientifique/Datarmor .. note :: Depuis un PC portable, si pb de connection (lors de **ssh -X userlogin@datarmor** ), se connecter une premiere fois en root, ensuite reprendre son login normal **Passage à Datarmor** ###################### Log to Datarmor :: **ssh -X userlogin@datarmor** **Passage définitif à Datarmor** Il n'y aura plus de mise à jour des fichiers sous datarmor : les travaux effectués sur caparmor ne seront plus automatiquement transférés sur datarmor, vous devrez le faire vous-mêmes. :: cd $HOME/userlogin-copycaparmor mv * ../. **Sauver ses anciens fichiers .cshrc...** :: cd $HOME mkdir POINTS cd $HOME/userlogin-copycaparmor mv .* ~/POINTS **Eliminer le répertoire qui fait le lien entre Caparmor et Datarmor** :: rmdir userlogin-copycaparmor .. note:: Faites-le, sinon vous risquez de dépasser votre quotat car tous les fichiers de caparmor vous être à nouveau copiés sous userlogin-copycaparmor **idem sous $DATAWORK** :: cd $DATAWORK/userlogin-copycaparmor mv * ../. rmdir userlogin-copycaparmor **Datarmor : quelques trucs à savoir** ###################################### 0. On ne choisit pas la frontale (datarmor[0-3]) sur laquelle on se logue. #. Sous $SCRATCH, les fichiers sont effacés au bout de 15 jours #. Le répertoire /scratch/tmp est visible de toutes les frontales et par tous les utilisateurs (777). A utiliser pour les échanges. #. Depuis un PC (connu de RIC), il est possible d'accéder à VOS comptes personnels :: ls/cd /homeX/datahome/username ls/cd /homeX/datawork/username ls/cd /homeX/scratch/username **Environnement adapté à MARS** ############################### 1. Copie des fichiers de référence :: cd $HOME cp /home/datawork-mars/CAP2DAT/env_mars.csh . cp /home/datawork-mars/CAP2DAT/.cshrc . .. note :: source env_mars.csh mis dans .cshrc 2. Changer login extranet dans env_mars.csh [ dernière ligne vgXXX] 3. Mettre à jour l'environnement se déloguer et se reloguer ou bien ::  source ~/.cshrc 4. Vérification des variables d'environnement de MARS :: ls $UDIR ls $CDIR ls $RDIR Si vous ne voyez vos fichiers modifier les UDIR CDIR RDIR env_mars.csh Création du répertoire SCRATCH (copie de RDIR) :: echo $SDIR si cela vous va :: mkdir -p $SDIR **Utilisation de MARS sous Datarmor : les nouveautés** ###################################################### 1. compilation * Il faut utiliser la commande **qsub compile**. Le batch est copié dans le UDIR. * Les résultats de la compilation sont sous out.compile.out * Dans le Makefile.datarmor choisir le type de compilation en positionant la variable **SCHEME** avec l'un des caractères suivants : * *seq* pour un run séquentiel * *omp* pour un run en OpenMP * *mpi* pour un run en MPI * *hyb* pour un run utilisant la parallélisation hybride : MPI+OMP 2. Execution * il n'y a plus de script **runmpi_connect** et tous les lancements passent par les commandes suivantes :: qsub batch_seq pour le séquentiel qsub batch_mpt pour MPI qsub batch_omp pour OpenMP qsub batch_hyb pour hybride (MPI+OMP) * Ensuite il faut un peu personnaliser chaque batch : * il faut préciser le temps total (estimé) du run dans chaque batch. c'est la variable **walltime** * préciser la queue mpi_X que vous voulez utiliser, X correspond à X*28 cores * par défaut le run est exécuté depuis le répertoire $SCRATCH ($SDIR pour MARS) * les données sont copiées (ou linkées) depuis $RDIR vers $SDIR * le run est exécuté sous $SDIR * les résultats de la simulation sont recopiés depuis $SDIR vers $RDIR | Pour exécuter le job sous $RDIR (**qsub batch_XXX_no_scratch**) | Pour exécuter le job sous $SDIR mais ne pas recopier les données simulées sous $RDIR, (**qsub batch_XXX_no_scratch_back**) **Utiliser une configuration déployée initialement sous Caparmor** ################################################################## .. warning :: Utiliser seulement cette partie si vous ne FAITES PAS DE NOUVEAU MKCONFDIR .. warning :: SURTOUT NE PAS FAIRE DE "GMAKE CLEANINST" !!!!! Récupérer les fichiers nécessaires à la compilation :: cd $UDIR/CONF/CONF-CASE cp /home/datawork-mars/CAP2DAT/compile.tar . tar xvf compile.tar Update makefile =============== Comparer les fichiers :: vimdiff makefile.env_datarmor makefile Mettre à jour :: CONF = CASE = RANK = ainsi que si besoin :: REF_CONFIG = .. warning :: note insuffisante pour utiliser PREV_CONFIG actuellement. Se reporter plus bas. :: mv makefile makefile.env_caparmor mv makefile.env_datarmor makefile Préparation Makefile.datarmor ============================= **Cas sans rangs** Comparer Makefile.datarmor avec Makefile.caparmor :: vimdiff Makefile.datarmor Makefile.caparmor Mettre à jour :: COMPIL_DIR (doit etre votre WCONF-CASE) CPPFLAGS = Une fois ces modifications faites, **VOUS NE DEVEZ RIEN TOUCHER SOUS LA LIGNE "COMPILATION OPTIONS" (environ ligne 48) SAUF LES ANCIENNES VERSIONS** (voir plus bas) **Cas avec rangs** :: cp Makefile.datarmor Makefile.datarmor_rank0 cp Makefile.datarmor Makefile.datarmor_rank1 cp Makefile.datarmor Makefile.datarmor_rankX Faire les étapes décrites dans le **cas sans rangs** pour chacun des Makefile.datarmor_rankX en comparant avec Makefile.caparmor_rankX :: vimdiff Makefile.datarmor_rankX Makefile.caparmor_rankX Et mettre à jour en plus (ligne 255 environ) :: SRC = ./smallf90_rankX **Pour les anciennes versions** 1. Mettre à jour les routines qui doivent être compilées (reprendre celles précisées sous votre Makefile.caparmor[_rankX]) #. Mettre à jour le descriptif des options de compilation disponibles (reprendre celles précisées sous votre Makefile.caparmor[_rankX]) #. Si un des modules manquent, en particulier **OBSTRUCTIONS**, il faut préciser **OBST = 'notused'** Revoir les liens ================ Globalement, les liens que vous aviez faits avec votre répertoire /work de caparmor ne sont plus bons. Il faut le détruire et les refaire. A l'exécution d'un programme, penser à vérifier les liens si un fichier est décelé comme inexistant. :: rm smallf90* WORK .. note :: CONF-CASE est générique. Spécifiez le votre bien sûr. **Cas sans rangs** :: ln -s $CDIR/WCONF-CASE/smallf90 ln -s $CDIR/WCONF-CASE/WORK **Cas avec rangs** :: ln -s $CDIR/WCONF-CASE/smallf90_rank0 ln -s $CDIR/WCONF-CASE/smallf90_rank1 ln -s $CDIR/WCONF-CASE/smallf90_rankX ln -s $CDIR/WCONF-CASE/WORK Compilation =========== **cas sans rangs** :: qsub compile **cas avec rangs** :: qsub -v rank=0 compile qsub -v rank=1 compile qsub -v rank=2 compile les résultats de la compilation sont sous **out.compile.out** .. note :: Attendre un peu que le fichier apparaisse quand la compilation est très rapide. .. warning :: Les options de compilation ne sont pas encore figées. Par exemple, enlever -fpe0 si besoin mais vos runs peuvent consommer des heures de calcul alors que le run est planté. Pas terrible quand les priorités vont dépendre de la consommation passée. On vous préviendra quand ce sera éclairci. Lancement d'un run ================== cd $RDIR/CONF/CONF-CASE[rank_X] Normalement vus devez voir un executable finissant par "4.3.3.1-mpt-intel2016" a. Sauvez vos anciens résultats [optionnel mais conseillé, ne serait-ce que pour être sûr d'utiliser les bons batch_XXX] :: cd rank_0, rank_1 (si rangs) mkdir CAPARMOR mv *log CAPARMOR/ mv *.nc CAPARMOR/ mv mpidebugprepare CAPARMOR/ mv listing* CAPARMOR/ mv *.o* CAPARMOR/ mv batch* CAPARMOR/ b. copier les nouveaux batch_XXX de soumission :: cp /home/datawork-mars/CAP2DAT/batch.tar . tar xvf batch.tar c. preparer le batch que vous voulez utiliser d. pour ceux qui ont des rangs, refaire les liens :: ln -s ../paramain.txt . ln -s ../paracom.txt . e. lancement du job **cas sans rangs** :: rm mpi.txt qsub batch_XXX_no_scratch **cas avec rangs** :: rm mpi.txt cd rank_X qsub -v rank=X batch_XXX_no_scratch **Créer une nouvelle configuration sous Datarmor (avec MKCONFDIR)** ################################################################### Préciser son HOMEMARS dans env_mars.csh, puis la démarche est identique à celle que vous avez toujours connue. Les quelques rares nouveauté concerne la façon de compiler **qsub compile** et les batch de soumission de job. Voir plus haut. Une difficulté concerne l'utilisation de la fonctionnalité PREV_CONFIG. A réfléchir, mais je pense que l'utilisation de la fonctionalité va mettre en avant des erreurs qui ne seront pas génantes. Par contre, il faudra remettre à jour le Makefile.datarmor (options de compilation, clefs CPP) à la main. .. warning :: Le répertoire inputs est dorénavant organisé ainsi : OBST RIVERS SUBS TRAJ TRACK. Ces répertoires contiennent les différents \*.dat Si vous souhaitez garder votre vieille arborescence, ne faites rien de spécial. Si vous souhaitez prendre la nouvelle arborescence, il faut faire - mv inputs inputs_old avant de refaire une config - mkconfdir créera le nouveau répertoire inputs - à vous de remettre les \*.dat que vous utilisiez dans chacun des bons répertoires et d'adapter paraspec.txt, paracom.txt, parasubs.txt... Cette démarche est à faire une fois.