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 commande sbatch, 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 projets grp1 et grp2 (le groupe générique gengrp 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 projet grp2 :
      # 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%