On peut soumettre des jobs, qui ne partiront qu'après la fin d'exécution d'autres jobs.
Cela 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 et seulement 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]
Pour en savoir plus:
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é.