Configuration

Attention

Les champs de sortie 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 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. Le deuxième 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 <username> format=Account,QOS%50

<username> é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.

Le seul 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    268    mix ccwslurm[...]
htc_arm                 up   infinite      4   idle ccwslurma[0003-0006]
htc_interactive         up   infinite      2   idle ccwislurm[0001-0002]
htc_highmem             up   infinite      1    mix ccwmslurm0001
gpu_v100                up   infinite     16   idle ccwgslurm[0100-0115]
gpu_v100_interactive    up   infinite      1    mix ccwgislurm0100
gpu_h100                up   infinite      3   idle ccwgslurm[0200-0202]
gpu_h100_interactive    up   infinite      1    mix ccwgislurm0200
hpc                     up   infinite      8    mix ccwpslurm[0017-0024]
flash                   up   infinite      1    mix ccwslurm0001
htc_daemon              up   infinite      1    mix ccwslurm0001

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 distinction parmi les partitions gpu_* est expliquée dans les exemples de jobs GPU.

  • 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 htc_arm permet la soumission des jobs sur des processeurs de type ARM. Elle est restreinte aux mêmes limitations des partitions htc.

  • La partition hpc permet la soumission des jobs sur les serveurs connectés en InfiniBand (voir l’exemple Job parallèle).

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 l’une des partitions gpu_*. L’accès à la ressource GPU 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

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,nomemlimit,dask
   AllocNodes=ALL Default=YES QoS=htc
   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-0142,0168-0215,0312-0367,2042-2064]
   PriorityJobFactor=1 PriorityTier=1 RootOnly=NO ReqResv=NO OverSubscribe=NO
   OverTimeLimit=NONE PreemptMode=OFF
   State=UP TotalCPUs=21312 TotalNodes=268 SelectTypeParameters=NONE
   JobDefaults=(null)
   DefMemPerCPU=1024 MaxMemPerNode=UNLIMITED
   TRES=cpu=21312,mem=87344000M,node=268,billing=21312

 [...]
La commande donne les principales caractéristiques de ces partitions :
  • les groupes (AllowGroups) et comptes (AllowAccounts) autorisés,

  • les qualités de service par défaut (QoS) et associées (AllowQos),

  • les ressources disponibles et leur limites dans 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 htc (la partition par défaut) 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=36 CPUEfctv=64 CPUTot=64 CPULoad=25.59
   AvailableFeatures=htc
   ActiveFeatures=htc
   Gres=(null)
   NodeAddr=ccwslurm0002 NodeHostName=ccwslurm0002 Version=25.05.3
   OS=Linux 5.14.0-570.58.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Oct 21 04:15:07 EDT 2025
   RealMemory=192000 AllocMem=176978 FreeMem=78522 Sockets=64 Boards=1
   MemSpecLimit=6000
   State=MIXED ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
   Partitions=htc
   BootTime=2025-11-02T13:18:47 SlurmdStartTime=2025-11-25T10:52:59
   LastBusyTime=2025-11-02T17:00:05 ResumeAfterTime=None
   CfgTRES=cpu=64,mem=187.50G,billing=64
   AllocTRES=cpu=36,mem=176978M
   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 utiliser la commande sacctmgr :

% sacctmgr show qos format=Name,Priority,MaxWall,MaxSubmitPU,MaxTRES
      Name   Priority     MaxWall MaxSubmitPU       MaxTRES
---------- ---------- ----------- ----------- -------------
    normal          0  7-00:00:00        5000
     flash          0    01:00:00          10      mem=150G
       gpu          0  7-00:00:00         100
    daemon          0 90-00:00:00          10 cpu=1,mem=16G
      dask       1000  2-00:00:00
       htc          0                              mem=150G
interacti+          0  7-00:00:00           4

Ici, on a restreint la sortie aux seuls champs nom, priorité, durée d’exécution, limite de jobs soumis par utilisateur et limite des ressources exploitables (TRES) via l’option format. La sortie de la commande ce lit de la façon suivante :

  • normal (utilisée avec les partitions htc, htc_arm, htc_highmem et hpc) limite la durée d’exécution des jobs à 7 jours maximum ;

  • htc (utilisée uniquement sur la partition htc) complète normal en limitant la mémoire demandée à 150G (voir Limites des paramètres obligatoires) ;

  • gpu (utilisée avec les partitions gpu_* et gpu_*_interactive) limite à 100 le nombre de jobs soumis par utilisateurs ;

  • interactive (utilisée avec les partitions *_interactive) limite à 4 le nombre de sessions interactives de l’utilisateur ;

  • flash (utilisée uniquement avec la partition flash) limite le temps d’exécution à 1 heure pour un maximum de 10 jobs simultanés par utilisateur. La mémoire demandée est limitée à 150G comme pour htc ;

  • daemon (utilisée uniquement avec la partition htc_daemon) 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 limitée à 10 jobs par utilisateur et 1 CPU et 16G de mémoire par job (voir Limites des paramètres obligatoires) ;

  • dask (utilisée dans le cadre de la plateforme Jupyter) fixe à 2 jours la limite d’exécution. Cette QoS est accepté dans la partition htc, comme l’ont peut voir en sortie de la commande scontrol dans le paragraphe Partitions. Pour la durée des jobs Dask veuillez par contre vous référer au paragraphe Paramètres Dask.

Note

In fine, à la soumission il suffit de définir une partition, et la QoS sera définie automatiquement.