Wiki » History » Version 112
« Previous -
Version 112/169
(diff) -
Next » -
Current version
Gueguen Mikael, 12/16/2015 11:46 AM
Mésocentre SPIN Calcul¶
Introduction/Les calculateurs¶
2 machines de calcul de marque SGI sont disponibles pour des usages différents :
- une machine SMP (à mémoire partagée)
- une machine à mémoire distribuée.
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
).
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
PBS¶
introduction¶
création de script de soumission, soumission et suivi¶
- files définies pour les calculateurs
codes de retour suite à l'arrêt d'un calcul¶
exemples de scripts ¶
Machine de calcul MPI, THOR¶
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.
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
.
La connexion à la machine se fait à l'adresse thor.univ-poitiers.fr
par ssh
sur le port 86 :
ssh -p 86 -X homer@thor.univ-poitiers.fr
monitoring : http://thor-ganglia.univ-poitiers.fr
Documentations à télécharger¶
- Fiche pratique Thor : source:sheet/thor/thorsheet.pdf
- Formation utilisateurs : formation utilisateur thor
librairies MPI¶
Compilateurs¶
Codes installés¶
Les codes installées sont à utilisés avec l'utilitaire module pour le chargement adhoc des variables d'environnement :
[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
librairies installés¶
les librairies dynamiques possèdent généralement un module associé afin de charger correctement l'environnement :
[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
- VTK visualization toolkit
- 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
Système de fichier LUSTRE¶
Commandes¶
espace disque¶
- Connaitre l'espace utilisé sur un répertoire
[homer@thor]$ du -sh 376K .
commandes propres à thor¶
ces scripts sont localisés sous /sw/tools/bin. Pour les utiliser ajouter ce chemin au PATH
dans votre .bashrc
PATH=$PATH:/sw/tools/bin
qmem
: permet de tracer l'utilisation mémoire d'un jobgload
: charge machine données par l'outil de monitoring ganglia[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 %
showq, pestat, ustat
: commandes supplémentaires pbspbsn
: liste les noeuds et leurs états (down, job-exclusive, free
)
- connaitre les noeuds libres :
[homer@thor]$ pbsn |grep free r1i4n11 free 65000000kb 20 r1i4n15 free 65000000kb 20 r1i5n13 free 65000000kb 20 r1i7n9 free 65000000kb 20- compte le nombre de noeuds utilisés
[homer@thor ~]$ pbsn | grep job | wc -l 31
running_job_end
renvoi le nombre de jours restants des calculs en run
[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 ...
HULK - SGI UV2000 - Machine NUMA¶
Le calculateur SGI - UV2000 est une machine à architecture NUMA composée de :- 58 lames de calcul bi-socket avec des processeurs Intel Xeon Sandy Bridge E5-4650 (8 coeurs) et 32 Go de mémoire par lame
- 2 lames de calcul GPGPU Nvidia K20
- 2 lames de calcul avec carte graphique K2000
- un réseau NumaLink6 topologie Hypercube
- un espace de stockage de 19 To utile /data
- 928 coeurs logiques (
hyperthreading actif
) - 1771.84 GB de mémoire total
[homer@hulk ~]$ cpumap Tue Aug 25 13:56:14 CEST 2015 hulk This is an SGI UV model name : Intel(R) Xeon(R) CPU E5-4650 0 @ 2.70GHz Architecture : x86_64 cpu MHz : 2701.000 cache size : 20480 KB (Last Level) Total Number of Sockets : 58 Total Number of Cores : 464 (8 per socket) Hyperthreading : ON Total Number of Physical Processors : 464 Total Number of Logical Processors : 928 (2 per Phys Processor) UV Information HUB Version: UVHub 3.0 Number of Hubs: 60 Number of connected Hubs: 58 Number of connected NUMAlink ports: 576
Architecture de la machine¶
Connexion à la machine de visualisation¶
Soumission interactive sur les GPUS¶
Librairies installées¶
Codes Installés¶
Codes sur GPU¶
commandes propres à HULK¶
placement des processus¶
dplace
Forcer la répartition des coeurs et l'allocation en local de la mémoire :
dplace -e -n nom_programme -c 0-16 numactl -l nom_programme
ici le programme "nom_programme" et a été lancée sur 16 coeurs (code openmp par exemple)
l'utilisation de dplace
évite le load balancing des nouveaux noyaux Linux : la mémoire est allouée sur la même lame que le coeur de calcul alloué
scripts utilitaires¶
ces scripts sont localisés sous /sw/tools/bin
. Pour les utiliser, il faut ajouter ce chemin au PATH
dans votre .bashrc
PATH=$PATH:/sw/tools/bin
showq, pestat, ustat
: commandes supplémentaires pbspbsn
: liste les noeuds et leurs états (down, job-exclusive, free
)
- connaitre les noeuds libres :
[gueguenm@hulk ~]$ pbsn | grep free hulk[0] free 1825868688kb 912 hulk[1] free unknown 912 hulk[8] free 32489472kb 16 hulk[9] free 32489472kb 16 hulk[13] free 32489472kb 16 hulk[15] free 32489472kb 16 hulk[16] free 32489472kb 16 hulk[17] free 32489472kb 16 hulk[19] free 32489472kb 16 hulk free 0b 0 hulk[20] free 32489472kb 16 hulk[21] free 32489472kb 16 hulk[22] free 32489472kb 16 hulk[29] free 32489472kb 16 hulk[32] free 32489472kb 16 hulk[43] free 32489472kb 16
get_mem_usage -all|me
: connaitre l'utilisation mémoire de la machine pour l'ensemble des processus ou pour ces propres processus.[gueguenm@hulk ~]$ get_mem_usage -all HULK Mem Total 135.647 GB [gueguenm@hulk ~]$ get_mem_usage -me PID STAT RSS %CPU COMMAND 336776 S+ 1364 0.0 /bin/bash /sw/tools/bin/get_mem_usage -me 336778 R+ 1188 82.0 ps -u gueguenm -o pid,stat,rss,pcpu,command 336779 S+ 980 0.0 awk {print $0}{sum+=$3} END {print "Mem Total for $USER", sum/(1024**2), "GB"} 421274 S 1980 0.0 sshd: gueguenm@pts/9 421275 Ss 2392 0.0 -bash Mem Total for $USER 0.00753784 GB
qmem
: connaitre l'utilisation mémoire d'un job :[gueguenm@hulk ~]$ qmem -job=9322 Memory Usage for job : 9322 ------------------------------- hulk[14] hulk[15] hulk[16] hulk[17 ] hulk[18] hulk[19] hulk[20] hulk[22] hulk[23] hulk[24] hulk[ 25]-> number of host requested : 11 user : fboisson,JID : 9322 -> Mem Nodes used : mems 14-25 -> RAM mem = 16.185546875 (GB) ; TOT mem = 1424.21557235718 (GB) -> nb user pid : 322