Configuration
Attention
Les outputs ci-dessous sont affichés à titre d’exemple de format et pas pour leur contenu : ce dernier pouvant changer selon les modifications de maintenance de la plateforme de calcul.
L’utilisateur est invité à lancer lui-même les commandes sur les serveurs interactifs pour obtenir des informations à jour.
Informations utilisateur
Il faut distinguer la notion de groupes group
et account
. Le premier est le groupe Unix correspondant à la collaboration à laquelle l’utilisateur est rattaché. Il correspond donc à une expérience ou une collaboration à laquelle l’utilisateur participe. L”account
correspond à l’entité à laquelle les ressources utilisées par le job seront imputées.
Pour visualiser l’ensemble des accounts
auxquels un utilisateur est rattaché et les QoS auxquelles les accounts
sont autorisés :
% sacctmgr show user withassoc <userid> format=Account,QOS%30
<userid>
étant l’identifiant de l’utilisateur.
Note
De manière générale, la commande sacctmgr
permet de visualiser et de modifier l’ensemble des informations liées aux accounts
. Pour plus de détails, veuillez vous référer à l’aide de la commande sacctmgr -h
.
Par défaut, l”account
actif correspond au group
principal de l’utilisateur. Pour confirmation, ou pour passer d’un account
par défaut à l’autre, veuillez vous référer à la syntaxe proposée dans Compte calcul pour changer temporairement le group
principal. Pour soumettre sur un account
différent sans modifier le group
principal, utilisez l”option -A | --account=
.
Partitions
La partition est une ressource de calcul qui regroupe des nœuds dans une même entité logique définie par une ou plusieurs spécifications données (quelles soient matérielles ou liées à des ressources).
Pour obtenir un aperçu rapide des différentes partitions, on peut utiliser la commande sinfo
:
% sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
htc* up infinite 1 drng ccwslurm0130
htc* up infinite 139 mix ccwslurm[...]
htc* up infinite 50 alloc ccwslurm[...]
htc_interactive up infinite 1 mix ccwislurm0001
htc_interactive up infinite 1 idle ccwislurm0002
htc_highmem up infinite 1 mix ccwmslurm0001
gpu up infinite 6 mix ccwgslurm[0002,0100-0104]
gpu_interactive up infinite 2 mix ccwgislurm[0001,0100]
hpc up infinite 2 alloc ccwpslurm[0001-0002]
flash up infinite 1 mix ccwslurm0001
htc_daemon up infinite 1 mix ccwslurm0001
dask up infinite 139 mix ccwslurm[...]
Il existe trois partitions majeures distinctes : htc
, hpc
, gpu
, ainsi que leurs équivalents pour les jobs interactifs : htc_interactive
, hpc_interactive
et gpu_interactive
. Chacune de ces trois partitions correspond à l’une des trois plateformes de calcul décrites à la page concernant la plateforme de calcul.
La partition flash
reserve la totalité d’un nœud pour les tests et le debug des jobs. Cette partition est limitée par sa qos à 1 heure.
La partition htc_highmem
est dédiée à des jobs qui ont besoin de beaucoup de mémoire et permet une limite de mémoire plus élevée par job.
La partition htc_daemon
permet d’exécuter des jobs généralement de monitoring ou orchestrateurs : très longs, mais limités en ressources. Cette partition est limitée par sa qos à 10 jobs par utilisateur.
La partition dask
est dédiée à la fonctionnalité Dask sur la Jupyter Notebook Platform. Cette partition partage les mêmes serveurs de calcul que htc
.
Note
De manière simple, les jobs mono-cœur et multi-cœurs seront exécutés dans la partition htc
, les jobs parallèles utilisant l’InfiniBand dans la partition hpc
, et l’accès aux GPUs se fera par la partition gpu
. L’accès à cette dernière partition est restreint et dépend de la demande de ressources faite par votre groupe de calcul. Veuillez contacter le support utilisateurs pout toute information complémentaire.
Les details sur les limitations de ressources à la soumissions sont decrits dans le paragraphe Limites des paramètres obligatoires
La commande sinfo
indique également la restriction en temps pour l’exécution d’un job et les serveurs de calcul et leurs états appartenant à chacune de ces partitions.
Voici les principales options de la commande sinfo
:
-a
affiche tous les serveurs de calcul
-d
affiche les serveurs de calcul hors ligne
-l
affiche la sortie dans un format long
-p <partition>
affiche les informations pour une partition spécifique
-O "<champs d'output>"
affiche dans l’output les champs mentionnés. Pour la liste des champs, veuillez lancer la commande
man sinfo
Pour afficher et consulter la configuration détaillée des partitions on utilisera scontrol
:
% scontrol show partition
PartitionName=htc
AllowGroups=ALL AllowAccounts=ALL AllowQos=normal
AllocNodes=ALL Default=YES QoS=N/A
DefaultTime=NONE DisableRootJobs=YES ExclusiveUser=NO ExclusiveTopo=NO GraceTime=0 Hidden=NO
MaxNodes=1 MaxTime=UNLIMITED MinNodes=0 LLN=YES MaxCPUsPerNode=UNLIMITED MaxCPUsPerSocket=UNLIMITED
NodeSets=htc
Nodes=ccwslurm[0002-0143,0168-0215,0312-0367]
PriorityJobFactor=1 PriorityTier=1 RootOnly=NO ReqResv=NO OverSubscribe=NO
OverTimeLimit=NONE PreemptMode=OFF
State=UP TotalCPUs=18432 TotalNodes=246 SelectTypeParameters=NONE
JobDefaults=(null)
DefMemPerCPU=1024 MaxMemPerNode=UNLIMITED
TRES=cpu=18432,mem=80590000M,node=246,billing=18432
[...]
- La commande donne les principales caractéristiques de ces partitions :
les groupes
groups
et comptesaccounts
autorisés,les qualités de service associées (voir ci-dessous),
les ressources disponibles dans la partition,
les limites en terme de ressources de la partition.
Note
Dans la pratique, à la soumission d’un job, on pourra spécifier la partition et le compte account à utiliser avec respectivement les options --partition
et --account
. Sans spécification particulière, Slurm optera pour la partition par défaut, i.e. htc, et le compte account principal de l’utilisateur.
Nœuds
Les nœuds sont les machines physiques hébergeant les ressources informatiques telles que le processeur et la mémoire. Pour obtenir les informations détaillées de chaque nœud de la plateforme informatique, utilisez la commande ci-dessous (exemple avec le nœud ccwslurm0002
; sans cette spécification la commande donne la quantité d’information ci-dessous pour chaque nœud de la plateforme) :
% scontrol show node ccwslurm0002
NodeName=ccwslurm0002 Arch=x86_64 CoresPerSocket=1
CPUAlloc=25 CPUEfctv=64 CPUTot=64 CPULoad=24.12
AvailableFeatures=htc,x86_64,el9
ActiveFeatures=htc,x86_64,el9
Gres=(null)
NodeAddr=ccwslurm0002 NodeHostName=ccwslurm0002 Version=24.05.1
OS=Linux 5.14.0-427.31.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 9 14:06:03 EDT 2024
RealMemory=265000 AllocMem=80896 FreeMem=159929 Sockets=64 Boards=1
MemSpecLimit=6000
State=MIXED ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
Partitions=htc,dask
BootTime=2024-08-26T17:07:57 SlurmdStartTime=2024-08-26T17:08:11
LastBusyTime=2024-09-02T12:09:59 ResumeAfterTime=None
CfgTRES=cpu=64,mem=265000M,billing=64
AllocTRES=cpu=25,mem=79G
CurrentWatts=0 AveWatts=0
Attention
Les champs CPUTot
et RealMemory
donnent les limites matériels du nœud en ce qui concerne, respectivement, le nombre total de CPU et de mémoire. Veillez à ne pas les dépasser lors de vos soumissions. En règle générale, si un job demande plus de 200G de mémoire, il doit être soumis sur la partition htc_highmem
.
Pour une vue d’ensemble de toutes les ressources disponibles sur la plateforme de calcul, veuillez faire référence à la page Informations sur les ressources de la plateforme de calcul.
Qualité de service
La qualité de service, ou QoS (pour Quality Of Service), est une règle associée à une partition ou à un job qui permet de l’altérer. Elle peut par exemple modifier la priorité d’un job, ou en limiter les ressources allouées. La commande scontrol
montrée dans le paragraphe des partitions permet aussi de visualiser les QoS implementées sur une partition donnée.
Afin de connaître les détails des QoS disponibles, veuillez vous referer à la page Informations QoS, ou utiliser de nouveau la commande sacctmgr
:
% sacctmgr show qos format=Name,Priority,MaxWall,MaxSubmitPU
Name Priority MaxWall MaxSubmitPU
---------- ---------- ----------- -----------
normal 0 7-00:00:00 5000
flash 0 01:00:00 10
gpu 0 7-00:00:00 100
daemon 0 90-00:00:00 10
dask 1000 2-00:00:00
Ici, on a restreint la sortie aux seuls champs nom, priorité, durée d’exécution et limite maximale de jobs soumis par utilisateur via l’option format
.
La QoS normal
est appliquée par défaut à tous les jobs. Elle en limite donc la durée d’exécution à 7 jours maximum. La QoS gpu
a la même limite de temps mais est limitée à 100 jobs soumis. La QoS flash
, quant à elle, limite ce temps d’exécution à 1 heure pour nombre de jobs simultanés limité à 10 par utilisateur. La QoS daemon
est associée à la partition htc_daemon et est adaptée aux processus peu consommateurs de ressources mais devant rester en exécution sur des durées très élevées. Elle est également limitée à 10 jobs par utilisateur. Pour résumer :
normal
est utilisée avec les partitions htc, htc_interactive et hpc.
gpu
est utilisée avec les partitions gpu et gpu_interactive.
flash
est utilisée uniquement avec la partition flash.
daemon
est utilisée uniquement avec la partition htc_daemon.
Note
In fine, à la soumission il suffit de définir une partition, et la QoS sera définie automatiquement.