Comment lancer un calcul

A partir du poste Windows

  • Ouvrir Forge NxT 3.1
  • Préparer son calcul et sauver son projet forge sur le disque du cluster (\\nas-in1-cluster.cemef.mines-paristech.fr\firstname.lastname\MyForgeProject)
  • Dans l’onglet “Computations”, choisir “cluster_cemef” pour le champ “Machine name” et indiquer le nombre de coeurs utilisés (28 max conseillés)
  • Lancer le calcul

Connecté sur le cluster

Voici la procédure :

  • préparer via le lanceur sous Windows la mise en donnée d’un cas localisée sur votre répertoire du Cluster (nas-in1-cluster)
  • se déplacer dans le répertoire $HOME/“votre arborescence”/case_directory ( où il y a le fichier .ref)
  • créer l’arborescence de calcul indispensable au Lanceur Forge pour pouvoir ensuite exploiter les résultats avec Glview
  • se déplacer dans le sous-répertoire de calcul où il y a les fichiers .ref, .mau et *.mtc
  • Créer ou copier un fichier de configuration .cfg dont un exemple se trouve dans /softs/tsv/forge_nxt_3.1/scripts/forge.cfg. Exemple de récupération de fichier de configuration dans son répertoire de calcul :
cp /softs/tsv/forge_nxt_3.1/scripts/forge.cfg $PWD
  • Editer ce même fichier et personnaliser les paramètres suivants :
    • FORGE_EXECUTABLE : le chemin absolu du binaire forge NxT 3.1 (par défaut “/softs/tsv/forge_nxt_3.1/bin/forge3_x64_openmpi_1.4.2”)

    • FORGE_USER_ROUTINES_LIBRARY_PATH : chemin où se trouve la librairie utilisateur forge3userroutines.so (par défaut /softs/tsv/forge_nxt_3.1/lib)

    • SIMULATION_FILENAME : nom du fichier de simulation (champ obligatoire, fichier qui se termine par l’extension.ref, par exemple initial_cooling.ref)

    • COMMAND_AFTER_JOB : commande à lancer lorsque la simulation forge 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 (champ obligatoire. S’assurer d’avoir au moins 20000 noeuds de maillage par cœur)

    • 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 :
forge_run.sh -f forge.cfg

Voici un exemple, en considérant que vous ayez créé un cas test Spindle.tsv dans votre répertoire du compte du cluster, avec les commandes suivantes :

cd Spindle.tsv
mkdir Analysis mkdir Analysis/ResultDataBase
cp -rp Initial_cooling Analysis/ResultDataBase/1_Initial_Cooling cd Analysis/ResultDataBase/1_Initial_Cooling
cp /softs/tsv/forge_nxt_3.1/scripts/forge.cfg $PWD
=> edit and configure forge.cfg, save and exit forge_run.sh -f forge.cfg
  • Pour lancer un calcul sur un nœud 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 forge.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 précédente (Initial_Cooling), le fichier .log est initial_cooling.log (le mot clé “initial_cooling” est la valeur du champ MPI_JOB_NAME du fichier forge.cfg)
  • 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 :
forge_run.sh -s now
    • avec enregistrement des derniers calculs (forge 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 :
forge_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 :
forge_run.sh -f forge.cfg -r