Jean Zay : partitions Slurm GPU

Les partitions disponibles

Tous les projets DARI ou Accès Dynamique (AD) ayant des heures GPU ont à leur disposition des partitions Slurm définies sur Jean Zay.

Attention : la définition des partitions GPU sur Jean Zay a évolué le 8/12/2020

Depuis le 8/12/2020, les projets ayant des heures GPU ont accès par défaut à une nouvelle partition permettant d'utiliser tous types de nœuds accélérés quadri-GPU (ce qui correspond aux anciennes partitions gpu_p1 et gpu_p3 réunies). Par défaut, le temps d'exécution est de 10 minutes et il ne peut dépasser 100 heures (soit --time=HH:MM:SS ≤ 100:00:00 c.f. ci-dessous). Cette nouvelle partition comprenant à la fois des GPU ayant 16 Go de mémoire et des GPU ayant 32 Go de mémoire, si vous désirez vous limiter à un seul type de GPU, il vous faut le spécifier en ajoutant dans vos scripts l'une des directives SLURM suivantes :

  • #SBATCH -C v100-16g # pour sélectionner des nœuds ayant des GPU à 16Go de mémoire (i.e. gpu_p3)
  • #SBATCH -C v100-32g # pour sélectionner des nœuds ayant des GPU à 32Go de mémoire (i.e. gpu_p1)

Si, auparavant, vous spécifiiez explicitement l'une des partitions gpu_p1 ou gpu_p3 dans vos scripts de soumission, vous devez remplacer la directive SLURM #SBATCH --partition=... correspondante par l'une des deux directives ci-dessus.

Les autres partitions sont toujours disponibles (et resteront inchangées jusqu'à nouvel ordre) :

  • La partition gpu_p2 est pour le moment uniquement accessible aux chercheurs en Intelligence Artificielle qui ont effectué une demande d'heures GPU via les Accès Dynamiques (AD). Elle permet de lancer des calculs sur les nœuds accélérés octo-GPU de Jean Zay. Par défaut, le temps d'exécution est de 10 minutes et il ne peut dépasser 100 heures (soit --time=HH:MM:SS ≤ 100:00:00 c.f. ci-dessous).
    • La sous-partition gpu_p2s donne accès au nœuds octo-GPU à 360 Go de mémoire.
    • La sous-partition gpu_p2l donne accès au nœuds octo-GPU à 720 Go de mémoire.
  • La partition prepost permet de lancer un travail sur l'un des nœuds pré/post-traitement de Jean Zay jean-zay-pp, sur lesquels les calculs ne sont pas déduits de votre allocation. Par défaut, le temps d'exécution est de 2 heures et il ne peut dépasser 20 heures (soit --time=HH:MM:SS ≤ 20:00:00, c.f ci-dessous).
  • La partition visu permet de lancer un travail sur l'un des nœuds de visualisation de Jean Zay jean-zay-visu, sur lesquels les heures de calcul ne sont pas déduites de votre allocation. Par défaut, le temps d'exécution est de 10 minutes et il ne peut dépasser 4 heures (soit --time=HH:MM:SS ≤ 4:00:00 c.f. ci-dessous).
  • La partition archive est dédiée aux commandes permettant de gérer les données (copies ou déplacements de fichiers, création d'archives) : les heures de calcul ne sont pas déduites de votre allocation. Par défaut, le temps d'exécution est de 2 heures et il ne peut dépasser 20 heures (soit --time=HH:MM:SS ≤ 20:00:00 c.f. ci-dessous).
  • La partition compil est dédiée aux compilations des codes et bibliothèques qui ne peuvent se faire sur la frontale car elles requièrent trop de temps cpu : les heures de calcul ne sont pas déduites de votre allocation. Par défaut, le temps d'exécution est de 2 heures et il ne peut dépasser 20 heures (soit --time=HH:MM:SS ≤ 20:00:00 c.f. ci-dessous).

Attention aux limites de temps par défaut des partitions, qui sont délibérément basses. Pour des exécutions plus longues, vous devez spécifier une limite de temps d'exécution, qui doit rester inférieure au maximum autorisé pour la partition et la Qos utilisées. Vous devez alors utiliser :

  • soit la directive Slurm #SBATCH --time=HH:MM:SS dans votre job,
  • soit l'option --time=HH:MM:SS des commandes sbatch, salloc ou srun.

La partition par défaut n'a pas besoin d'être spécifiée pour être utilisée par les travaux demandant des GPU. Par contre, toutes les autres doivent être spécifiées explicitement pour être utilisées. Par exemple, pour la partition prepost, vous pouvez utiliser :

  • soit la directive Slurm #SBATCH --partition=prepost dans votre job,
  • soit l'option --partition=prepost des commandes sbatch, salloc ou srun.

Attention : depuis le 11 octobre 2019, tout travail demandant plus d'un nœud tourne en mode exclusif : les nœuds ne sont pas partagés. En particulier, cela implique que les heures facturées sont calculées sur la base de la totalité des nœuds réquisitionnés, y compris ceux qui ne sont que partiellement exploités.
Par exemple, la réservation de 41 cœurs CPU (soit 1 nœud + 1 cœur) sur la partition cpu_p1 entraîne la facturation de 80 cœurs CPU (soit 2 nœuds). De manière analogue sur la partition GPU par défaut, la réservation de 5 GPU (soit 1 nœud quadri-GPU + 1 GPU) entraîne la facturation de 8 GPU (soit 2 nœuds quadri-GPU). Par contre, la totalité de la mémoire des nœuds réservés est disponible dans les deux cas (de l'ordre de 160 Go utiles par nœud).

Les QoS disponibles

Pour chaque job soumis dans une partition autre que les partitions archive, compil, prepost et visu, vous pouvez spécifier une QoS (Quality of Service) qui va déterminer les limites et la priorité de votre job :

  • la QoS par défaut pour tous les travaux GPU : qos_gpu-t3
    • durée max : 20h00 de temps Elapsed,
    • 512 GPU maximum par travail,
    • 1024 GPU maximum par utilisateur (tous projets confondus),
    • 1024 GPU maximum par projet (tous utilisateurs confondus).
  • une QoS pour des exécutions plus longues et qui doit être spécifiée pour être utilisée (c.f. ci-dessous) : qos_gpu-t4
    • durée max : 100h00 de temps Elapsed,
    • 16 GPU maximum par travail,
    • 128 GPU maximum par utilisateur (tous projets confondus),
    • 128 GPU maximum par projet (tous utilisateurs confondus),
    • 512 GPU maximum pour l'ensemble des travaux demandant cette QoS.
  • une QoS pour des exécutions plus brèves et qui doit être spécifiée pour être utilisée (c.f. ci-dessous) : qos_gpu-dev
    • durée max : 2h00 de temps Elapsed,
    • 32 GPU maximum par utilisateur (tous projets confondus),
    • 32 GPU maximum par projet (tous utilisateurs confondus),
    • 512 GPU maximum pour l'ensemble des travaux demandant cette QoS.

Pour spécifier une QoS différente du défaut, vous pouvez au choix :

  • utiliser la directive Slurm #SBATCH --qos=qos_gpu-dev dans votre job par exemple,
  • ou spécifier l'option --qos=qos_gpu-dev aux commandes sbatch, salloc ou srun.
Tableau récapitulatif
QoS Limite en temps Limite en ressource
par job par utilisateur (tous
projets confondus)
par projet (tous
utilisateurs confondus)
par QoS
qos_gpu-t3 (défaut) 20h 512 GPU 1024 GPU 1024 GPU
qos_gpu-t4 100h 16 GPU 128 GPU 128 GPU 512 GPU
qos_gpu-dev 2h 32 GPU 32 GPU 32 GPU 512 GPU