Trabajos dependendientes#
Esta página describe la función de dependencia de trabajos en SLURM.
Es una función se utiliza cuando se encadenan varios trabajos dependientes unos de otros. Por ejemplo:
-
Un trabajo de preprocesamiento con 1 núcleo debe ser seguido por una simulación con 16 núcleos. Los resultados deben procesarse posteriormente con un solo trabajo principal.
-
Un trabajo de procesamiento posterior debe enviarse después de que finalicen todas las tareas de una matriz de trabajo.
Uso#
El trabajo dependiente debe lanzarse utilizando el comando de sbatch
especificando la opción --dependency=<type>:<listOfJobIDs>
. El tipo puede ser:
after
: el trabajo se lanza después de que el primer trabajo entre a ejecutar, es decir, que esté RUNNING.afterok
: el trabajo se lanza después de que el primer trabajo haya terminado con éxito.afterany
: el trabajo se lanza después de que el primer trabajo haya terminado, independientemente de si ha fallado o no.afternotok
: el trabajo se lanza después de que el primer trabajo haya terminado en fallo.aftercorr
: una tarea de un array de trabajos puede empezar a ejecutarse después de que el ID de otro trabajo del array haya finalizado con éxito.singleton
: el trabajo puede empezar a ejecutarse cuando cualquier otro trabajo con el mismo nombre y del mismo usuario haya terminado.
Ejemplo
El trabajo subyacente (del que depende este trabajo) debe enviarse primero. El ID de trabajo relacionado se puede capturar recopilando la salida del comando sbatch con la opción --parsable
: