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.
La soumission d'un tableau de jobs s'effectue simplement en ajoutant l'option
--array=<indices>
à 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.
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 Variables d'environnement SLURM pour plus d'information sur les variables d'environnement liées aux tableaux de jobs.