
Table des matières
Jean Zay : heures de calcul et commande idracct
Sur Jean Zay, les attributions d'heures de calcul sont faites par projet, en différenciant le décompte des heures de calcul CPU de celui des heures GPU.
Le décompte des heures consommées par vos travaux se fait sur la base :
- du nombre de cœurs physiques réservés × temps Elapsed pour un travail de type CPU ou GPU;
- ou/et du nombre de GPUs réservés × temps Elapsed pour un travail de type GPU.
Remarque : pour un travail de type GPU, le nombre de GPUs réservés pris en compte pour la comptabilité du travail n'est pas nécessairement égal au nombre de GPUs demandés via la directive Slurm #SBATCH --gres=gpu:...
. En effet, un ajustement peut être effectué suivant le nombre de CPUs qui est aussi demandé pour le travail. Par exemple, demander un seul GPU d'un nœud (soit 1/4 ou 1/8 des GPUs suivant le type de nœud) via #SBATCH --gres=gpu:1
et la moitié des CPUs du nœud, conduit à la réservation de la moitié des ressources du nœud. La comptabilité du job est alors calculée sur la base d'une réservation de la moitié des GPUs (donc comme si vous aviez demandé #SBATCH --gres=gpu:2
ou #SBATCH --gres=gpu:4
suivant le type de nœud).
Notez que lors d'une exécution en mode exclusif (option --exclusive
de la commande sbatch
ou directive #SBATCH --exclusive
de SLURM), vous réservez les nœuds de calcul en totalité :
- soit 40 cœurs physiques pour les partitions cpu;
- soit 40 cœurs physiques et 4 gpus pour la partition gpu par défaut;
- soit 24 cœurs physiques et 8 gpus pour la partition
gpu_p2
.
Le décompte se fera alors sur la base :
- du nombre de nœuds réservés × 40 cœurs × temps Elapsed pour un travail de type CPU;
- du nombre de nœuds réservés × 4 gpus × temps Elapsed pour un travail de type GPU dans la partition gpu par défaut;
- du nombre de nœuds réservés × 8 gpus × temps Elapsed pour un travail de type GPU dans la partition
gpu_p2
.
ATTENTION : Toutes les exécutions demandant un nœud de calcul ou plus se font automatiquement en mode exclusif et sont donc facturés sur la base du nombre de nœuds entiers réservés.
Vous pouvez consulter les attributions de votre projet en utilisant la commande idracct
.
De plus, nous vous recommandons de consulter notre documentation concernant la régulation automatique d'heures qui conditionne l'utilisation des heures de calcul.
Les attributions d'heures
Plusieurs cas sont possibles suivant que votre login est rattaché à un seul projet ou plusieurs et que le.s projet.s dispose.nt d'heures CPU, GPU ou des deux :
- Si votre unique projet ne dispose que d'heures CPU ou d'heures GPU, vous n'avez alors pas besoin de préciser l'attribution d'heures sur laquelle doit être décomptée les heures consommées par vos calculs.
- Par contre, si votre unique projet dispose d'heures CPU et GPU, ou encore si votre login est rattaché à plusieurs projets, vous devez impérativement préciser l'attribution sur laquelle doit être décomptée les heures consommées par vos calculs. Sans cette précision, vous risquez de décompter vos heures consommées sur un autre projet que celui sur lequel vous souhaitez travailler.
Vous devez donc obligatoirement ajouter, soit la directive Slurm#SBATCH --account=...
dans l'en-tête du script de soumission, soit l'option--account=...
à la commandesbatch
, en prenant soin d'indiquer le bon projet (my_project) et le type d'heures à utiliser (cpu ou gpu) :# Pour des heures CPU # En argument des commandes sbatch, salloc et srun : $ sbatch ... --account=my_project@cpu job_cpu.slurm # Ou via la directive SLURM dans un job batch : #SBATCH --account=my_project@cpu
# Pour des heures GPU # En argument des commandes sbatch, salloc et srun : $ sbatch ... --account=my_project@gpu job_gpu.slurm # Ou via la directive SLURM dans un job batch : #SBATCH --account=my_project@gpu
Remarques :
- Le type d'heures indiqué (cpu ou gpu) doit être en accord avec la partition choisie pour l'exécution du job (
#SBATCH --partition=
cpu_... ou#SBATCH --partition=
gpu_...) et/ou la QoS choisie (#SBATCH --qos=
qos_cpu-... ou#SBATCH --qos=
qos_gpu-...).
Pour plus d'information, vous pouvez consulter notre documentation détaillant les partitions et les Qos. - La variable d'environnement
IDRPROJ
référence le projet auquel vous êtes actuellement rattaché.
Sa valeur (echo $IDRPROJ
) peut donc être utilisée pour valoriser la chaine de caractères my_project. - Pour connaitre les divers groupes Unix référençant vos différents projets, vous pouvez utiliser la commande Unix
groups
.
Par exemple pour un login rattaché à deux projetsgrp1
etgrp2
(le groupe génériquegengrp
est propre à chaque login) :$ groups gengrp grp1 grp2
- Pour basculer sur un autre projet, vous devez utiliser la commande
eval $(idrenv -d <autre_projet>)
.
Ainsi, avec l'exemple précédent, pour basculer sur le projetgrp2
:# Bascule sur le projet grp2 : $ eval $(idrenv -d grp2) # Vérification du projet sélectionné : $ echo $IDRPROJ grp2
La commande idracct
Un simple appel à la commande idracct
vous indiquera, pour chacun de vos projets, la.es attribution.s d'heures CPU et/ou GPU, ainsi que les consommations en heures de chaque membre.
Voici un exemple avec le projet 999999 regroupant 2 utilisateurs login1
et login2
: ici les 1000000 h CPU et les 40000 h GPU sont attribuées pour la période du 01 novembre 2019 au 31 octobre 2020 :
$ idracct Derniere mise a jour le 15-11-2019 08:00:01 ################################################################################ PROJET 999999 SUR JEAN-ZAY ################################################################################ ================================================================================ CPU (du 01-11-2019 au 31-10-2020) Allocation : 1000000 h.cpu ================================================================================ Compte Proprietaire Consommation Nb travaux Remboursement -------- ------------------------------ ------------- ---------- ------------- login1 Nom1_Prenom1 42809.00 10 - login2 Nom2_Prenom2 12014.00 50 - -------- ------------------------------ ------------- ---------- ------------- Totaux 54823.00 60 0.00 Utilisation 0.05% ================================================================================ GPU (du 01-11-2019 au 31-10-2020) Allocation : 40000 h.gpu ================================================================================ Compte Proprietaire Consommation Nb travaux Remboursement -------- ------------------------------ ------------- ---------- ------------- login1 Nom1_Prenom1 29078.83 248 - login2 Nom2_Prenom2 2706.31 163 - -------- ------------------------------ ------------- ---------- ------------- Totaux 31785.14 411 0.00 Utilisation 79.46%
La commande idracct
dispose de diverses options. Pour les consulter, utilisez l'option -h
ou --help
. Voici les plus utiles :
- L'option
-a
(ou--accounting
) permet de spécifier le type d'heures souhaité dans la sortie de la commande : soit CPU, soit GPU. Attention à bien utiliser les caractères majuscules ici !$ idracct -a GPU Derniere mise a jour le 15-11-2019 08:00:01 ################################################################################ PROJET 999999 SUR JEAN-ZAY ################################################################################ ================================================================================ GPU (du 01-11-2019 au 31-10-2020) Allocation : 40000 h.gpu ================================================================================ Compte Proprietaire Consommation Nb travaux Remboursement -------- ------------------------------ ------------- ---------- ------------- login1 Nom1_Prenom1 29078.83 248 - login2 Nom2_Prenom2 2706.31 163 - -------- ------------------------------ ------------- ---------- ------------- Totaux 31785.14 411 0.00 Utilisation 79.46%
- l'option
-s
(ou--summary
) permet d'obtenir l'information sous un format résumé :$ idracct -s Derniere mise a jour le 15-11-2019 08:00:01 Projet Categorie Debut Fin Budget Unite Consommation NbTravaux Remboursement Utilise ------ --------- ---------- ---------- -------- ----- ------------ --------- ------------- ------- 999999 CPU 01-11-2019 31-10-2020 1000000 h.cpu 54823.00 60 0.00 0.05% 999999 GPU 01-11-2019 31-10-2020 40000 h.gpu 31785.14 411 0.00 79.46%