Y a-t-il une commande qui permet de savoir le nombre maximum de coeurs qu'on peut utiliser simultanément pour une queue donnée ? Ce serait utile pour préparer l'exécution de grosses tâches.
Merci
Jacques
Y a-t-il une commande qui permet de savoir le nombre maximum de coeurs qu'on peut utiliser simultanément pour une queue donnée ? Ce serait utile pour préparer l'exécution de grosses tâches.
Merci
Jacques
Bonjour Jacques,
La commande sinfo de Slurm renvoie une mine d'information sur le cluster.
Usuellement, j'utilise sinfo -Nel
pour connaître l'état des nœuds/partition et d'autres infos (comme le nombre de "CPUs" max utilisable sur ces nœuds).
$ sinfo -Nel
Sat Aug 8 17:15:13 2020
NODELIST NODES PARTITION STATE CPUS S:C:T MEMORY TMP_DISK WEIGHT AVAIL_FE REASON
cpu-node-1 1 training idle 54 2:27:1 257671 0 1 (null) none
cpu-node-2 1 training idle 54 2:27:1 257671 0 1 (null) none
cpu-node-3 1 training idle 54 2:27:1 257671 0 1 (null) none
cpu-node-4 1 training idle 54 2:27:1 257671 0 1 (null) none
cpu-node-5 1 training idle 54 2:27:1 257671 0 1 (null) none
cpu-node-6 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-7 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-8 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-9 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-10 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-10 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-11 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-11 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-12 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-12 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-13 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-13 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-14 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-14 1 long idle 54 2:27:1 257671 0 1 (null) none
cpu-node-15 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-15 1 long idle 54 2:27:1 257671 0 1 (null) none
cpu-node-16 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-16 1 long idle 54 2:27:1 257671 0 1 (null) none
cpu-node-17 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-17 1 long idle 54 2:27:1 257671 0 1 (null) none
cpu-node-18 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-18 1 long idle 54 2:27:1 257671 0 1 (null) none
cpu-node-19 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-19 1 long idle 54 2:27:1 257671 0 1 (null) none
cpu-node-20 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-20 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-21 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-21 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-22 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-22 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-23 1 fast* allocated 54 2:27:1 257671 0 1 (null) none
cpu-node-23 1 long allocated 54 2:27:1 257671 0 1 (null) none
cpu-node-24 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-24 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-25 1 fast* allocated 54 2:27:1 257671 0 1 (null) none
cpu-node-25 1 long allocated 54 2:27:1 257671 0 1 (null) none
cpu-node-26 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-26 1 long idle 54 2:27:1 257671 0 1 (null) none
cpu-node-27 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-27 1 long idle 54 2:27:1 257671 0 1 (null) none
cpu-node-28 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-28 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-29 1 fast* allocated 54 2:27:1 257671 0 1 (null) none
cpu-node-29 1 long allocated 54 2:27:1 257671 0 1 (null) none
cpu-node-30 1 fast* mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-30 1 long mixed 54 2:27:1 257671 0 1 (null) none
cpu-node-31 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-32 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-33 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-34 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-35 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-36 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-37 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-38 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-39 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-40 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-41 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-42 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-43 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-44 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-45 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-46 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-47 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-48 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-49 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-50 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-51 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-52 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-53 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-54 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-55 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-56 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-57 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-58 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-59 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-60 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-61 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-62 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-63 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-64 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-65 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-67 1 fast* idle 54 2:27:1 257671 0 1 (null) none
cpu-node-69 1 bigmem idle 124 4:31:1 309601 0 10 (null) none
cpu-node-70 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-71 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-72 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-73 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-74 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-75 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-76 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-77 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-78 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-79 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-80 1 fast* idle 38 2:19:1 257693 0 1 (null) none
cpu-node-81 1 fast* idle 38 2:19:1 257693 0 1 (null) none
cpu-node-82 1 fast* idle 30 2:15:1 128677 0 1 (null) none
cpu-node-83 1 fast* idle 30 2:15:1 128677 0 1 (null) none
Mais on peut aussi demander explicitement le nombre de CPU max par nœuds pour chaque partition en indiquant le format de sortie souhaité comme suit: sinfo -e --Format=Partition,CPUs
.
$ sinfo -e --Format=Partition,CPUs
PARTITION CPUS
fast* 54
fast* 30
fast* 38
long 54
bigmem 124
training 54
Note: L'option -e (exact) permet d'afficher le détail quand il y a plusieurs types de noeuds (par exemple pour la partition "fast").
Si on veut le nombre de CPU total (et non par nœud), on peut demander CPUsState
(avec "A/I/O/T" = "Allocated / Idle / Other / Total")
$ sinfo --Format=Partition,CPUsState
PARTITION CPUS(A/I/O/T)
fast* 408/3322/0/3730
long 408/726/0/1134
bigmem 0/124/0/124
training 0/270/0/270
A bientôt
Merci pour la réponse, David.
Je n'avais pas encore exploré ces options de sinfo
, qui sont très utiles pour avoir une vision globale du cluster.
Cependant ma question était un peu différente: n'y a-t-il pas un quota qui restreint le nombre de CPUs qu'un usager peut utiliser simultanément ? Si je lance un gros jobarray, est-ce que je peux mobiliser simultanément les 3322 CPUs oisifs ("idle") de la partition fast ? Dans le cas contraire, y a-t-il un moyen de connaître le nombre max de CPUs que je peux utiliser ?
Merci
Jacques
En effet, il y a des limitations qui peuvent être à plusieurs niveaux (cluster, partition, QoS, etc).
Côté calcul (Slurm), on se base principalement sur la QoS (Qualité de Service) pour définir des règles d'usage.
On peut voir ces paramètres avec la commande sacctmgr show qos
.
$ sacctmgr -p show qos format=Name,MaxTRESPerUser
Name|MaxTRESPU|
normal|cpu=400,mem=2T|
bigmem|mem=4000G|
Ainsi, à l’heure actuelle un utilisateur ne peut utiliser simultanément que 400 CPU et 2To RAM (qos « normal »).
Mais on peut très bien lancer 2000 jobs utilisant chacun 1 CPU.
Il n’y aura alors que 400 de ses jobs « RUNNING » (1600 « PENDING ») et dès qu’un job sera terminé, un nouveau sera lancé automatiquement.
Je crois que ce sont les seuls limitations (en plus des quota sur le stockage) en place sur le cluster mais ça pourrait évoluer.
On va essayer de rajouter ces infos dans la documentation.
A bientôt