Quotas et limites d'utilisation du cluster?

Bonjour

je voudrais savoir s'il existait une page ou une commande slurm sur laquelle sont décrits tous les quotas et limites d'utilisation du cluster par les utilisateurs.

Par exemple, je n'arrive pas à lancer un script sbatch parce qu’apparemment la réservation atteint le QOSMaxMemoryPerUser, cependant je n'arrive pas à déterminer ce parametre pour calibrer ma réservation en fonction.

MErci
Guillaume

Bonjour Guillaume,

Il y a plusieurs quotas sur le cluster, pour le stockage et le calcul.
Côté calcul, il existe également plusieurs limitations: au niveau de l'utilisateur, du groupe, de la partition, etc.

Dans ce cas précis, c'est une limitation sur l'usage du CPU et de la RAM mise en place très récemment pour éviter une monopolisation du cluster (merci @julien).
Cette limitation est faite via le mécanisme de QoS de Slurm.

$ sacctmgr -p show qos format=Name,MaxTRESPerUser
Name|MaxTRESPU|
normal|cpu=400,mem=500000M|

On a donc une limitation de ressources par utilisateur de 400 CPU et/ou 500Go de RAM (MaxTRESPerUser=ressources maximales par utilisateur, TRES=Trackable RESources).
Si l'utilisateur demande plus de ressources que ce seuil, les jobs sont mis en attente (PENDING), le temps que les ressources utilisées par l'utilisateur soient libérées.

Chaque job que vous avez lancé demande 4 CPU et 50Go RAM/CPU. Soit, pour un job, 4 CPU et 200Go RAM.
Compte tenu du seuil ci-dessus sur la mémoire, il ne peut donc y avoir que 2 de ces jobs RUNNING.

Il faut en effet qu'on mette à jours la documentation et que l'on fournisse plus d'information sur les quotas et leur usages (doc, commandes, alias, motd ou autre).
N'hésitez-pas à revenir vers nous si nous tardions trop ou si vous avez un peu de temps à consacrer pour contribuer (par exemple sur la documentation: https://gitlab.com/ifb-elixirfr/cluster/doc).

A bientôt

Bonjour David

merci pour ces précisions.

Est ce que le quota de 500Go RAM ne serait pas un peu trop restrictif car bloque la réservation de 2 noeuds complets à 256Go chacun ?

400 CPUs est équivalent à combien de noeuds? 8 noeuds ? ce qui parait raisonnable
Ne faudrait-il pas autoriser 8 x 256 Go RAM en conséquence?

Bonne journée
GUillaume

1 « J'aime »

Pas ailleurs, la limite de 500Go empêche d'utiliser la partition bigmem pour profiter justement de ses ressources en RAM supérieures

Bonjour Guillaume,

Merci pour vos remarques.

Nous avons vu le problème avec bigmem et apportons les corrections nécessaires.

Votre remarque sur le quota de RAM est tout à fait pertinente.
Nous allons revoir ces seuils. On reviens vers vous dès que c'est mis à jours.

Bonne journée

Je ne comprends pas tous les détails dans l'application de ces quotas:

si je spécifie
#SBATCH -p bigmem
#SBATCH --mem=500000M
Le script est lancé

En revanche, avec
#SBATCH -p bigmem
#SBATCH --mem=500G
Je suis bloqué par un QOSMaxMemoryPerUser

Pourtant ces réservations sont synonymes et je suis dans les clous concernant le quota:

">sacctmgr -p show qos format=Name,MaxTRESPerUser
Name|MaxTRESPU|
normal|cpu=400,mem=500000M|
bigmem|mem=4000G|

Les préfixes méga (M), giga (G) et tera (T) dans Slurm ne représente pas une puissance en base 10 (10³ = 1000), mais une puissance en base 2 (2¹⁰ = 1024).
Du coup 1G = 1024M
Et 500G = 512000M > au quota actuel de 500000

En attendant que les paramètres soient mise à jour, il est possible d'outrepasser la limite RAM pour bigmem en spécifiant l'option ci-dessous (merci Jean-Christophe H.)

#SBATCH --qos=bigmem

Bonjour Guillaume,

Le seuil pour la mémoire a été passé à 2To (merci Jean-Christophe H.):

$ sacctmgr -p show qos format=Name,MaxTRESPU
Name|MaxTRESPU|
normal|cpu=400,mem=2T|
bigmem|mem=4000G|

La gestion des jobs (QoS, partition) évoluera probablement encore dans les mois qui viennent.
Nous communiquerons (doc, info) plus à cette occasion.

Merci pour l'échange.
Bonne journée

Merci pour votre réactivité et votre efficacité les gars
Bonne journée
G.