Partitions GPU
Les partitions GPU disponibles
Tous les projets DARI (allocations dynamiques (AD), allocations régulières (AR), ...) ayant des heures GPU ont à leur disposition des partitions Slurm définies sur Jean Zay.
Partition V100 : gpu_p13 (par d éfaut)
Les projets ayant des heures GPU V100 ont accès par défaut à une partition permettant d'utiliser tous types de nœuds accélérés quadri-GPU à 16Go ou 32Go de mémoire.
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. les QoS pour V100 ci-dessous).
Cette partition comprenant à la fois des GPU Nvidia V100 ayant 16 Go de mémoire et des GPU Nvidia V100 ayant 32 Go de mémoire, si vous désirez vous limiter à un seul type de GPU, vous devez le spécifier en ajoutant dans vos scripts l'une des directives Slurm suivantes :
#SBATCH -C v100-16gpour sélectionner des nœuds ayant des GPU à 16 Go de mémoire (i.e. ''gpu_p3'')#SBATCH -C v100-32gpour sélectionner des nœuds ayant des GPU à 32 Go de mémoire (i.e. ''gpu_p1'')
Si votre travail peut s'exécuter indifféremment sur des GPU ayant 16 Go ou 32 Go de mémoire, il est préférable
de ne pas cibler spécifiquement un type de nœud donné (i.e. ne pas spécifier d'option -C v100-16g ou -C v100-32g)
afin de limiter le temps d'attente en queue de vos travaux.
Partition V100 : gpu_p2
La partition gpu_p2 est accessible à tous les utilisateurs et utilisatrices disposant d'heures GPU V100.
Elle permet de lancer des calculs sur les nœuds accélérés octo-GPU de Jean Zay. Ces nœuds sont équipés de GPU Nvidia V100 avec 32 Go de mémoire.
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,
cf. les QoS pour V100 ci-dessous).
Cette partition comporte des nœuds ayant 360 Go de mémoire RAM et d'autres en ayant 720 Go. Suivant la quantité de mémoire requise par votre code, vous pouvez ciblez l'une des deux sous-partitions suivantes :
- La sous-partition gpu_p2s donne accès aux nœuds octo-GPU V100 à 360 Go de mémoire.
- La sous-partition gpu_p2l donne accès aux nœuds octo-GPU V100 à 720 Go de mémoire.
Si votre travail n'a pas besoin de plus de 360 Go de mémoire, il est préférable de ne pas cibler
spécifiquement un type de nœud donné en spécifiant l'option --partition=gpu_p2 afin de limiter
le temps d'attente en queue de vos travaux.
Partition A100 : gpu_p5
La partition gpu_p5 est accessible à tous les utilisateurs et utilisatrices ayant obtenu des heures GPU A100. Elle permet de lancer des calculs sur les 52 nœuds accélérés octo-GPU de Jean Zay qui sont équipés de GPU Nvidia A100 reliés par une interconnexion NVLink SXM4 et ayant 80 Go de mémoire par GPU.
Par défaut, le temps d'exécution est de 10 minutes et il ne peut dépasser 20 heures (soit --time=HH:MM:SS ≤ 20:00:00,
c.f. les QoS pour A100 ci-dessous).
Pour utiliser cette partition, vous devez spécifier la directive Slurm #SBATCH -C a100 dans vos scripts.
Ces nœuds sont équipés de processeurs AMD Milan EPYC 7543 (64 cœurs par nœud) contrairement aux autres nœuds
qui comportent des processeurs Intel.
Il est donc nécessaire de charger le pré-module : module load arch/a100 avant tout autre module pour avoir accès aux
modules compatibles
et de recompiler vos codes spécifiquement pour cette partition.
Partition H100 : gpu_p6
La partition gpu_p6 est accessible à tous les utilisateurs et utilisatrices ayant obtenu des heures GPU H100. Elle permet de lancer des calculs sur les 364 nœuds accélérés quadri-GPU de Jean Zay qui sont équipés de GPU Nvidia H100 reliés par une interconnexion NVLink SXM5 et ayant 80 Go de mémoire par GPU.
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. les QoS pour H100 ci-dessous).
Pour utiliser cette partition, vous devez spécifier la directive Slurm #SBATCH -C h100 dans vos scripts.
Ces nœuds ayant une architecture matérielle spécifique, il est nécessaire de charger le pré-module :
module load arch/h100 avant tout autre module pour avoir accès aux modules compatibles et de recompiler vos codes.
Récapitulatif
| CPU | GPU | Option Slurm correspondante |
|---|---|---|
| 40 CPU + RAM 160 Go utiles | 4 GPU V100 + RAM 16 ou 32 Go | par défaut (sans option) |
| 40 CPU + RAM 160 Go utiles | 4 GPU V100 + RAM 16 Go | -C v100-16g |
| 40 CPU + RAM 160 Go utiles | 4 GPU V100 + RAM 32 Go | -C v100-32g |
| 24 CPU + RAM 360 ou 720 Go utiles | 8 GPU V100 + RAM 32 Go | --partition=gpu_p2 |
| 24 CPU + RAM 360 Go utiles | 8 GPU V100 + RAM 32 Go | --partition=gpu_p2s |
| 24 CPU + RAM 720 Go utiles | 8 GPU V100 + RAM 32 Go | --partition=gpu_p2l |
| 64 CPU + RAM 468 Go utiles | 8 GPU A100 + RAM 80 Go | -C a100 |
| 96 CPU + RAM 468 Go utiles | 4 GPU H100 + RAM 80 Go | -C h100 |
Les limites de temps par défaut des partitions 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 (voir ci-dessous). Vous devez alors utiliser :
- soit la directive Slurm
#SBATCH --time=HH:MM:SSdans votre travail, - soit l'option
--time=HH:MM:SSdes commandessbatch,sallocousrun.
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=prepostdans votre travail, - soit l'option
--partition=prepostdes commandessbatch,sallocousrun.
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, 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 alors disponible (de l'ordre de 160 Go utiles par nœud GPU V100).
Les partitions de service archive, compil, prepost et visu dont l'usage n'est pas facturé sont accessibles même si vous n'avez pas d'heures CPU.
Les QoS GPU disponibles
Pour chaque travail soumis sur une partition de calcul (donc autre que 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 travail.
Pour spécifier une QoS différente de celle par défaut, vous pouvez au choix :
- utiliser la directive Slurm
#SBATCH --qos=<qos_choisie>dans votre travail, - ou spécifier l'option
--qos=<qos_choisie>aux commandessbatch,sallocousrun
en remplaçant <qos_choisie> par le nom de la QoS désirée.
Notez que les noms des Qos diffèrent suivant les partitions utilisées.
Qos partition V100
-
QoS par défaut pour tous les travaux GPU V100 : qos_gpu-t3
- durée maximale : 20h00 de temps Elapsed,
- 512 GPU maximum par travail,
- 512 GPU maximum par utilisateur (tous projets confondus),
- 512 GPU maximum par projet (tous utilisateurs confondus).
-
QoS pour des exécutions plus longues qui doit être spécifiée pour être utilisée (cf. ci-dessus) : qos_gpu-t4
- durée maximale : 100h00 de temps Elapsed,
- 16 GPU maximum par travail,
- 96 GPU maximum par utilisateur (tous projets confondus),
- 96 GPU maximum par projet (tous utilisateurs confondus),
- 256 GPU maximum pour l'ensemble des travaux demandant cette QoS.
-
QoS réservée uniquement à des exécutions brèves effectuées dans le cadre de développement des codes ou de tests d'exécutions et qui doit être spécifiée pour être utilisée (cf. ci-dessus) : qos_gpu-dev
- un maximum de 10 travaux (en cours d'exécution ou en attente) simultanément par utilisateur,
- durée maximale : 2h00 de temps Elapsed,
- 32 GPU maximum par travail,
- 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.
| QoS | Limite en temps | Limite en ressource par travail | Limite par utilisateur (tous projets confondus) | Limite par projet (tous utilisateurs confondus) | Limite par QoS (tous utilisateurs confondus) |
|---|---|---|---|---|---|
| qos_gpu‑t3 (défaut) | 20h | 512 GPU | 512 GPU | 512 GPU | |
| qos_gpu‑t4 | 100h | 16 GPU | 96 GPU | 96 GPU | 256 GPU |
| qos_gpu‑dev | 2h | 32 GPU | 32 GPU, 10 travaux maximum (en cours d'exécution ou en attente) simultanément | 32 GPU | 512 GPU |
Qos partition A100
-
QoS par défaut pour tous les travaux GPU A100 : qos_gpu_a100-t3
- durée maximale : 20h00 de temps Elapsed,
- 128 GPU maximum par travail,
- 256 GPU maximum par utilisateur (tous projets confondus),
- 256 GPU maximum par projet (tous utilisateurs confondus).
-
QoS réservée uniquement à des exécutions brèves effectuées dans le cadre de développement des codes ou de tests d'exécutions et qui doit être spécifiée pour être utilisée (cf. ci-dessus) : qos_gpu_a100-dev
- un maximum de 10 travaux (en cours d'exécution ou en attente) simultanément par utilisateur,
- durée maximale : 2h00 de temps Elapsed,
- 32 GPU maximum par travail,
- 32 GPU maximum par utilisateur (tous projets confondus),
- 32 GPU maximum par projet (tous utilisateurs confondus),
- 128 GPU maximum pour l'ensemble des travaux demandant cette QoS.
La partition A100 ne dispose pas d'une QoS permettant l'exécution de travaux de plus de 20h en raison du nombre limité de nœuds A100 disponibles.
Tableau récapitulatif des limites sur les QoS GPU A100
| QoS | Limite en temps | Limite en ressource par travail | Limite par utilisateur (tous projets confondus) | Limite par projet (tous utilisateurs confondus) | Limite par QoS (tous utilisateurs confondus) |
|---|---|---|---|---|---|
| qos_gpu_a100‑t3 (défaut) | 20h | 128 GPU | 256 GPU | 256 GPU | |
| qos_gpu_a100‑dev | 2h | 32 GPU | 32 GPU, 10 travaux maximum (en cours d'exécution ou en attente) simultanément | 32 GPU | 128 GPU |
Qos partition H100
-
QoS par défaut pour tous les travaux GPU H100 : qos_gpu_h100-t3
- durée maximale : 20h00 de temps Elapsed,
- 512 GPU maximum par travail,
- 512 GPU maximum par utilisateur (tous projets confondus),
- 512 GPU maximum par projet (tous utilisateurs confondus).
-
QoS pour des exécutions plus longues qui doit être spécifiée pour être utilisée (cf. ci-dessus) : qos_gpu_h100-t4
- durée maximale : 100h00 de temps Elapsed,
- 16 GPU maximum par travail,
- 64 GPU maximum par utilisateur (tous projets confondus),
- 64 GPU maximum par projet (tous utilisateurs confondus),
- 192 GPU maximum pour l'ensemble des travaux demandant cette QoS.
-
QoS réservée uniquement à des exécutions brèves effectuées dans le cadre de développement des codes ou de tests d'exécutions et qui doit être spécifiée pour être utilisée (cf. ci-dessus) : qos_gpu_h100-dev
- un maximum de 10 travaux (en cours d'exécution ou en attente) simultanément par utilisateur,
- durée maximale : 2h00 de temps Elapsed,
- 32 GPU maximum par travail,
- 32 GPU maximum par utilisateur (tous projets confondus),
- 32 GPU maximum par projet (tous utilisateurs confondus),
- 384 GPU maximum pour l'ensemble des travaux demandant cette QoS.
| QoS | Limite en temps | Limite en ressource par travail | Limite par utilisateur (tous projets confondus) | Limite par projet (tous utilisateurs confondus) | Limite par QoS (tous utilisateurs confondus) |
|---|---|---|---|---|---|
| qos_gpu_h100‑t3 (défaut) | 20h | 512 GPU | 512 GPU | 512 GPU | |
| qos_gpu_h100‑t4 | 100h | 16 GPU | 64 GPU | 64 GPU | 192 GPU |
| qos_gpu_h100‑dev | 2h | 32 GPU | 32 GPU, 10 travaux maximum (en cours d'exécution ou en attente) simultanément | 32 GPU | 384 GPU |