Comment lancer un calcul

Il faut d’abord copier le projet sur le cluster. A partir du poste windows, ouvrir Digimu 4.0 Launcher, préparer son calcul et sauver le projet sur le disque du cluster, c’est-à-dire sur le lecteur réseau \\nas-in1-cluster.cemef.mines-paristech.fr\prenom.nom.

Si ce lecteur n’est pas présent dans l’explorateur de fichier, faire un clique droit sur C:, choisir “Connecter un lecteur réseau” et entrer l’adresse \\nas-in1-cluster.cemef.mines-paristech.fr\prenom.nom (le disque apparaîtra avec une lettre arbitraire dans l’explorateur de fichier)

Lancement automatique d’un calcul

Depuis le lanceur digimu, faire un clique droit sur le projet et choisir “Quick launch“, puis dans l’onglet “Computations“, choisir “cluster_cemef” (voir paragraphe plus bas) pour le champ “Machine name“, indiquer le nombre de coeurs utilisés (28 max conseillés) et cliquer sur “Submit now” (le calcul sera distribué arbitrairement sur les noeuds du cluster)

Si le champ “cluster_cemef” n’apparaît pas, ouvrir un explorateur de fichier et taper l’adresse \\filer-1.corp.sophia.mines-paristech.fr\CEMEF\Developpement\digimu\patchClusterCemef\clusterConfiguration.bat, exécuter puis taper O et entrer dans la console qui apparaît.

Si le champ “cluster_cemef” n’apparaît pas, ouvrir un explorateur de fichier et taper l’adresse \\filer-1.corp.sophia.mines-paristech.fr\CEMEF\Developpement\digimu\patchClusterCemef\clusterConfiguration.bat, exécuter puis taper O et entrer dans la console qui apparaît.

A noter que l’on reçoit un mail si le calcul échoue ou s’il est terminé.

Pour spécifier que l’on souhaite lancer un calcul sur un noeud uniquement (attention valable uniquement pour un nombre de coeurs spécifié inférieur ou égal à 28), cliquer sur “Specify Nodes”, désélectionner tous les noeuds et en sélectionner un seul (peu importe), le calcul sera lancé sur un noeud libre du cluster.

Lancement manuel d’un calcul

Le lancement manuel permet en particulier de paramétrer plus précisément sur quels nœuds du cluster on souhaite lancer le calcul. Pour cela :

  • se connecter sur le cluster à l’aide de Putty ou ConEmu
  • éditer le fichier ~/.bashrc et ajouter (ou modifier), en fin de fichier, la ligne :
export DIGIMU_LAUNCH_SIMULATION=false
  • sauver et fermer le fichier (attention pour revenir à un lancement automatique du calcul, il faut remplacer false par true)
  • optionnellement, on peut choisir de ne pas recevoir de mail lorsque le calcul échoue ou s’il se termine. Pour cela, dans le fichier précèdent, ajouter (ou modifier) la ligne :
export DIGIMU_SEND_MAIL=false
  • revenir dans l’interface digimu, faire un clique droit sur le projet et choisir “Quick launch“. Dans l’onglet “Computations“, choisir “cluster_cemef” (si le champ n’apparaît pas, voir section précédente “Lancement automatique d’un calcul“) pour le champ “Machine name” et cliquer sur “Submit now
  • revenir sur la console Putty ou ConEmu et se déplacer dans le répertoire où se trouve le projet que l’on vient de sauver (où se trouve- le fichier .tpf)
  • se déplacer dans le sous-répertoire de calcul où se trouvent les fichiers .ref, *.mtc,… (…/Analysis/ResultDataBase/1_…/)
  • Editer le fichier digimu.cfg et personnaliser les paramètres suivants :
    • DIGIMU_EXECUTABLE : le chemin absolu du binaire Digimu 4.0 (par défaut “/softs/tsv/digimu_4.0/bin/digimu_x64_openmpi_1.4.2”)
    • SIMULATION_FILENAME : nom du fichier mtc principale (champ obligatoire, fichier qui se termine par l’extension .mtc, par exemple initial_cooling.mtc)
    • COMMAND_AFTER_JOB : commande à lancer lorsque la simulation digimu se termine (par défaut, cette commande est lancée /usr/local/bin/oar_send_mail_when_job_is_finished.sh et permet de recevoir un mail uniquement lorsque le calcul est fini et s’est déroulé correctement)
    • NUMBER_CORES_USED : nombre de cœurs de calcul à utiliser
    • NUMBER_NODES_USED : nombre de nœuds à utiliser (par défaut vide. Attention si ce paramètre n’est pas laissé vide, le nombre de cœurs total utilisé sera NUMBER_CORES_USED * NUMBER_NODES_USED par exemple pour 4 nœuds et 5 cœurs, la simulation utilisera 20 cœurs au total, soit 5 cœurs par nœud)
    • MPI_JOB_NAME : le nom (arbitraire) du job que l’on lance (sert à titre informatif pour le retrouver sur la page http://front-in1-cluster.cemef.mines-paristech.fr/monika)
    • MPI_WALL_TIME : durée approximative de temps de calcul au format hh:mm:ss (par défaut 1440:00:00 soit 1440 heures. Après cette durée, le calcul est arrêté brutalement)
    • WAIT_JOB_IDENTIFIER : identifiant du job après lequel lancer la simulation (par défaut vide. Permet de lancer 1 simulation uniquement lorsqu’une en cours sera terminée
    • SCHEDULER_PROPERTY : sur quels noeuds ou types de noeuds lancer la simulation (par défaut sur les noeuds comportant 24 ou 28 coeurs. Par exemple la valeur “host=’n-in52′ or host=’n-in55′” indique que l’on souhaite que le calcul ne fasse que sur le noeud 52 ou 55 ou sur les 2 suivant le nombre de coeurs que l’on a indiqué soit NUMBER_CORES_USED)
  • Lancer la simulation avec la commande suivante :
digimu_run.sh -f digimu.cfg

Bon à savoir

  • Pour lancer un calcul sur un ou plusieurs nœuds en particulier, aller sur le site web http://front-in1-cluster.cemef.mines-paristech.fr/monika pour voir quels sont les nœuds libres (indiqués par les cases Free). Le numéro du nœud est indiqué sur la colonne de gauche (n-in17,…, n-in80). Exemple de lancement de calcul sur le noeud n-in52 ou n-in55, on écrit pour cela dans le fichier digimu.cfg :
SCHEDULER_PROPERTY "host='n-in52' or host='n-in55'"
  • Pour vérifier que le calcul s’est bien lancé, regarder le résultat de la commande oarmyjobs. Si le statut du calcul est R (Running), le calcul s’est bien lancé et est en cours, exemple :
oarmyjobs

Job id S User Duration System message
--------- - -------- ---------- -----------------------
1091741 R john.doe 0:00:07 R=2,W=1:0:0,J=I,T=small

job-id : numero unique du job (utile pour arrêter le calcul)
S : statut du calcul (R = running, F = finished, W = waiting)
Duration : durée du calcul depuis son lancement
System message : R=2 (2 coeurs utilisés), W=1:0:0 (durée maximum du calcul)
  • Pour visualiser l’avancement du calcul, editer le fichier .log qui se trouve dans le répertoire de calcul. Si l’on reprend l’exemple de simulation donnée plus bas (Tutorial_1_Pure_Grain_Growth.tsv), le fichier .log est Digimu_Test_idJob.log (le mot clé “Digimu_Test” est la valeur du champ MPI_JOB_NAME du fichier digimu.cfg et “idJob” le numéro du job)
  • Pour arrêter le calcul, 2 possibilités :
    • brutalement, se placer dans le répertoire où l’on a lancé le job et taper la commande suivante :
digimu_run.sh -s now
  • avec enregistrement des derniers calculs (digimu attendra  la fin de l’itération pour arrêter correctement le calcul), se placer dans le répertoire où l’on a lancé le job et taper la commande suivante :
digimu_run.sh -s clean
  • Pour vérifier que le calcul est arrêté, lancer la commande suivante (répéter la commande plusieurs fois car l’itération en cours du calcul peut prendre du temps avant de se terminer) :
oarmyjobs
  • Reprise de calcul : relancer simplement le calcul, se placer dans le répertoire où l’on a lancé le job et taper la commande :
digimu_run.sh -f digimu.cfg -r

Exemple de lancement manuel

Voici un exemple de cas test dont plusieurs tutoriaux se trouvent sur le cluster dans le répertoire /softs/tsv/digimu_4.0/tests.

Dans cet exemple, il n’est pas nécessaire de passer l’interface windows digimu car la mise en donnée se trouve déjà sur le cluster. Les commandes à faire sont :

cp -r /softs/tsv/digimu_4.0/tests/Tutorials.tsv/Tutorial_1_Pure_Grain_Growth.tsv $PWD
cd Tutorial_1_Pure_Grain_Growth.tsv
cp -p Tutorial_1_Pure_Grain_Growth/*  Analysis/ResultDataBase/1_Tutorial_1_Pure_Grain_Growth/.
cd Analysis/ResultDataBase/1_Tutorial_1_Pure_Grain_Growth
cp /softs/tsv/digimu_4.0/resources/remeshing_scripts/* $PWD
cp /softs/tsv/digimu_4.0/scripts/digimu.cfg $PWD
  => edit digimu.cfg and set tutorial_1_pure_grain_growth.mtc for SIMULATION_FILENAME, save and exit
digimu_run.sh -f digimu.cfg