Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


devel:cluster

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
devel:cluster [2017/06/28 12:29] papeleuxdevel:cluster [2017/06/28 15:58] papeleux
Line 124: Line 124:
 ===== Lancer des calculs ===== ===== Lancer des calculs =====
  
-Pour lancer un calcul sur les noeuds, il ne faut pas vous connecter sur les noeuds. L'idée est d'utiliser le système de queues batch fourni avec le cluster (Slurm - Sun Grid Engine) à partir du "master node".+Pour lancer un calcul sur les noeuds, il ne faut pas vous connecter sur les noeuds. A partir du Master Node, les tests sont mis en attente dans un système de queues et sont executés en fonction de la disponibilité des ressources (noeuds, mémoire,...). Auparavant, les queues étaient gérées via [[https://en.wikipedia.org/wiki/Oracle_Grid_Engine|SGE - Sun Grid Engine]] (devenu obsolète suite au rachat par Oracleest remplacé depuis la réinstallation du cluster par [[https://slurm.schedmd.com/|Slurm]]. Notez que la configuration par défaut de Slurm n'ayant pas encore été adaptée à notre utilisation du cluster, elle évoluera certainement.
  
-Encore une fois, il est possible de faire ça manuellement ou grâce aux scripts de Metafor (dans ce cas-ci, c'est "''launch.py''"). Tout comme comp.py, il se trouve dans votre répertoire  "''~/bin''".+L'utilitaire "''launch.py''" (se trouvant, si vous avez bien configuré votre compte, tout comme "''comp.py''" dans votre "''~/bin''") est écrit spécialement pour lancer un ou plusieurs tests Metafor sur les noeuds à travers Slurm.
  
-Ensuite créez un répertoire vide et allez dedans. Tapez "''launch.py''": +<note warning> ATTENTION : Actuellement, "''launch.py''" est limité à l'exécution de calculs sur 1 seul noeud à la fois (plusieurs calculs simultanés sont possibles, mais en restant sur 1 seul noeud)... 
-<code> Actions: +</note> 
- a/ e-mail address (reports)            : 'papeleux' + 
- b/ exec name                           : '../oo_metaB/bin/Metafor' +Une fois organisé un répertoire (BaseDir) contenant l'arborescence des tests et utilitaires à faire tourner et dans lequel les résultats seront écrits (dans le workspace), tapez "''launch.py''": 
- c/ test name                           : 'apps.qs.cont2'+<code>   
 +Actions: 
 + b/ exec name                           : '../Metafor/Metafor' 
 + c/ test filename                       : './banc18ER/casingRotAnalysis/WingletBlade/Coarse3250Eas.py'
  d/ logfile (no ext)                    : 'out'  d/ logfile (no ext)                    : 'out'
  e/ algorithm                           : 'meta'  e/ algorithm                           : 'meta'
 + g/ Run multiple test on dir            : False
  j/ nb of task launched in parallel     : '1'  j/ nb of task launched in parallel     : '1'
- k/ nb of threads by task               : '1+ k/ nb of threads by task               : '12
- m/ Run Method                          : 'sge+ m/ Run Method                          : 'slurm
- n/ SGE queue                           : 'lomem.q+ n/ Queue name                          : 'defq
- o/ SGE run on local disk               : True + o/ Metafor run on node local disk      : True 
- p/ additional SGE args                 : ''+ p/ Total Memory (Mb)                   : '5000' 
 + q/ Time (d-hh:mm:ss)                   : '0-1:00:00'
  u/ ftp transfert                       : False  u/ ftp transfert                       : False
  
Line 147: Line 152:
  Q/ QUIT  Q/ QUIT
  
-Your choice?+ 
 </code> </code>
-Choisissez la méthode de run "m" jusqu'à ce que ce soit "''sge''" qui soit affiché (voir ci dessus). 
-Metafor est capable d'utiliser le disque de chaque noeud comme répertoire de travail et de copier automatiquement les résultats une fois les simulations terminées ("''o/ SGE run on local disk               : True''"). Sauf utilisation particulière ne supportant pas ce mécanisme, utilisez toujours cette option (ca réduit le trafic sur le réseau interne au cluster et limite le risque de corruption des fichiers ouverts à travers le NFS). 
  
-<note warning> +Configurez les chemins vers l'executable Metaforle test (ou le répertoire contenant les tests si "Run multiple test on dir" = True), le nombre de tests devant s'executer en même temps et le nombre de threads par test  
-ATTENTION : A ce jourla configuration des queues via SGE ou le script de lancement des calculs généré par launch.py permet de lancer plusieures tâches en même temps, MAIS seul job tournera effectivement.\\ +(ATTENTION le produit (nbTests * nbThreads) ne peut dépasser le nombre de coeurs sur noeud soit 12)
-Conclusion : ne demandez pas plus d'tâche à la fois par ''launch.py'' \\+ 
 +Choisissez la méthode de run "m" jusqu'à ce que ce soit "''slurm''" qui soit affiché (voir ci dessus). 
 +Metafor est capable d'utiliser le disque de chaque noeud comme répertoire de travail et de copier automatiquement les résultats une fois les simulations terminées ("''o/ Metafor run on node local disk   True''"). Sauf utilisation particulière ne supportant pas ce mécanisme (restart), utilisez toujours cette option (ca réduit le trafic sur le réseau interne au cluster et limite le risque de corruption des fichiers ouverts à travers le NFS). 
 + 
 +Soyez attentif aux paramètres de mémoire ( "''p/ Total Memory (Mb)                   : '1000' ''"
 +et de temps de calcul demandés ("''q/ Time (d-hh:mm:ss)                   : '0-1:00:00' ''"), tout dépassement entrainant l'arrêt instantanné des simulations (et pensez aux programmes annexes : un appel à Matlab en post-traitement pouvant faire croitre de manière importante la mémoire...). D'autre part, Slurm calcule une priorité de lancement des jobs en fonction des ressources demandées => une sur-estimation excessive des ressources pourrait induire un temps d'attente important avant lancement du job (si tous les noeuds sont occupés et que de plus petit jobs sont dans la queue) 
 + 
 +Une fois que le job est lancé, ("''G''") les messages suivant sont affichés 
 <code> <code>
-   j/ nb of task launched in parallel     : '1+Your choice? go in slurm 
 +sending job 'Tests.banc18ER.casingRotAnalysis.WingletBlade.Coarse3250Eas' to Slurm 
 +Submitted batch job 450 
 +Submission SUCCESSFUL! 
 +        use ' squeue -l -450 ' to check the status of the SLURM scheduling queue of your job 
 +        use sprio -l -j 450 ' to check the factor priority of your job 
 +        use ' sstat  -a --format=JobID,NTasks,MaxRSS,MaxVMSize -j 450 ' to get information about your running job (adapt format to your needs) 
 +        use ' scancel 450 ' to kill your job 
 +        use ' sacct --format=JobID,NTasks,NCPUS,CPUTime,Elapsed,MaxRSS,MaxVMSize -j 450 to get information about your finished job (adapt format to your needs) 
 +[papeleux@fabulous Tests]$
 </code> </code>
-(=> splittez vos tests dans plusieurs répértoires et faites plusieurs commandes launch ...) 
-</note> 
  
-Une fois que le job est lancé, il est possible de voir le statut de la queue et du job en faisant: +
-  qstat -f +
-Voilà ce que ça peut donner:+
 <code> <code>
-boman@fabulous:~/dev >qstat -f +  squeue - 
-queuename                      qtype resv/used/tot. load_avg arch          states +</code>
---------------------------------------------------------------------------------- +
-all.q@node001.cm.cluster       BIP   0/5/12         4.86     lx26-amd64 +
-     72 0.58500 fullblade7 boman        r     05/17/2011 12:23:32     5 +
---------------------------------------------------------------------------------- +
-all.q@node002.cm.cluster       BIP   0/0/12         0.00     lx26-amd64 +
---------------------------------------------------------------------------------- +
-all.q@node003.cm.cluster       BIP   0/1/12         1.00     lx26-amd64 +
-     69 0.50500 barbara04f boman        r     05/17/2011 11:24:17     1 +
---------------------------------------------------------------------------------- +
-all.q@node004.cm.cluster       BIP   0/4/12         3.92     lx26-amd64 +
-     73 0.56500 fullblade7 boman        r     05/17/2011 12:23:47     4 +
---------------------------------------------------------------------------------- +
-all.q@node005.cm.cluster       BIP   0/3/12         2.90     lx26-amd64 +
-     74 0.54500 fullblade7 boman        r     05/17/2011 12:24:02     3 +
---------------------------------------------------------------------------------- +
-all.q@node006.cm.cluster       BIP   0/0/12         0.00     lx26-amd64 +
---------------------------------------------------------------------------------- +
-all.q@node007.cm.cluster       BIP   0/1/12         1.00     lx26-amd64 +
-     76 0.50500 fullblade7 boman        r     05/17/2011 12:24:32     1 +
---------------------------------------------------------------------------------- +
-all.q@node008.cm.cluster       BIP   0/0/12         0.02     lx26-amd64 +
---------------------------------------------------------------------------------- +
-all.q@node009.cm.cluster       BIP   0/0/12         0.25     lx26-amd64 +
---------------------------------------------------------------------------------- +
-all.q@node010.cm.cluster       BIP   0/2/12         2.01     lx26-amd64 +
-     75 0.52500 fullblade7 boman        r     05/17/2011 12:24:17     2 +
---------------------------------------------------------------------------------- +
-all.q@node011.cm.cluster       BIP   0/6/12         5.68     lx26-amd64 +
-     71 0.60500 fullblade7 boman        r     05/17/2011 12:17:47     6 +
---------------------------------------------------------------------------------- +
-all.q@node012.cm.cluster       BIP   0/0/12         0.15     lx26-amd64+
  
-############################################################################ +Voilà ce que ça peut donner: 
- PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS +<code> squeue -l 
-############################################################################ +Wed Jun 28 15:24:19 2017 
-     79 0.00000 dev.batter boman        qw    05/17/2011 16:45:02    12+  JOBID PARTITION     NAME     USER    STATE       TIME TIMELIMIT  NODES NODELIST(REASON) 
 +    418      defq  metafor wautelet  RUNNING 16-15:00:54 20-00:00:00      1 node001
 </code> </code>
  
-Pour voir tous les jobs gérés par SGE pour tous les utilisateurs+pour plus d'info sur les commandes Slurm [[devel:slurm|]] 
-  qstat -u '*' + 
-Pour voir les nom complet de vos jobs gérés par SGE: + 
-  qstat -r | grep "Full jobname" -B1 + 
-Pour supprimer son job avant la fin, il suffit de repérer son numéro par "''qstat''" et de faire +
-  qdel [numero]+
 Des mails sont envoyés par SGE pour signaler le démarrage, le kill ou la fin du job.  Des mails sont envoyés par SGE pour signaler le démarrage, le kill ou la fin du job. 
  
Line 222: Line 207:
  
 Nb : le script ''cleanLocalHdd.py'' (inclus dans le répository ''~/bin'') vous permet de voir si vous avez des fichiers trainant sur vos disques locaux et de les nettoyer . Tapez  "''cleanLocalHdd.py --help''" pour plus d'info ... Nb : le script ''cleanLocalHdd.py'' (inclus dans le répository ''~/bin'') vous permet de voir si vous avez des fichiers trainant sur vos disques locaux et de les nettoyer . Tapez  "''cleanLocalHdd.py --help''" pour plus d'info ...
 +
 +Nb2 : Les noeuds de calcul n'ayant pas accès à internet, il n'est pas possible pour eux d'acquérir des licences réseau (type FlexLm ou RLM). Tenez en compte, par exemple pour Samcef en baconnant vos tests préalablement et en copiant le fichier *.fdb à coté du *.dat (Metafor lisant directement le fdb).
  
 Pour plus d'infos sur SGE: [[http://wikis.sun.com/display/gridengine62u5/Home|Doc Oracle de SGE]] Pour plus d'infos sur SGE: [[http://wikis.sun.com/display/gridengine62u5/Home|Doc Oracle de SGE]]
devel/cluster.txt · Last modified: 2017/06/28 16:14 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki