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 |
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" |
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 |
Exemple QOS short, normal, long :
# sacctmgr modify qos name=short set GreTRES=cpu=400 |
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 |
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 |
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