~~NOTOC~~
====== Les tableaux de jobs ======
Les tableaux de jobs (Job arrays) offrent une manière très simple pour soumettre un grand nombre de jobs indépendants. Ils peuvent être typiquement utilisés pour appliquer le même programme à différentes données d'entrée.
=====Soumission d'un tableau de jobs=====
La soumission d'un tableau de jobs s'effectue simplement en ajoutant l'option --array=
à la liste des options de la commande **sbatch**.
La variable d'environnement SLURM_ARRAY_TASK_ID donne l'indice du job courant dans le tableau.
=====Exemple=====
L'exemple suivant montre comment créer un tableau de 10 jobs et utiliser la variable SLURM_ARRAY_TASK_ID pour que chaque job s'exécute sur une instance (donnée d'entrée) différente. Les instances s'appellent insA.txt à insJ.txt et sont passées en argument de la ligne de commande.
#!/bin/bash
#================= OPTIONS (s'applique à chaque job du tableau) =========================
#SBATCH --array=0-9 # création d'un tableau de 10 jobs indicés de 0 à 9
#SBATCH --partition=court # choix de la partition
#SBATCH --ntasks=1 # chaque job possède une seule task
#SBATCH --cpus-per-task=4 # une task nécessite 4 CPU
#SBATCH --mem-per-cpu=2048 # 2 Go de RAM par CPU
#SBATCH --output=nouveau-nom_%a # modifie le nom du fichier de sortie par défaut
#========================== TASKS ================================
tab=(A B C D E F G H I J)
./exe ins${tab[$SLURM_ARRAY_TASK_ID]}.txt
Voir la section [[varenv|Variables d'environnement SLURM]] pour plus d'information sur les variables d'environnement liées aux tableaux de jobs.