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¶
- 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¶
- 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
- Changer login extranet dans env_mars.csh [ dernière ligne vgXXX]
- 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¶
- 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
- 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
- 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”
- 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/
- copier les nouveaux batch_XXX de soumission
cp /home/datawork-mars/CAP2DAT/batch.tar . tar xvf batch.tar
- preparer le batch que vous voulez utiliser
- pour ceux qui ont des rangs, refaire les liens
ln -s ../paramain.txt . ln -s ../paracom.txt .
- 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.