Hay diferentes formas de enviar trabajos SLURM a un clúster y la forma principal es enviar un script con el sbatch
comando como se muestra a continuación:
sbatch runcscript.sh
En mi intento reciente de desarrollar una aplicación web con backend como programador de SLURM para la gestión de trabajos, me refiero a la documentación de SLURM para redirigir STDOUT y STDERR a un archivo w.r.t. a la identificación del trabajo como se muestra a continuación:
#!/bin/bash #SBATCH --job-name=qsim #SBATCH --partition=standard-low #SBATCH -o $SLURM_JOB_ID.output #SBATCH -e $SLURM_JOB_ID.error python UWVr6QCFKLGgx6sRtsnRZyRrajJdbPF4CsKGUqd7S4r.py
Desafortunadamente, la salida no se sustituyó con la variable $SLURM_JOB_ID
.
$ls -lrt -rw-rw-r-- 1 vivekn vivekn 737 Sep 17 12:43 $SLURM_JOB_ID.output -rw-rw-r-- 1 vivekn vivekn 580 Sep 17 12:43 $SLURM_JOB_ID.error
Después de una investigación bastante extensa y la guía correcta de Harvard me mostró que la forma en que me refería era incorrecta y tuve que cambiar el script SLURM Jobs de la siguiente manera:
#!/bin/bash #SBATCH --job-name=qsim #SBATCH --partition=standard-low #SBATCH -o %j.output #SBATCH -e %j.error python UWVr6QCFKLGgx6sRtsnRZyRrajJdbPF4CsKGUqd7S4r.py
El %j en el nombre del archivo será sustituido por el JobID en tiempo de ejecución.
Sin embargo, todavía tengo que averiguar por qué la variable de entorno SLURM $SLURM_JOB_ID no funcionó. Actualizaré una vez que tenga una explicación. Si tiene alguna sugerencia o respuesta, escriba en la sección de comentarios a continuación.