Jean Zay : exécution d'un travail séquentiel en batch

Les travaux sont gérés sur l'ensemble des nœuds par le logiciel Slurm . Ils sont répartis dans des “classes” principalement en fonction du temps Elapsed, du nombre de cœurs et de la mémoire demandés.

Pour soumettre un travail séquentiel en batch sur Jean Zay, il faut :

  • Créer un script de soumission :

    seq.slurm
    #!/bin/bash
    #SBATCH --job-name=Seq              # nom du job
    #SBATCH --nodes=1                   # nombre de noeuds
    #SBATCH --ntasks-per-node=1         # nombre de taches MPI par noeud
    #SBATCH --hint=nomultithread        # réservation des cœurs physiques (pas d'hyperthreading)
    #SBATCH --time=00:01:00             # temps d execution maximum demande (HH:MM:SS)
    #SBATCH --output=Seq%j.out          # nom du fichier de sortie
    #SBATCH --error=Seq%j.out           # nom du fichier d'erreur (ici en commun avec la sortie)
     
    # on se place dans le repertoire de soumission
    cd ${SLURM_SUBMIT_DIR}
     
    # nettoyage des modules charges en interactif et herites par defaut
    module purge
     
    # chargement des modules
    module load ...
     
    # echo des commandes lancees
    set -x
     
    # execution
    ./a.out
  • Soumettre ce script via la commande sbatch :

    $ sbatch seq.slurm

Remarques

  • Nous vous recommandons de compiler et d'exécuter votre code dans un même environnement en chargeant les mêmes modules.
  • L'option –hint=nomultithread assure la réservation des cœurs physiques (pas d'hyperthreading).
  • Dans cet exemple, on suppose que l'exécutable a.out se situe dans le répertoire de soumission, c'est-à-dire le répertoire dans lequel on entre la commande sbatch : la variable $SLURM_SUBMIT_DIR est automatiquement valorisée par Slurm.
  • Le fichier de sortie du calcul Seq_numero_job.out se trouve également dans le répertoire de soumission. Il est créé dès le début de l'exécution du travail; l'éditer ou le modifier pendant le déroulement du travail peut perturber celui-ci.
  • le module purge est rendu indispensable par le comportement par défaut de Slurm : les modules que vous avez chargés dans votre environnement au moment où vous lancez sbatch sont pris en compte dans le job soumis.
  • Les jobs ont tous des ressources définies dans Slurm par une partition et une “Qualité de Service” QoS (Quality of Service) par défaut. Vous pouvez en modifier les limites en spécifiant une autre partition et/ou une QoS comme indiqué dans notre documentation détaillant les partitions et les Qos.
  • Pour les comptes multi-projets ainsi que ceux ayant des heures CPU et GPU, il est indispensable de spécifier l'attribution d'heures sur laquelle décompter les heures de calcul du job comme indiqué dans notre documentation détaillant la gestion des heures de calcul.
  • Nous vous recommandons fortement de consulter notre documentation détaillant la gestion des heures de calcul sur Jean Zay pour vous assurer que les heures consommées par vos travaux soient décomptées de la bonne attribution.