Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
15/11/2018 2
Les grappes de calcul
Type de machines de calcul :
➢UMA : Uniform Memory Access (machines SMP)
➢NUMA : None Uniform Memory Access (plusieurs machines SMP interconnectées par un réseau plus ou moins rapide)
15/11/2018 3
UMA
Machine à mémoire partagée, tous les processeurs accèdent à toute la mémoire
➢Avantages :
➢Espace d'adressage unique
➢Facile à programmer (OpenMP)
➢Scalabilité
➢Inconvénients :
➢Portabilité des applications
➢Limitée en nombre de CPUs
➢Limitée par la bande passante
➢Coût
15/11/2018 4
NUMA
Espace mémoire distribué sur chaque nœud de calcul. L'accès à la mémoire se fait via un
réseau d'interconnexion (Ethernet, infiniband)
➢Avantages :
➢Accès rapide à la mémoire locale
➢Non limitée en nombre de CPUs
➢(Top 500 : Sunway TaihuLight 10,649,600 cœurs, Rpeak 125 Pflop/s)
➢coût
➢Inconvénients :
➢Plus complexe à programmer (MPI) l'utilisateur doit gérer les communications
➢Administration système plus complexe
15/11/2018 5
Les grappes de calcul à l'observatoire
➢MesoPSL1 (2011)
➢ 216 cœurs - 3.06 GHz - 2 Go
➢ 29 To Lustre
➢MesoPSL (2012)
➢ 2128 cœurs - 2.6 GHz - 4 Go
➢ 128 To
➢ Infiniband
➢AstroA (Mars 2018)
➢ 1152 cœurs - gros noeuds 96 cœurs - 768 Go
➢ 426 To
➢Tycho
Tier – 0PRACETGCC
Tier – 1GENCI
IDRIS – CINES – CCRT
Tier – 2Meso-centres
PSL
15/11/2018 6
La grappe Tycho
La grappe est constituée de :
➢1 frontale (tycho) et 1152 cœurs de calcul
➢12 noeuds : quadri[17-28] (Juin 2010)
8 coeurs, Intel Xeon à 2.27 GHz, 24 Go de mémoire,
160 Go d'espace disque local
➢52 nœuds :
➢tycho[01-20] (Oct. 2013)
➢tycho[21-24] (Nov. 2015)
➢tycho[26,29-32] (Mar. 2016)
16 coeurs, Intel Xeon à 2.60 GHz, 64 Go de mémoire,
1,7 To d'espace disque local
15/11/2018 7
La grappe Tycho
➢1 noeuds : tycho25 (Juillet 2015)
16 coeurs, Intel Xeon à 3.2 GHz, 96 Go de mémoire, 3,6 To d'espace disque local
➢2 noeuds : tycho[27-28] (Janvier 2016)
24 coeurs, Intel Xeon à 2.6 GHz, 256 Go de mémoire, 2,6 et 4,5 To d'espace disque
➢4 noeuds : tycho[33-36] (Septembre 2017)
24 coeurs, Intel Xeon à 2.2 GHz, 128 Go de mémoire, 1,6 To d'espace disque local
➢8 noeuds : tycho[37-44] (Décembre 2017)
16 coeurs, Intel Xeon à 2.1 GHz, 96 Go de mémoire, 0,7 To d'espace disque local
➢4 noeuds : tycho[45-48] (Décembre 2017)
24 coeurs, Intel Xeon à 2.3 GHz, 128 Go de mémoire, 1,6 To d'espace disque local
➢4 noeuds : tycho[49-52] (Novembre 2018)
24 coeurs, Intel Xeon à 2.3 GHz, 192 Go de mémoire, 1,6 To d'espace disque local
15/11/2018 8
Tycho
15/11/2018 9
La grappe Tycho
Espaces de stockage :
➢/obs/son_login
8.8 To - 30 Go/user - Sauvegardé tous les jours
➢/data/son_login
18 To - 60 Go/user - Sauvegardé toutes les semaines
➢/poubelle/son_login
54 To - non sauvegardé, nettoyé tous les 120 jours
➢/scratch/son_login
1,7 To - local, non sauvegardé, nettoyé tous les 20 jours
15/11/2018 10
La grappe Tycho
Accès à la grappe :
➢Faire une demande de compte à [email protected]
(Compte LDAP)
➢Inscription automatique à la liste de diffusion [email protected] (Machine parallèle de l'Observatoire de Paris-Meudon) pour être informé des arrêts programmés de la grappe ou des mises à jour des logiciels
15/11/2018 11
La grappe Tycho : logiciels
Les logiciels sont installés à la demande, plusieurs versions peuvent
être disponible (module available)
https://dio.obspm.fr/Calcul/logiciels_pour_tycho
Les logiciels payant nécessitant une licence :
https://sionet.obspm.fr/mrtg/mrtg-logiciel.html
15/11/2018 12
La grappe Tycho : Compilateurs
Les compilateurs C/C++
➢gcc, g++ 6.3.0 / gcc ,
Les compilateurs Fortran
➢GNU Fortran 6.3.0 / gfortran
➢Intel Fortran 19.0.0 / ifort
➢NAGWare Fortran 6.0 / f95.nag (nag-server)
15/11/2018 13
La grappe Tycho : Parallélisme
➢OpenMP
➢ifort -qopenmp
➢gfortran -fopenmp
OMP_NUM_THREADS
➢MPI
➢OpenMPI (module load openmpi)
OMPI_FC
OMPI_FCFLAGS
15/11/2018 14
La grappe Tycho : slurm
➢Simple Linux Utility for Resource Management
➢Utilisé sur MesoPSL
➢2 fonctions :
➢Gestion des ressources
➢Exécution des tâches, limitations des tâches / nœud / utilisateur
➢Comptabilité : heures consommées
➢Extinction des nœuds
➢Ordonnancement des tâches
➢Backfill, fairshare, priorité, préemption, réservation
15/11/2018 15
SLURM
➢Partitions/Queues
➢Publiques : short, medium, long, verylong
➢Publique basse priorité : low
➢Accès prioritaire aux nœuds dédiés : mis, gaia, skybot, grace, virage, plato, mosaic
➢ Limitations
➢Globale : 80 cœurs par utilisateur
15/11/2018 16
SLURM
Durée max. tychoNN quadriNN noeud max/job
Queues publiques
short 1 h 03-16, 53-56 4
medium 1 j 01-24,26-32,53-56 17-25 4
long 5 j 01-48
sauf 03,16, 25
17-28 4
verylong 15 j 01-32
sauf 03, 12-16,25
17-22 4
nag 15 j 03=nag-server
Queue basse priorité préemptible
low 15 j 03-16 17-28 5
15/11/2018 17
SLURM
Durée max. tychoNN quadriNN Coeurs max/util
Queues pour accès prioritaire
mis 15 j 01, 22-24, 37-44
gaia 15 j 02, 21, 33-36, 49-52
skybot 15 j 17-20
grace 15 j 25
virage 15 j 26, 45-48
plato 15 j 27-28
mosaic 15 j 29-32
15/11/2018 18
SLURM : Préemption
➢Préemption : mise en pause et en swap par un job prioritaire
➢Un job lancé sur short, medium, long, verylong ou low et
occupant le nœud dédié tycho01 (vs tycho02, vs tycho[17-20])
sera préempté par un job lancé sur la partition mis (vs gaia, vs
skybot…)
➢Un job lancé sur low pourra être interrompu par n'importe quel
autre job
15/11/2018 19
SLURM : Commandes
➢sbatch : soumission d'un script
tycho> sbatch monjob.slurm
submitted batch job 12345
➢salloc : exécution interactive
tycho> salloc -t 10 -J monJob
salloc : Granted job allocation 12346
➢squeue : liste des jobs
tycho> squeue
15/11/2018 20
SLURM : Commandes
tycho> squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST
381 long MonProg marchand R 2-23:49:59 2 tycho[03-04]
472 medium Test vaillant R 23:18 1 tycho06
473 medium MonProg marchand PD 0:00 1 (ressources)
tycho> squeue -o « %.7i %.8j %.8u %Q»
JOBID NAME USER PRIORITY
381 MonProg marchand 73
472 Test vaillant 53
473 MonProg marchand 51
15/11/2018 21
SLURM : Commandes
➢sinfo : information sur les partitions
➢sacct : récapitulatif des jobs sur une période
tycho> sacct -o jobid,user,nodelist,state
tycho> sacct -helpformat
➢scontrol : visualisation et modification d'un job
tycho> scontrol show job {jobid}
tycho> scontrol update JobID={jobid} TimeLimit=10:00:00
15/11/2018 22
SLURM : commandes
➢Commandes utiles :
➢proc.use.sh : nombre de cœurs utilisés par noeud
➢proc.use2.sh : temps de réservation des nœuds
➢pdsh -a df /scratch
➢scratch_ls : liste le contenu de /scratch/$USER sur tous les nœuds
➢scratch_du : affiche l'espace occupé par /scratch/$USER sur tous les nœuds
➢scratch_rm {liste_noeuds} : efface le contenu de /scratch/$USER sur les nœuds passés en paramètre (option -a)
15/11/2018 23
SLURM : Script
#!/bin/bash
#SBATCH --job-name=MonProg {Nom du programme}
#SBATCH --nodes=2 --ntasks-per-node=16 {Le nombre de noeud et de coeurs/noeud}
#SBATCH --time=120 {Le temps en minute ou D-HH:MM:SS}
#SBATCH --partition=medium {La file d'attente}
#SBATCH --mem=1gb {la mémoire globale}
mpiexec ./MonProg > MonProg.out
15/11/2018 24
SLURM : /scratch
➢/scratch est local à chaque nœud
Rapidité d'accès
Destiné aux jobs en exécution sur le nœud
L’espace doit être libéré en fin de job
Pas toujours accessible pour des raisons d'économie d'énergie :
extinction automatique des nœuds après une demi journée
d'inactivité
15/11/2018 25
SLURM : /scratch
#!/bin/bash
#SBATCH ...
SCRATCH=/scratch/$USER/run.${SLURM_JOBID}
srun --ntasks=$SLURM_JOB_NUM_NODES mkdir -p $SCRATCH
cd $SCRATCH
srun --ntasks=$SLURM_JOB_NUM_NODES cp /obs/$USER/MonProg .
srun --ntasks=$SLURM_JOB_NUM_NODES cp /data/$USER/MesDonnees .
mpiexec ./MonProg > MonProg.out
...
15/11/2018 26
SLURM : /scratch
...
mpiexec ./MonProg > MonProg.out
srun --ntasks=$SLURM_JOB_NUM_NODES mv MesResultats /data/$USER
cd ${SLURM_SUBMIT_DIR}
mv ${SCRATCH}/MonProg.out .
srun --ntasks=$SLURM_JOB_NUM_NODES rm -rf ${SCRATCH}
15/11/2018 27
SLURM : interactif
➢Pour exécuter une application sur un des nœuds :
tycho> salloc -t 04:00:00 -p medium -n 1 -c 1 srun --pty --x11 matlab
➢Pour travailler de façon interactive :
tycho> salloc -t 10 -J NomJob -p short srun --pty bash
Salloc: Job allocation 12345
quadri17>
15/11/2018 28
Machine de post-traitement
Johannes :
➢48 coeurs Intel Xeon 3.00GHz
➢1,5 To de mémoire partagée entre les cœurs
➢https://dio.obspm.fr/Calcul/posttraitement
15/11/2018 29
Liens
➢Aide en ligne
https://dio.obspm.fr/Calcul/tycho/
➢Utilisation de la grappe en temps réel:
https://palpatine.obspm.fr/ganglia/
➢Liste de diffusion
15/11/2018 30
Discussion
➢Retour d’expérience
➢Accès aux ressources
➢Facilité d'utilisation
➢Documentation
➢Évolution de vos besoins
➢Nombre de CPU
➢Mémoire
➢Espace de stockage