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=<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.
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 Variables d'environnement SLURM pour plus d'information sur les variables d'environnement liées aux tableaux de jobs.