Wiki » History » Version 111

« Previous - Version 111/169 (diff) - Next » - Current version
Gueguen Mikael, 12/16/2015 11:45 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

PBS

introduction

création de script de soumission, soumission et suivi

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.

vue thor architecture

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

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 job
  • gload : 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 pbs
  • pbsn : 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
       247925.thor           jderes        8 days, 7:50:00
       247973.thor           donghq        4 days, 3:50:00
       247976.thor           donghq        4 days, 3:50:00
       247974.thor           donghq        4 days, 3:50:00
       248069.thor          mdavid10       2 days, 23:50:00
       247975.thor           donghq        4 days, 3: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
Soit un total de :
  • 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 pbs
  • pbsn : 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
    

archi_thor.png - architecture (356 KB) Gueguen Mikael, 05/22/2015 03:27 PM

thor.jpg (519 KB) Gueguen Mikael, 05/22/2015 03:28 PM

IMG_1361.JPG - vue thor (103 KB) Gueguen Mikael, 09/01/2015 11:17 AM

initiation_linux_15-03-2021.pdf (4.61 MB) Laplaceta Pierre Francois, 03/15/2021 04:39 PM