La grappe de calcul à la DIO Aurélia Marchand Stéphane Vaillant admin.dio@obspm.fr 1
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) 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) 3
UMA Machine à mémoire partagée, tous les processeurs accèdent à toute la mémoire Avantages : Inconvénients : Espace d'adressage unique Facile à programmer (OpenMP) Scalabilité Portabilité des applications Limitée en nombre de CPUs Limitée par la bande passante Coût 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) Inconvénients : coût Plus complexe à programmer (MPI) l'utilisateur doit gérer les communications Administration système plus complexe 5
Les grappes de calcul à l'observatoire MesoPSL1 (2011) 216 cœurs 3.06 GHz 2 Go 29 To Lustre MesoPSL (2012) 1568 cœurs - 2.6 GHz 4 Go 128 To Infiniband Tycho Tier 0 PRACE TGCC Tier 1 GENCI IDRIS CINES CCRT Tier 2 Meso-centres PSL 6
La grappe Tycho La grappe est constituée de : 1 frontale : tycho 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 27 nœuds : tycho[01-20] (Oct. 2013) tycho[21-24] (Nov. 2015) Tycho[26,29-30] (2016) 16 coeurs, Intel Xeon à 2.60 GHz, 64 Go de mémoire, 1,7 To d'espace disque local 7
La grappe Tycho 1 nœud : tycho25 (Nov. 2015) 16 coeurs, Intel Xeon à 3.20 GHz, 96 Go de mémoire, 3,6 To d'espace disque local 2 noeuds : tycho[27-28] (2016) 24 coeurs, Intel Xeon à 2.6 GHz, 256 Go de mémoire, 2,6 et 4,5 To d'espace disque local 8
Tycho 9
La grappe Tycho Espaces de stockage : /obs/son_login = /home/son_login 4 To - 30 Go/user - Sauvegardé /data/son_login 8 To - 60 Go/user - Sauvegardé /poubelle/son_login 25 To - non sauvegardé, nettoyé tous les 120 jours /scratch/son_login 1,7 To - local, non sauvegardé, nettoyé tous les 20 jours 10
La grappe Tycho Accès à la grappe : Faire une demande de compte à admin.dio@obspm.fr (Compte LDAP) S'inscrire à la liste de diffusion mpopm@sympa.obspm.fr (Machine parallèle de l'observatoire de Paris-Meudon) pour être informé des arrêts programmés de la grappe 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 12
La grappe Tycho : Compilateurs Les compilateurs C/C++ gcc, g++ 4.9.2 / gcc, 4.[6,7,8] / gcc-4.[6,7,8] 5.3.0 (module) Les compilateurs Fortran GNU Fortran 4.9.2 / gfortran 4.[6,8] / gcc-4.[6,8] Intel Fortran 16.0.3 / ifort NAGWare Fortran 6.0 / f95.nag (nag-server) 13
La grappe Tycho : Parallélisme OpenMP ifort -openmp OMP_NUM_THREADS MPI OpenMPI (module load openmpi) OMPI_FC OMPI_FCFLAGS MPICH (module load mpich) 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
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 16
SLURM Durée max. tychonn quadrinn noeud max/job Queues publiques short 1h 03-16 4 medium 1j 01-24,26-32 17-25 4 long 5j 01-32 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 17-28 5 Queue basse priorité préemptible low 15 j 03-16 17
SLURM Durée max. tychonn quadrinn Coeurs max/util Queues pour accès prioritaire mis 15 j 01, 22-24 gaia 15 j 02, 21 skybot 15 j 17-20 grace 15 j 25 virage 15 j 26 plato 15 j 27-28 mosaic 15 j 29-32 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 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 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 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 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 idl.slurm.sh : regroupe les jobs idl sur un nœud 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) 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 17/10/16 15:14 24
SLURM : /scratch /scratch est local à chaque nœud Rapidité d'accès Destiné aux jobs en exécution sur le nœud On utilise la commande srun : tycho> srun --ntasks=$slurm_job_num_nodes commande qui exécute une seule instance de 'commande' sur chaque nœud. Pas toujours accessible pour des raisons d'économie d'énergie : extinction automatique des nœuds après une demi journée d'inactivité 17/10/16 15:14 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... 17/10/16 15:14 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} 17/10/16 15:14 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 nag srun --pty bash Salloc: Job allocation 12345 quadri17> 17/10/16 15:14 28
Accès à l'idris Demander a conserver un compte sur siolino ~/.ssh/config Host siolino HostName siolino.obspm.fr LocalForward 10000 {LaMachineDeLIDRIS}:22 Host idris HostName 127.0.0.1 User {login_idris} Port 10000 tycho > ssh -ftn siolino tycho > ssh idris tycho > scp idris... 17/10/16 15:14 29
Machine de post-traitement 48 coeurs Intel Xeon 3.00GHz 1,5 To de mémoire partagée entre les cœurs https://dio.obspm.fr/calcul/posttraitement/ 17/10/16 15:14 30
Liens Aide en ligne https://dio.obspm.fr/calcul/tycho/ Utilisation de la grappe en temps réel: https://sionet.obspm.fr/ganglia/ Liste de diffusion mpopm@sympa.obspm.fr 17/10/16 15:14 31
Discussion Retour d expérience Accès aux ressources Facilité d'utilisation Documentation Évolution de vos besoins 17/10/16 15:14 Nombre de CPU Mémoire Espace de stockage 32