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.
  • soit 64 cœurs physiques et 8 gpus pour la partition gpu_p5.

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 les partitions gpu_p2 et gpu_p5.

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 V100, GPU A100 ou au moins deux parmi les trois :

  • Si votre unique projet ne dispose que d'heures CPU ou d'heures GPU (V100 ou A100), 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 d'heures GPU V100 et GPU A100, 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 commande sbatch, en prenant soin d'indiquer le bon projet (my_project) et le type d'heures à utiliser (cpu, v100 ou a100) :
    • 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 V100
      # En argument des commandes sbatch, salloc et srun :
      $ sbatch ... --account=my_project@v100 job_gpu.slurm
       
      # Ou via la directive SLURM dans un job batch :
      #SBATCH --account=my_project@v100
    • Pour des heures GPU A100
      # En argument des commandes sbatch, salloc et srun :
      $ sbatch ... --account=my_project@a100 job_gpu.slurm
       
      # Ou via la directive SLURM dans un job batch :
      #SBATCH --account=my_project@a100

Remarques :

  • Le type d'heures indiqué (cpu, v100 ou a100) 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 actif auquel vous êtes actuellement rattaché.
    Sa valeur (echo $IDRPROJ) peut donc être utilisée pour valoriser la chaîne de caractères my_project.
  • Pour connaître toutes les valeurs possibles pour valoriser la chaîne de caractères my_project et qui référencent vos différents projets, vous pouvez utiliser la commande IDRIS idrproj (voir idrproj -h). Par exemple pour un login rattaché à deux projets prj1 et prj2 :
    $ idrproj
     
    Available projects:
    -------------------
      prj1 (999999) [default][active]
      prj2 (999998)

    Dans ce cas, my_project peut être valorisée à prj1 ou prj2.

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 V100 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%           
 
================================================================================
 V100 (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 V100 ou A100. Attention à bien utiliser les caractères majuscules ici !
    $ idracct -a V100
    Derniere mise a jour le 15-11-2019 08:00:01
    ################################################################################
    
                               PROJET 999999 SUR JEAN-ZAY
    ################################################################################
    ================================================================================
     V100 (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 V100      01-11-2019 31-10-2020    40000 h.gpu     31785.14       411          0.00  79.46%