SLURM - QOS Gestion

Il est possible de spécifier une QOS (Quality Of Service) pour chaque jobs soumis dans Slurm, la commande sacctmgr permet de les gérer.

Gérer les QOS

Manipulation des QOS

Ajout

Ajouter une nouvelle QOS :

# sacctmgr add qos ParticuleCalc

Ajouter une QOS avec directement des paramètres :

# sacctmgr -i add qos high set priority=1000
# sacctmgr -i add qos medium set priority=500
# sacctmgr -i add qos low set priority=100

Affichage

Afficher la QOS ParticuleCalc :

# sacctmgr show ParticuleCalc

Afficher toutes les QOS avec tous les champs :

# sacctmgr show qos

Afficher toutes les QOS, ici avec des champs spécifiques :

# sacctmgr show qos format="Name,Priority,GraceTime,PreemptMode,UsageFactor,GrpTRES,MaxWall,MaxTRESPU"
Name Priority GraceTime PreemptMode UsageFactor GrpTRES MaxWall MaxTRESP
------- -------- --------- ----------- ----------- ------- ----------- ---------
CalculN1 2 00:00:00 cluster 1.000000 cpu=300 1-00:00:00 cpu=24
CalculN2 4 00:01:00 normal 1.000000 cpu=260 02:00:00 cpu=12
CalculN3 6 00:02:00 cluster 1.000000 cpu=90 12-00:00:00 cpu=6
CalculNX 50000 00:03:00 normal 1.000000

Suppression

Supprimer une QOS :

# sacctmgr delete qos ParticuleCalc

Modification

Modifier une QOS :

# sacctmgr modify qos name=ParticuleCalc set <option>=<valeur>

Exemple : modifier la priorité :

# sacctmgr modify qos ParticuleCalc set priority=10

Exemple : ajouter une autre limite, ici de nombre de CPU pouvant être utilisé :

# sacctmgr modify qos ParticuleCalc set GrpCPUs=24

Autres exemples :

# sacctmgr -i modify account bifftannen set qos=low
# sacctmgr -i modify account bifftannen set defaultqos=low
# sacctmgr -i modify user emmetbrown,martymcfly set qos=high,medium,low
# sacctmgr -i modify user jennyferparker,julebrown set qos=medium,low

Exemple QOS short, normal, long :

# sacctmgr modify qos name=short set GreTRES=cpu=400
# sacctmgr modify qos name=short set priority=30000
# sacctmgr modify qos name=short set MaxWallDurationPerJob=04:00:00
# sacctmgr modify qos name=short set MaxTRESPersUser=cpu=64

# sacctmgr modify qos name=normal set GreTRES=cpu=600
# sacctmgr modify qos name=normal set priority=20000
# sacctmgr modify qos name=normal set MaxWallDurationPerJob=2-00:00:00
# sacctmgr modify qos name=normal set MaxTRESPersUser=cpu=64

# sacctmgr modify qos name=long set GreTRES=cpu=240
# sacctmgr modify qos name=long set priority=10000
# sacctmgr modify qos name=long set MaxWallDurationPerJob=28-00:00:00
# sacctmgr modify qos name=long set MaxTRESPersUser=cpu=50

Gérer les utilisateurs

Ajouter des utilisateurs à une QOS :

# sacctmgr modify user emmetbrown,martymcfly set qos=ParticuleCalc

Ajouter un utilisateur à une autre QOS, avec un + :

# sacctmgr modify user emmetbrown set qos+=TimeCalcul

Ajouter des limitations pour un utilisateur :

# sacctmgr modify user bifftannen set GrpTRES=cpu=1500,mem=200,gres/gpu=50

Supprimer les limitations, avec la valeur -1 :

# sacctmgr modify user bifftannen set GrpTRES=cpu=-1,mem=-1,gres/gpu=-1

Les accounts

Un “account” permet de regrouper plusieurs QOS prédéfinies et qui pourra ensuite être affecté à des utilisateurs :

Lister les “account” :

# sacctmgr show account
Account Descr Org
---------- -------------------- ---------
Particule groupe Particule SavantFou
root default root account root
SavantFou SavantFou users SavantFou

Ajouter un nouvel “account” :

# add account Particule Cluster=HPC Description="groupe Particule" Organization=SavantFouFou

Ajouter des noeuds spécifiques :

# sacctmgr -i add account name=Particule set nodes=myNode02,myNode03,myNode04

Rajouter des QOS à un “account”

# sacctmgr modify account name=SavantFou set qos+=Particule_verylong
# sacctmgr modify account name=SavantFou set qos+=Particule_Short

Ajouter un utilisateur à ce nouvel “account”

#  sacctmgr modify user where user=emmetbrown set defaultaccount=SavantFou

Documentation

https://slurm.schedmd.com/qos.html
https://slurm.schedmd.com/priority_multifactor.html#intro
https://slurm.schedmd.com/priority_multifactor.html#config
https://slurm.schedmd.com/priority_multifactor.html#general
https://stackoverflow.com/questions/57703305/slurm-qos-preemption
https://www.hpc.iastate.edu/guides/condo-2017/job-accounting
https://slurm.schedmd.com/SLUG19/Priority_and_Fair_Trees.pdf

> Partager <