soumission de jobs avec dépendances
Article mis en ligne le 16 septembre 2020

Soumettre une séquence de job dont l’éxécution est inter-dépendante.

Ceci peut se faire avec l’aide de l’argument ’—dependency’ de la commande sbatch ou srun.
Ci-dessous un exemple ’pédagogique’ :

Soumission du premier Job :
[renon@olympelogin1 ]$ sbatch script_test.cmd
Submitted batch job 312526
[renon@olympelogin1 ]$ squeue -u renon
JOBID PARTITION NAME USER STATE TIME TIME_LIMI QOS NODES NODELIST(REASON)
312526 exclusive script_t renon RUNNING 0:03 10:00 noeud5 2 olympecomp[302,305]

Soumission du deuxième Job avec dépendance : le mot clés ’afterok’ indique que le deuxième job peut démarrer si le premier s’est correctement terminé
[renon@olympelogin1 ]$ sbatch —dependency=afterok:312526 script_test.cmd
Submitted batch job 312527

Le deuxième job 312527 est en attente, statut ’PENDING’ :
[renon@olympelogin1 ]$ squeue -u renon
JOBID PARTITION NAME USER STATE TIME TIME_LIMI QOS NODES NODELIST(REASON)
312526 exclusive script_t renon RUNNING 0:17 10:00 noeud5 2 olympecomp[302,305]
312527 exclusive script_t renon PENDING 0:00 10:00 noeud5 2 (Dependency)

Le premier job 312526 s’est correctement terminé, le deuxième job 312527 est d’abord PENDING sans ’Dependency’, puis RUNNING :
[renon@olympelogin1 ]$ squeue -u renon
JOBID PARTITION NAME USER STATE TIME TIME_LIMI QOS NODES NODELIST(REASON)
312527 exclusive script_t renon RUNNING 0:30 10:00 noeud5 2 olympecomp[302,305]

Voir également le manuel de la commande sbatch : man sbatch

Pour une utilisation en production ce genre de besoin (soumission de job avec dépendance) peut être automatisé.