Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing
2. Cluster de calcul (Torque/Maui) Batch/Job Scheduler Gestion automatique d'une séries de jobs Interface de définition des jobs et de leurs dépendances Exécution automatique des jobs Interface de monitoring des jobs Priorités ou files d'attentes pour l'ordonnancement Exemples Mainframe IBM (1960), VAX/VMS (1980) Task scheduler sous windows, cron sous linux... PBS, Torque, Sun Grid Engine, Condor Middleware de grille Grid and Cloud Computing 2
2. Cluster de calcul (Torque/Maui) Terascale Opensource Resource and QUEue Manager Gestionnaire de ressources distribuées: Un master hébergeant le serveur torque Un ensemble de nœuds de calculs sur lesquels vont être exécutes les jobs Files d'attentes de jobs L'administrateur peut définir plusieurs files d'attentes avec des priorités différentes selon les ressources demandées Maui : ordonnanceur avancée pour torque Fair queueing, préemption, réservations... Grid and Cloud Computing 3
Torque : déroulement normal 2. Cluster de calcul (Torque/Maui) L'utilisateur se connecte sur le master (frontal) L'utilisateur définit son job (commande, ressources) L'utilisateur soumet son job avec qsub Le job est placé en file d'attente sur le master Le scheduler réserve un (ou plusieurs) nœud(s) au job Le job s'exécute sur le (ou les) nœud(s) alloué(s) Le job se termine L'utilisateur récupère l'entrée standard, la sortie standard et les résultats sur le master Grid and Cloud Computing 4
2. Cluster de calcul (Torque/Maui) Diagramme de séquence Grid and Cloud Computing 5
2. Cluster de calcul (Torque/Maui) Torque : création d'un job Script shell + paramètres TORQUE #!/bin/sh #PBS -N JOBSZZ3-1 #PBS -l walltime=1:00:00 #PBS -l nodes=2:ppn=2,pmem=2048mb cd ~/workspace echo $PBS_O_JOBID mpiexec masimu -nrep 1000 #PBS : directives interprétées à la soumission Nom du job Durée maximale du job (walltime) 2 coeurs sur 2 noeuds différends et 2G de RAM physique Grid and Cloud Computing 6
Torque : spécification des noeuds 2. Cluster de calcul (Torque/Maui) -l nodes=12 12 noeuds quelconques -l nodes=1:smp+4:bigmem 1 noeud de type 'smp' et 4 noeuds de type 'bigmem' (les tags sont définis par l'admin) -l nodes=noeud1+noeud4 2 noeuds identifiés par leur nom -l nodes=1:ppn=8 8 coeurs sur un seul noeud -l nodes=2:hexa:ppn=3 3 coeurs sur 2 noeuds de type 'hexa' Grid and Cloud Computing 7
2. Cluster de calcul (Torque/Maui) Torque : variables d'environnement Torque définit des variables d'environnement lors de l'exécution du job : PBS_JOBNAME Nom du job PBS_O_WORKDIR PBS_TASKNUM PBS_O_JOBID PBS_QUEUE PBS_NODEFILE Répertoire de soumission du job Nombre de tâches demandées ID unique du job File d'attente du job Fichier contenant la liste des noeuds alloués au job (MPI) Grid and Cloud Computing 8
Torque : soumission d'un job 2. Cluster de calcul (Torque/Maui) Commande : qsub $ qsub masimu.sh 6555.moncluster.isima.fr $ qsub masimu.sh -l walltime=1:00:00 6556.moncluster.isima.fr $ echo hostname qsub -N hostname -q short 6557.moncluster.isima.fr Les options de la ligne de commande sont prioritaires sur les directives du script (même syntaxe) La commande retourne le numéro du job Le job est ensuite placé en file d'attente et sera exécuté selon la politique du serveur Grid and Cloud Computing 9
2. Cluster de calcul (Torque/Maui) Torque : suivre un job Commande : qstat $ qstat Job id Name User Time Use S Queue ----------------- ---------------- --------------- -------- - ----- 6555.moncluster JOBSZZ3-1 mahul 12:51:52 R normal 6556.moncluster masimu.sh mahul 0 Q short 6557.moncluster STDIN mahul 0 Q short $ qstat -f 6555 Job Id: 6555.moncluster.isima.fr Job_Name = JOBSZZ3-1 Job_Owner = mahul@moncluster.isima.fr resources_used.cput = 13:12:01 resources_used.mem = 6871204kb resources_used.vmem = 14966904kb resources_used.walltime = 00:27:23 job_state = R queue = normal... Grid and Cloud Computing 10
Torque : état des files d'attentes 2. Cluster de calcul (Torque/Maui) $ qstat -q Queue Memory CPU Time Walltime Node Run Que Lm State ---------------- ------ -------- -------- ---- --- --- -- ----- smp -- -- -- -- 0 0 -- E R short -- -- 01:00:00 -- 0 2 -- E R normal -- -- 72:00:00 -- 1 0 -- E R long -- -- -- -- 0 0 -- E R $ showq [MAUI] ACTIVE JOBS-------------------- JOBNAME USERNAME STATE PROC REMAINING STARTTIME 6555 mahul Running 32 23:20:57 Mon Sep 27 16:35:39 1 Active Job 32 of 32 Processors Active (100.00%) 1 of 1 Nodes Active (100.00%) IDLE JOBS---------------------- JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME 6556 mahul Idle 20 1:00:00 Mon Sep 27 17:16:02 1 Idle Jobs Grid and Cloud Computing 11
Torque : récupérer les résultats 2. Cluster de calcul (Torque/Maui) Une fois le job terminé, il est supprimé de la file d'attente Torque Dans le répertoire de soumission, on retrouve la sortie standard et l'erreur standard dans des fichiers : $ ls -l -rw------- 1 mahul isima 50 sept 27 2010 ZZ3JOBS-1.e6555 -rw------- 1 mahul isima 7944 sept 27 2010 ZZ3JOBS-1.o6555 Pour les fichiers de résultats : Disque partagé : rien à faire Utiliser les options stageout de torque à la soumission (scp) : $ qsub -W stageout=/tmp/output.txt@master:/home/mahul/output.txt Grid and Cloud Computing 12
Torque : état des ressources 2. Cluster de calcul (Torque/Maui) $ pbsnodes -a numa state = free np = 32 properties = crri,long,normal,short ntype = cluster jobs = 10/20361.hpc1.univ-bpclermont.fr, 17/21400.hpc1.univ-bpclermont.fr, 18/21400.hpc1.univ-bpclermont.fr, 19/21400.hpc1.univ-bpclermont.fr, 20/21400.hpc1.univ-bpclermont.fr, 21/21400.hpc1.univ-bpclermont.fr, 23/22557.hpc1.univ-bpclermont.fr, 24/22557.hpc1.univ-bpclermont.fr, 25/22401.hpc1.univ-bpclermont.fr, 26/22557.hpc1.univ-bpclermont.fr, 27/22557.hpc1.univ-bpclermont.fr, 28/22557.hpc1.univ-bpclermont.fr, 31/20361.hpc1.univ-bpclermont.fr status = rectime=1317067727,varattr=,jobs=20361.hpc1.univ-bpclermont.fr 21400.hpc1.univ-bpclermont.fr 22401.hpc1.univ-bpclermont.fr 22557.hpc1.univ-bpclermont.fr,state=free,netload=7604348552240,gres=,loadave =7.87,ncpus=32,physmem=508747300kb,availmem=378680000kb,totmem=512876060kb,i dletime=2899411,nusers=2,nsessions=5,sessions=10533 14867 26046 26169 28141,uname=Linux numa.univ-bpclermont.fr 2.6.27.44-1.vSMP.MPIO #1 SMP Mon Mar 1 17:47:07 CET 2010 x86_64,opsys=linux Grid and Cloud Computing 13
2. Cluster de calcul (Torque/Maui) Torque : commandes supplémentaires # Annuler un job $ qdel 6557 # Suspendre un job $ qhold 6558 # Reprendre un job suspendu $ qrls 6558 # Modifier les paramètres d'un job déjà soumis $ qalter -l walltime=36:00:00 6558 # [MAUI] Vérifier les infos d'ordonnancement du jobs $ checkjob 6558 Grid and Cloud Computing 14