Il existe différentes façons de soumettre des tâches SLURM sur un cluster et la principale consiste à soumettre un script avec le sbatch
commande comme indiqué ci-dessous :
sbatch runcscript.sh
Dans ma récente tentative de développement d'une application Web avec un backend en tant que planificateur SLURM pour la gestion des tâches, j'ai consulté la documentation SLURM pour rediriger STDOUT et STDERR vers un fichier par rapport à l'ID de tâche, comme indiqué ci-dessous :
#!/bin/bash#SBATCH --job-name=qsim#SBATCH --partition=standard-low#SBATCH -o $SLURM_JOB_ID.output #SBATCH -e $SLURM_JOB_ID.error python UWVr6QCFKLgx6sRtsnRZyRrajJdbPF4CsKGUqd7S4r.py
Malheureusement, la sortie n'a pas été remplacée par la variable $SLURM_JOB_ID
.
$ls -lrt-rw-rw-r-- 1 vivekn vivekn 737 17 sept. 12:43 $SLURM_JOB_ID.output-rw-rw-r-- 1 vivekn vivekn 580 17 sept. 12:43 $SLURM_JOB_ID.errorAprès des recherches assez approfondies et le bon guide de Harvard m'a montré que la façon dont je me référais était fausse, et j'ai dû changer le script SLURM Jobs comme ci-dessous :
#!/bin/bash#SBATCH --job-name=qsim#SBATCH --partition=standard-low#SBATCH -o %j.output #SBATCH -e %j.error python UWVr6QCFKLgx6sRtsnRZyRrajJdbPF4CsKGUqd7S4r.pyLe %j dans le nom de fichier sera remplacé par le JobID lors de l'exécution.
Cependant, je n'ai pas encore découvert pourquoi la variable d'environnement SLURM $SLURM_JOB_ID n'a pas fonctionné. Je mettrai à jour une fois que j'aurai une explication. Si vous avez des suggestions ou des réponses, veuillez écrire dans la section des commentaires ci-dessous.