sbatch -A projA script.sh
Dans beaucoup de clusters :
Les partitions servent à séparer les types de ressources (CPU et GPU) et les usages (ressources dédiées vs à la demande)
Les QoS (Quality of Service) définissent des règles de priorité et de limitation.
Ici :
Les partitions décrivent le matériel (cpu, gpu, etc.) et sont fonction de votre utilisation : ressources dédiées ou mutualisées.
Les QoS sont liées notamment aux accounts et servent de réservation de ressources.
Un account correspond à un projet, une équipe ou un groupe d’utilisateurs.
Chaque account est lié à une ou plusieurs QoS qui fixent ses quotas :
Exemple : projA a droit à 500 CPU et 1 To de RAM via qos1 et a droit à 200 CPU et une durée de vie maximale des jobs (MaxWall) de 30 jours via qos2.
Tous les utilisateurs de projA partagent ces quotas en temps réel.
Lors de la soumission, il faut préciser l’account :
sbatch -A projA script.sh
Slurm vérifie alors si l’account projA dispose encore de ressources
dans sa QoS. Si oui → le job peut démarrer ; sinon le job reste en attente avec une raison indiquée par la commande sinfo (plus de détails sur un job avec scontrol show job <job_id>. Il faut alors spécifier une autre QoS ( exemple : qos2)
Soumission d’un job sur CPU sur qos2 :
sbatch -A projA -p cpu -q qos2 --time=02:00:00 script.sh
Soumission d’un job sur GPU :
sbatch -A projA -p gpu --gres=gpu:nvidia_h100_80gb_hbm3:2 --time=04:00:00 script_gpu.sh
Les informations sur les GPUs ici
Chaque ligne de la commande suivante vous fournira les accounts Slurm auquel vous avez accès ainsi que toutes les QoS associées à chaque account ( ainsi que celle par défaut ) :
sacctmgr list account --associations format=account%30,maxwall,grptres,defaultqos%30,qos%120,User%30 |grep $USER
Dans cet exemple, la première colonne concerne le nom de l’account qu’on coupe au bout de 30 caractères.
module load io-local slurm-user-tools
sacctmgr show qos ondemand-short format=Name%30,maxwall,grptres%35
Ici, ondemand-short est la QoS pour laquelle on demande des détails à Slurm. Les GrpTRES correspondent à des quotas sur les ressources.
+--------------+ +-----------+ +----------------+
| Utilisateur | -> | Account | -> | QoS (quotas) |
+--------------+ +-----------+ +----------------+
| | |
v v v
+----------+ +----------+
| Partition| | Partition|
| CPU | | GPU |
+----------+ +----------+
La partition par défaut est cpu-ondemand. Si vous avez un compte Slurm dedicated-*, dans ce cas, vous devrez obligatoirement préciser la partition cpu-dedicated.
N’hésitez pas à vous tourner vers la HPC-FAQ
Vous pouvez télécharger notre module contenant des outils pour surveiller vos groupes et comptes (accounts).
module load io-local slurm-user-tools
Les outils suivants sont disponibles :
checkGroupAccount [-g <group>] [-A <account>] permet de voir les comptes ou les groupes associés.
Par exemple, avec checkGroupAccount -g nomgroupe vous pouvez voir tous les account auxquels ce groupe a accès. Et avec checkGroupAccount -A nomaccount vous pouvez lister tous les groupes ayant accès à cet account.
squeue-full permet d’afficher la file d’attente avec des colonnes étendues.
userAccountAssosiation $USER affiche les comptes associés à l’utilisateur.
userQoS $USER affiche les QoS associés à l’utilisateur.
displayAccountQueueInfo -A=<your account> [-g=<your group>] [--count] permet de voir les jobs de ce compte ou de ce groupe. L’option --count affiche le nombre de CPUs utilisés par tous les jobs du compte et/ou du groupe.
createSlurmScript [-g <group>] [-A <account>] [-o <output>] permet de creer un scipt Slurm.
Par exemple, avec createSlurmScript -g nomgroupe vous pouvez créer un script de soumission avec la partition et le compte (account) accessibles à ce group. Si vous utilisez createSlurmScript sans options, votre groupe principal sera utilisé. Par défaut, le fichier slurm.sh sera créé.