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

  1. On ne choisit pas la frontale (datarmor[0-3]) sur laquelle on se logue.
  2. Sous $SCRATCH, les fichiers sont effacés au bout de 15 jours
  3. Le répertoire /scratch/tmp est visible de toutes les frontales et par tous les utilisateurs (777). A utiliser pour les échanges.
  4. 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

  1. Changer login extranet dans env_mars.csh [ dernière ligne vgXXX]
  2. 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
  1. 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])
  2. Mettre à jour le descriptif des options de compilation disponibles (reprendre celles précisées sous votre Makefile.caparmor[_rankX])
  3. 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”

  1. 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/
  1. copier les nouveaux batch_XXX de soumission
cp /home/datawork-mars/CAP2DAT/batch.tar .
tar xvf batch.tar
  1. preparer le batch que vous voulez utiliser
  2. pour ceux qui ont des rangs, refaire les liens
ln -s ../paramain.txt .
ln -s ../paracom.txt .
  1. 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.