Wiki » History » Version 125

Version 124 (Gueguen Mikael, 03/25/2016 02:40 PM) → Version 125/169 (Gueguen Mikael, 03/25/2016 02:41 PM)

h1. Mésocentre SPIN Calcul

h1. Introduction/Les calculateurs

2 machines de calcul de marque _SGI_ sont disponibles pour des usages différents :

* une machine SMP (à mémoire partagée ; voir le wiki https://forge.univ-poitiers.fr/projects/calculateur-hulk/wiki)
* une machine à mémoire distribuée ; ce présent wiki

Chaque calculateur dispose de PBSpro avec des files et des usages définis spécifiquement. Ils disposent aussi d'outils et librairies de calcul spécifiques performants proposés par le constructeur (@mpt,perfboost,MPInside, blcr@).

h2. assistance

* utiliser l'adresse @hpc at support.univ-poitiers.fr@
* création d'un ticket sur le site : https://forge.univ-poitiers.fr/projects/mesocentre-spin-git/issues/new
* pour le calculateur @HULK@ : https://forge.univ-poitiers.fr/projects/calculateur-hulk/issues/new

h2. PBS

h3. [[introduction]]

h3. création de script de soumission, soumission et suivi

* [[principales directives de PBS]]

* [[commandes PBS]]

* [[ variables définies à la soumission d'un job]]

* [[ files définies ]] pour les calculateurs

* [[ dépendances entre jobs]]

* [[ jobs array]]


h3. codes de retour suite à l'arrêt d'un calcul

* [[codes de retour]]

h3. [[ exemples de scripts ]]


-----------------------------------------------------

h1. Machine de calcul MPI, THOR

p. La machine de calcul Thor est un cluster MPI SGI ICE-X de 2300 coeurs. Il est composé de 115 lames de calcul bi-socket Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz (20 coeurs par lames) avec 32 Go de mémoire par socket soit 3.2 Go par coeurs.

p. Chaque lame est raccordée à un réseau Infiniband hypercube enhanced FDR à 56 Gbit/s. Le stockage des données de calcul est basé sur un système de fichier parallèle Lustre 2.5 via le réseau Infiniband. Il offre une capacité de 56 To pour le répertoire @/scratch@ et de 21 To pour le répertoire @/home@.

p=. !{width: 20%}IMG_1361.JPG! !{width: 40%}archi_thor.png!

La connexion à la machine se fait à l'adresse @thor.univ-poitiers.fr@ par @ssh@ sur le port 86 :

<pre><code>ssh -p 86 -X homer@thor.univ-poitiers.fr</code></pre>

p. monitoring : http://thor-ganglia.univ-poitiers.fr

h2. Documentations à télécharger

* Fiche pratique Thor : source:sheet/thor/thorsheet.pdf

* Formation utilisateurs : {{dmsf(113)}}

h2. [[librairies MPI]]

h2. [[Compilateurs]]

h2. [[Profilage de code MPI]]

h2. Codes installés

Les codes installées sont à utilisés avec l'utilitaire module pour le chargement adhoc des variables d'environnement :
<pre>
[homer@thor ~]$ module avail codes

------------------------------------------------------- /sw/Modules/modulefiles -------------------------------------------------------
codes/abinit/7.10.1 codes/lammps/2013 codes/saturne/3.2.1 codes/vasp/5.3/kpar codes/wien2k/2014
codes/espresso/5.1.1 codes/openfoam/2.3.1 codes/vasp/5.3/gamma codes/vasp/5.3/noncol codes/zebulon/Z8.6
</pre>

* [[spin_wien|Code WIEN2k]]
* [[spin_vasp|Code VASP]]
* [[spin_lammps|Code LAMMPS]]
* [[spin_abinit| Abinit]]
* [[spin_espresso| Espresso]]
* [[spin_saturne| Code Saturne]]
* [[spin_abq| abaqus]]
* [[spin_openfoam| foam]]

h2. librairies installés

les librairies dynamiques possèdent généralement un module associé afin de charger correctement l'environnement :
<pre>
[homer@thor ~]$ module avail lib
------------------------------------------------------- /sw/Modules/modulefiles -------------------------------------------------------
lib/boost/1.55 lib/fftw/3.3.4 lib/mumps/4.10.0 lib/parmetis/4.0.3 lib/petsc/3.5.2-opt
lib/cgns/3.1.4 lib/metis/5.1.0 lib/mumps/5.0.0 lib/petsc/3.4.3-opt lib/vtk/5.10.1
</pre>

* [[spin_vtk| VTK]] visualization toolkit
* [[spin_boost| BOOST]] librairie c++
* [[PETSc]] librairie de calcul parallèle
* [[blcr]] utilitaire pour faire du Checkpoint / Restart
* [[perfboost]] utilitaire pour améliorer les performances d'un code MPI non compilé avec la librairie MPT de SGI

h2. [[ utilitaires ]]

h2. [[ Système de fichier LUSTRE]]

h2. Commandes

h3. espace disque

* Connaitre l'espace utilisé sur un répertoire
<pre>
[homer@thor]$ du -sh
376K .
</pre>

h3. commandes propres à *thor*

*ces scripts sont localisés sous /sw/tools/bin. Pour les utiliser ajouter ce chemin au @PATH@ dans votre @.bashrc@*
<pre>
PATH=$PATH:/sw/tools/bin
</pre>

* @pbs_queue@ : permet de lister les informations relatives à chaque files définies et la politique de tri des jobs :
<pre>
[gueguenm@thor cavity_1MC3D4T_d02_allEvol]$ pbs_queue -h
usage: pbs_queue [-h] [--verbose]

Report queue information
--------------------------------
Col 1 : name of queue
Col 2 : Max Possible Walltime
Col 3 : Max number of Possible running job for one user in this queue
Col 4 : Max number of Possible running job for overall users in this queue
Col 5 : Max number of Possible Queued job for one user in this queue
Col 6 : Max number of Possible Queued job for overall users in this queue
Col 7 : Priority Value for this queue
Col 8 : number of Jobs (running and queued)
Col 9 : number of Running jobs
Col 10 : number of Queued jobs

[gueguenm@thor]$ pbs_queue

=====================================================================================================
Queue Max MaxRun MaxRun MaxQueued MaxQueued Priority Current Running Queued
Walltime /user forall /user forall Jobs Jobs Jobs
=====================================================================================================
workq -- 0 0 0 0 - 0 0 0
default -- 0 1 0 0 - 13 0 13
large 30:00:00 1 2 1 2 100 1 0 1
small_long 600:00:00 8 8 5 10 20 10 5 5
medium 90:00:00 4 4 6 10 300 9 4 5
normal 110:00:00 5 10 10 15 300 15 3 12
small 96:00:00 0 10 4 10 60 10 4 6
test 01:00:00 0 6 1 6 150 1 1 0
R328002 720:00:00 0 0 0 0 - 7 7 0
S328032 12:00:00 0 0 0 0 - 0 0 0
R328225 4055:00:00 0 0 0 0 - 18 13 5
Sorting Jobs policy use : 5*job_requested_cpus+queue_priority+prio+eligible_time/3600.0
</pre>

* @qmem@ : permet de tracer l'utilisation mémoire d'un job
<pre>
[gueguenm@thor 5cycl]$ qmem --job=339337
Memory Usage for job : 339337
-------------------------------
-> ncpu per host requested : 20
-> number of host requested : 4
user : tnakano,JID : 339337,
host : r1i7n0 r1i7n1 r1i7n2 r1i7n3
-> r1i7n0 : RAM mem = 14.2385063171387 (GB) ; TOT mem = 19.9174461364746 (GB)
-> nb user pid : 24
-> r1i7n1 : RAM mem = 13.5929222106934 (GB) ; TOT mem = 24.9528999328613 (GB)
-> nb user pid : 24
-> r1i7n2 : RAM mem = 14.2325859069824 (GB) ; TOT mem = 25.5949440002441 (GB)
-> nb user pid : 24
-> r1i7n3 : RAM mem = 13.8947525024414 (GB) ; TOT mem = 25.2552146911621 (GB)
-> nb user pid : 24

</pre>
* @gload@ : charge machine donnée par l'outil de monitoring ganglia
<pre>
[homer@thor]$ gload
total cpus available : 2460
total used nodes : 110
total used process : 1969
1mn load on thor : 78.9272357723577 %
idle load on thor : 20.4073170731707 %

</pre>
* @showq, pestat, ustat@ : commandes supplémentaires pbs
* @pbsn@ : liste les noeuds et leurs états (@down, job-exclusive, free@)
> * connaitre les noeuds libres :
> <pre>
[homer@thor]$ pbsn |grep free
r1i4n11 free 65000000kb 20
r1i4n15 free 65000000kb 20
r1i5n13 free 65000000kb 20
r1i7n9 free 65000000kb 20
</pre>
> * compte le nombre de noeuds utilisés
><pre>
[homer@thor ~]$ pbsn | grep job | wc -l
31
</pre>

* @running_job_end@ renvoi le nombre de jours restants des calculs en run
><pre>
[homer@thor ~]$ running_job_end
JID user date
----------------------------------------------------
226217.thor dmagne 24 days, 23:50:00
226279.thor dmagne 24 days, 23:50:00
226280.thor dmagne 24 days, 23:50:00
...
</pre>