Sommaire
-
"sinfo" : état des nœuds et des partitions
- "sinfo -s" : vue compacte des partitions
- "sinfo -p <partition>" : état des nœuds d'une partition
- "sinfo -t idle,power_down" : nœuds inactifs
- "sinfo -R" : pour quelle raison un nœud est-il down ?
- "sinfo -o <format>" et "SINFO_FORMAT" : modifier le format de sortie
- "scontrol show <partition|node>" : informations de configuration des partitions/nœuds
- "squeue" : état des jobs
Afficher l'état du cluster : sinfo, squeue
Avant de soumettre un job (voir SoumissionJob), il est important de connaître l'état du cluster. Le gestionnaire de ressources Slurm offre 2 commandes permettant d'y parvenir : sinfo qui donne des informations sur l'état des nœuds et partitions (voir ListePartitions) et squeue qui liste les jobs dans la file d'ordonnancement gérée par Slurm.
Les commandes sinfo et squeue possèdent un grand nombre d'options dont une faible portion est présentée dans cette page. Pour plus de renseignements, consultez les pages de manuels (manpages) disponibles sur summit2 : commandes "man sinfo" et "man squeue".
1. "sinfo" : état des nœuds et des partitions
Si vous lancez la commande sinfo, vous obtiendrez une sortie semblable à celle-ci :
summit2:~> sinfo PARTITION AVAIL TIMELIMIT NODES CPUS(A/I/O/T) STATE NODELIST mpib40_SIRO up 8-00:00:00 8 0/64/0/64 idle~ n[1-2,7-12] mpib40_SIRO up 8-00:00:00 6 48/0/0/48 alloc n[3-6,13-14] mpib40_POM up 15-00:00:0 10 0/80/0/80 idle~ n[15-22,31,34] mpib40_POM up 15-00:00:0 12 112/0/0/112 alloc n[23-30,32-33,35-36] mpib40_B0 up 2:00:00 18 0/144/0/144 idle~ n[1-2,7-12,15-22,31,34] mpib40_B0 up 2:00:00 18 160/0/0/160 alloc n[3-6,13-14,23-30,32-33,35-36] mpib40_MESO up 10-00:00:0 36 0/288/0/288 idle~ n[101-136] mpib40_MONO up 10-00:00:0 36 0/288/0/288 idle~ n[101-136] mono6_MESO up 6-00:00:00 16 0/128/0/128 idle~ n[101-116] mpib40_B1 up 2:00:00 36 0/288/0/288 idle~ n[101-136] gpus up 4:00:00 1 8/0/0/8 alloc# n140 gpus up 4:00:00 1 0/0/4/4 down n139 mpib20 up 1-00:00:00 10 0/20/0/20 idle~ n[205-212,218-219] mpib20 up 1-00:00:00 8 16/0/0/16 alloc n[213-217,220-222] mpib20_8 up 8-00:00:00 2 0/4/0/4 idle~ n[218-219] mpib20_8 up 8-00:00:00 8 16/0/0/16 alloc n[213-217,220-222] mpib20_15 up 15-00:00:0 2 0/4/0/4 idle~ n[218-219] mpib20_15 up 15-00:00:0 4 8/0/0/8 alloc n[217,220-222] mpib20R410 up 1-00:00:00 2 0/16/0/16 idle~ n[225,228] mpib20R410 up 1-00:00:00 3 24/0/0/24 alloc n[223-224,226] mpib20R410 up 1-00:00:00 1 0/8/0/8 idle n227 mono_long up 15-00:00:0 2 0/16/0/16 idle~ n[231,234] mono_long up 15-00:00:0 2 16/0/0/16 alloc n[232-233] o3pgeosN up 10-00:00:0 1 0/8/0/8 idle~ n225 o3pgeosN up 10-00:00:0 5 40/0/0/40 alloc n[223-224,226,232-233] bigmem48 up 2-00:00:00 1 0/8/0/8 idle~ n231 any* up 2:00:00 74 0/532/0/532 idle~ n[1-2,7-12,15-22,31,34,101-136,201-202,204-212,218-219,225,228-231,234-235] any* up 2:00:00 32 224/0/0/224 alloc n[3-6,13-14,23-30,32-33,35-36,203,213-217,220-224,226,232-233] any* up 2:00:00 1 0/8/0/8 idle n227
Sur Summit2, les nœuds de calcul ont pour nom (hostname) : n1, n2, ... (voir ArchitectureSummit2) et Slurm emploie une notation compacte avec crochets "[]" pour identifier une liste de nœuds. Par exemple n[5-8,10-12] représente la liste des nœuds n5, n6, n7, n8, n10, n11, n12.
Sans option, la commande sinfo retourne une liste où chaque ligne correspond à une partition ET un état des nœuds dans cette partition. Les différents champs sont décrits ci-dessous :
PARTITION |
nom de la partition configurée sur le cluster (voir la liste complète dans ListePartitions). Le suffixe * identifie la partition par défaut. |
|
AVAIL |
up ou down suivant la disponibilité de la partition. Il est impossible de soumettre un job sur une partition dans l'état down. |
|
TIMELIMIT |
limite de temps maximum en jour-heures:minutes:secondes pour tout job utilisateur soumis dans cette partition. |
|
NODES |
nombre de nœuds dans cette configuration particulière |
|
CPUS(A/I/O/T) |
nombre de cpus alloué/inactif/autre/total de cette configuration. |
|
STATE |
alloc |
(allocated) nœud alloué par un job. Le suffixe "#" indique que le nœud est en train de s'allumer ou de se configurer. |
comp |
(completing) les jobs présents sur ce nœud sont en train de se terminer. |
|
down |
le nœud est inutilisable. |
|
idle |
le nœud est libre et disponible. Avec le suffixe "~", le nœud est disponible et éteint. |
|
NODELIST |
nom des nœuds associés à cette partition/configuration. |
|
1.1. "sinfo -s" : vue compacte des partitions
Dans cette sortie, une ligne correspond à une partition. L'appartenance d'un nœud à une partition est plus clair mais on perd l'information sur l'état précis des nœuds.
summit2:~> sinfo -s PARTITION AVAIL TIMELIMIT NODES(A/I/O/T) NODELIST mpib40_SI up 8-00:00:00 4/10/0/14 n[1-14] mpib40_PO up 15-00:00:0 22/0/0/22 n[15-36] mpib40_B0 up 2:00:00 26/10/0/36 n[1-36] mpib40_ME up 10-00:00:0 32/4/0/36 n[101-136] mpib40_MO up 10-00:00:0 32/4/0/36 n[101-136] mono6_MES up 6-00:00:00 14/2/0/16 n[101-116] mpib40_B1 up 2:00:00 32/4/0/36 n[101-136] gpus up 4:00:00 0/1/1/2 n[139-140] mpib20 up 1-00:00:00 8/10/0/18 n[205-222] mpib20_8 up 8-00:00:00 8/2/0/10 n[213-222] mpib20_15 up 15-00:00:0 4/2/0/6 n[217-222] mpib20R41 up 1-00:00:00 5/1/0/6 n[223-228] mono_long up 15-00:00:0 3/1/0/4 n[231-234] o3pgeosN up 10-00:00:0 5/1/0/6 n[223-226,232-233] bigmem48 up 2-00:00:00 0/1/0/1 n231 any* up 2:00:00 81/26/0/107 n[1-36,101-136,201-235]
PARTITION |
nom de la partition configurée sur le cluster (voir la liste complète dans ListePartitions). Le suffixe * identifie la partition par défaut. |
|
AVAIL |
up ou down suivant la disponibilité de la partition. Il est impossible de soumettre un job sur une partition dans l'état down. |
|
TIMELIMIT |
limite de temps maximum en jour-heures:minutes:secondes pour tout job utilisateur soumis dans cette partition. |
|
NODES(A/I/O/T) |
nombre de nœuds alloué/inactif/autre/total de cette partition. |
|
NODELIST |
nom des nœuds associés à cette partition. |
|
1.2. "sinfo -p <partition>" : état des nœuds d'une partition
Sortie semblable à la commande sinfo seule mais pour la partition <partition>.
summit2:~> sinfo -p any PARTITION AVAIL TIMELIMIT NODES CPUS(A/I/O/T) STATE NODELIST any* up 2:00:00 26 0/148/0/148 idle~ n[1-4,7-12,101-102,135-136,205-212,218-219,225,231] any* up 2:00:00 79 596/4/0/600 alloc n[5-6,13-32,35-36,103-134,201-204,213-217,220-224,226-230,232-235] any* up 2:00:00 2 0/16/0/16 idle n[33-34]
1.3. "sinfo -t idle,power_down" : nœuds inactifs
Si aucun nœud est inactif dans une partition, la colonne STATE affiche n/a (not available). Un nœud down est considéré comme éteint (power_down) et apparaîtra dans la liste :
summit2:~> sinfo -t idle,power_down PARTITION AVAIL TIMELIMIT NODES CPUS(A/I/O/T) STATE NODELIST mpib40_SIRO up 8-00:00:00 10 0/80/0/80 idle~ n[1-4,7-12] mpib40_POM up 15-00:00:0 2 0/16/0/16 idle n[33-34] mpib40_B0 up 2:00:00 10 0/80/0/80 idle~ n[1-4,7-12] mpib40_B0 up 2:00:00 2 0/16/0/16 idle n[33-34] mpib40_MESO up 10-00:00:0 4 0/32/0/32 idle~ n[101-102,135-136] mpib40_MONO up 10-00:00:0 4 0/32/0/32 idle~ n[101-102,135-136] mono6_MESO up 6-00:00:00 2 0/16/0/16 idle~ n[101-102] mpib40_B1 up 2:00:00 4 0/32/0/32 idle~ n[101-102,135-136] gpus up 4:00:00 1 0/8/0/8 idle~ n140 gpus up 4:00:00 1 0/0/4/4 down n139 mpib20 up 1-00:00:00 10 0/20/0/20 idle~ n[205-212,218-219] mpib20_8 up 8-00:00:00 2 0/4/0/4 idle~ n[218-219] mpib20_15 up 15-00:00:0 2 0/4/0/4 idle~ n[218-219] mpib20R410 up 1-00:00:00 1 0/8/0/8 idle~ n225 mono_long up 15-00:00:0 0 0/0/0/0 n/a o3pgeosN up 10-00:00:0 1 0/8/0/8 idle~ n225 bigmem48 up 2-00:00:00 0 0/0/0/0 n/a any* up 2:00:00 25 0/140/0/140 idle~ n[1-4,7-12,101-102,135-136,205-212,218-219,225] any* up 2:00:00 6 0/48/0/48 idle n[33-34,201-204]
Il est bien évidemment possible de mixer cette option avec l'option -p <partition> pour spécifier une partition particulière :
summit2:~> sinfo -t idle,power_down -p mpib40_B1 PARTITION AVAIL TIMELIMIT NODES CPUS(A/I/O/T) STATE NODELIST mpib40_B1 up 2:00:00 4 0/32/0/32 idle~ n[101-102,135-136]
1.4. "sinfo -R" : pour quelle raison un nœud est-il down ?
Un nœud dans l'état down est inutilisable. L'option -R indique pour quelle raison Slurm le considère down :
summit2:~> sinfo -R REASON USER TIMESTAMP NODELIST Tests Sila root 2012-03-14T17:03:55 n139 Not responding slurm 2012-03-12T10:16:32 n224
L'administrateur du cluster (USER:root) peut volontairement positionner un nœud dans l'état down et en indiquer la raison comme ici pour le nœud n139. Si le gestionnaire de ressource Slurm (User:slurm) détecte qu'un nœud ne répond plus, il peut également forcer le nœud dans l'état down et invoquer la raison : Not responding. Dans ce cas, le nœud a véritablement un problème que les administrateurs (alertés automatiquement par mail) doivent identifier et résoudre.
1.5. "sinfo -o <format>" et "SINFO_FORMAT" : modifier le format de sortie
Vous pouvez adapter a votre convenance le format de sortie de la commande sinfo en spécifiant l'option -o suivi d'une chaîne de caractères dont la syntaxe est donnée dans la documentation Unix de sinfo : man sinfo. Une autre solution consiste à modifier la variable d'environnement SINFO_FORMAT en la définissant dans le fichier $HOME/.bashrc sur summit2 :
export SINFO_FORMAT="%16P %5a %.10l %.5D %.15C %6t %N"
Par défaut, elle contient la chaîne de caractères :
summit2:~> echo $SINFO_FORMAT %16P %5a %.10l %.5D %.15C %6t %N
Affichage des caractéristiques des nœuds configurés sous Slurm :
summit2:~> sinfo -e -o "%20N %.5D %.4c %.8z %.6m %.8d %.6w %8f" NODELIST NODES CPUS S:C:T MEMORY TMP_DISK WEIGHT FEATURES n[1-34,101-136] 70 8 2:4:1 24000 400000 10 NHM,IB40 n[35-36] 2 16 2:4:2 24000 400000 10 NHM,IB40 n140 1 8 2:4:1 24000 400000 10 NHM,GPU n139 1 4 2:2:1 7500 400000 10 AMD,GPU n[205-222] 18 2 2:1:1 7900 120000 5 AMD,IB20 n[223-228] 6 8 2:4:1 24000 400000 15 NHM,IB20 n231 1 8 2:4:1 45000 400000 20 NHM n[229-230,232-235] 6 8 2:4:1 24000 400000 10 NHM n[201-204] 4 8 2:4:1 7986 225000 3 XEON
1.6. "scontrol show <partition|node>" : informations de configuration des partitions/nœuds
Les détails concernant la configuration de la partition <partition> par les administrateurs du cluster sont donnés par la commande :
scontrol show partition <partition>
Par exemple :
summit2:~> scontrol show partition any PartitionName=any AllocNodes=ALL AllowGroups=ALL Default=YES DefaultTime=NONE DisableRootJobs=NO GraceTime=0 Hidden=NO MaxNodes=UNLIMITED MaxTime=02:00:00 MinNodes=1 Nodes=n[1-36,101-136,201-235] Priority=10 RootOnly=NO Shared=NO PreemptMode=OFF State=UP TotalCPUs=748 TotalNodes=107 DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
La commande "scontrol show partition" (sans préciser un nom de partition) liste TOUTES les partitions.
Pour afficher les caractéristiques du nœud <nX>, utilisez la commande :
scontrol show node <nX>
Par exemple :
summit2:~> scontrol show node n3 NodeName=n3 Arch=x86_64 CoresPerSocket=4 CPUAlloc=8 CPUErr=0 CPUTot=8 Features=NHM,IB40 Gres=(null) NodeAddr=n3 NodeHostName=n3 OS=Linux RealMemory=24000 Sockets=2 State=ALLOCATED ThreadsPerCore=1 TmpDisk=400000 Weight=10 BootTime=2012-03-16T07:56:36 SlurmdStartTime=2012-03-16T23:00:09 Reason=(null)
La commande "scontrol show node" (sans préciser un nœud) liste les caractéristiques et l'état de TOUS les nœuds.
Pour une description des champs affichés, voir le manpage : man scontrol.
2. "squeue" : état des jobs
La commande précédente nous informe sur l'état des nœuds dans les partitions. La commande squeue va nous apprendre ce qui occupe les nœuds alloués en nous fournissant la liste des jobs gérés par Slurm (voir SoumissionJob) ainsi que leur état.
summit2:~> squeue JOBID PARTITION NAME USER ST TIME NODES CPUS NODELIST(REASON) 26922 any diag075. chajp R 16:29 2 16 n[201-202] 26923 any diag075. chajp R 16:29 2 16 n[203-204] 26919 bigmem48 bash gazdi R 56:09 1 8 n231 26915 mono_long run_prep bera R 1:31:37 1 1 n234 26730 mpib20_8 calcul_m bugm R 18:38:27 1 2 n222 26535 mpib20_8 calcul_m bugm R 3-04:17:21 1 2 n220 26787 mpib20_8 run.sh assem R 1-00:57:09 5 10 n[213-217] 26657 mpib20_8 calcul_m bugm R 2-03:54:05 1 2 n221 26895 mpib40_POM OPENMP_8 aucf R 3:39:06 8 64 n[23-30] 26892 mpib40_POM OPENMP_8 aucf R 3:40:29 8 64 n[15-22] 26918 mpib40_POM bash aucf R 1:13:40 2 16 n[31-32] 26891 mpib40_POM OPENMP_8 aucf R 3:40:56 2 18 n[35-36] 26572 mpib40_SIRO diag8 ulsc R 3-01:38:32 2 16 n[5-6] 26534 mpib40_SIRO gdlSfut estc R 3-19:28:17 2 16 n[13-14] 26799 o3pgeosN geos_ch_ saub PD 0:00 1 8 (Dependency) 26800 o3pgeosN geos_ch_ saub PD 0:00 1 8 (Dependency) 26801 o3pgeosN geos_ch_ saub PD 0:00 1 8 (Dependency) 26802 o3pgeosN geos_ch_ saub PD 0:00 1 8 (Dependency) 26924 o3pgeosN geos_ch_ saub R 2:42 1 8 n225 26821 o3pgeosN geos_ch_ saub R 21:21:06 1 8 n232 26815 o3pgeosN geos_ch_ saub R 21:23:36 1 8 n233 26809 o3pgeosN geos_ch_ saub R 21:27:34 1 8 n223 26779 o3pgeosN geos_ch_ saub R 1-01:11:15 1 8 n226 26771 o3pgeosN geos_ch_ saub R 1-01:14:32 1 8 n224
JOBID |
Tout job est identifié par un entier unique |
|
PARTITION |
Nom de la partition où le job est soumis |
|
NAME |
Nom de la commande (ou du job si l'option -J <jobname> a été fournie à salloc, srun, sbatch) |
|
USER |
Utilisateur propriétaire du job |
|
ST (STATE) |
R (RUNNING) |
Le job détient une allocation |
PD (PENDING) |
Le job est en attente d'allocation de ressource : la raison est indiquée dans la colonne NODELIST(REASON) |
|
CF (CONFIGURING) |
Le job a obtenu une allocation mais attend que la ressource soit disponible (généralement nœud éteint qui démarre) |
|
CG (COMPLETING) |
Le job est en phase de terminaison |
|
TIME |
Temps écoulé pour le job dans le format jours-heures:minutes:secondes |
|
NODES |
Nombres de nœuds alloués pour le job |
|
CPUS |
Nombres de cpus alloués pour le job |
|
NODELIST(REASON) |
Liste de nœuds affectées au job si le job n'est pas en attente ou la raison de l'attente, voir ci-dessous |
|
(Resources) |
Le job attend que la ressource devienne disponible (utilisée par un autre job) |
|
(Dependency) |
Ce job attend qu'un autre job se termine |
|
(Priority) |
Un ou plusieurs jobs de priorité plus forte existe pour cette partition |
|
2.1. "squeue -u <user>" : lister les jobs de l'utilisateur <user>
Pour sélectionner les jobs d'un ou plusieurs utilisateurs, utilisez l'option -u suivi d'une liste de "login" séparée par une virgule :
summit2:~> squeue -u gazdi JOBID PARTITION NAME USER ST TIME NODES CPUS NODELIST(REASON) 26919 bigmem48 bash gazdi R 56:09 1 8 n231 summit2:~> squeue -u gazdi,chajp JOBID PARTITION NAME USER ST TIME NODES CPUS NODELIST(REASON) 26922 any diag075. chajp R 16:29 2 16 n[201-202] 26923 any diag075. chajp R 16:29 2 16 n[203-204] 26919 bigmem48 bash gazdi R 56:09 1 8 n231
2.2. "squeue -o <format>" et "SQUEUE_FORMAT" : modifier le format de sortie
Comme avec sinfo, vous pouvez adapter a votre convenance le format de sortie de la commande squeue en spécifiant l'option -o suivi d'une chaîne de caractères dont la syntaxe est donnée dans la documentation Unix de squeue : man squeue. Une autre solution consiste à modifier la variable d'environnement SQUEUE_FORMAT en la définissant dans le fichier $HOME/.bashrc sur summit2 :
export SQUEUE_FORMAT="%.7i %.12P %.8j %.8u %.2t %.10M %.6D %.5C %R"
Par défaut, elle contient la chaîne de caractères :
summit2:~> echo $SQUEUE_FORMAT %.7i %.12P %.8j %.8u %.2t %.10M %.6D %.5C %R
2.3. "scontrol show job <jobid>" : infos détaillées d'un job
Pour obtenir des informations très détaillées sur un job, comme l'instant de soumission, l'instant de démarrage ou de fin supposé, le nom de la commande, les dépendances, etc..., utilisez la commande :
scontrol show job <jobid>
La commande "scontrol show job" (sans l'argument <jobid>) affiche le détail de TOUS les jobs gérés par Slurm.
Par exemple, si on l'applique au job 26799 qui se trouve dans l'état Pending pour raison de dépendance, on peut constater qu'il attend la fin du job 26771 comme indiqué sur la ligne JobState :
summit2:~> squeue -u saub JOBID PARTITION NAME USER ST TIME NODES CPUS NODELIST(REASON) 26799 o3pgeosN geos_ch_ saub PD 0:00 1 8 (Dependency) 26800 o3pgeosN geos_ch_ saub PD 0:00 1 8 (Dependency) 26801 o3pgeosN geos_ch_ saub PD 0:00 1 8 (Dependency) 26802 o3pgeosN geos_ch_ saub PD 0:00 1 8 (Dependency) 26924 o3pgeosN geos_ch_ saub R 2:42 1 8 n225 26821 o3pgeosN geos_ch_ saub R 21:21:06 1 8 n232 26815 o3pgeosN geos_ch_ saub R 21:23:36 1 8 n233 26809 o3pgeosN geos_ch_ saub R 21:27:34 1 8 n223 26779 o3pgeosN geos_ch_ saub R 1-01:11:15 1 8 n226 26771 o3pgeosN geos_ch_ saub R 1-01:14:32 1 8 n224 summit2:~> scontrol show job 26799 JobId=26799 Name=geos_ch_nested5.sh UserId=saub(1601) GroupId=O3P(600) Priority=1 Account=basesummit2 QOS=normal JobState=PENDING Reason=Dependency Dependency=afterok:26771 Requeue=0 Restarts=0 BatchFlag=1 ExitCode=0:0 RunTime=00:00:00 TimeLimit=10-00:00:00 TimeMin=N/A SubmitTime=2012-03-14T15:01:23 EligibleTime=Unknown StartTime=Unknown EndTime=Unknown PreemptTime=None SuspendTime=None SecsPreSuspend=0 Partition=o3pgeosN AllocNode:Sid=summit2:4022 ReqNodeList=(null) ExcNodeList=(null) NodeList=(null) NumNodes=1 NumCPUs=8 CPUs/Task=8 ReqS:C:T=*:*:* MinCPUsNode=8 MinMemoryNode=0 MinTmpDiskNode=0 Features=(null) Gres=(null) Reservation=(null) Shared=OK Contiguous=0 Licenses=(null) Network=(null) Command=/home2/saub/Code.v9-01-01_simus/g5_0.5x0.5_v0_nokpp_nested5/run2/geos_ch_nested5.sh WorkDir=/home2/saub/Code.v9-01-01_simus/g5_0.5x0.5_v0_nokpp_nested5/run2
