Es gibt verschiedene Möglichkeiten, SLURM-Jobs an einen Cluster zu senden, und der Hauptweg besteht darin, ein Skript mit dem sbatch
zu senden Befehl wie unten gezeigt:
sbatch runcscript.sh
In meinem letzten Versuch, eine Webanwendung mit Backend als SLURM-Scheduler für die Jobverwaltung zu entwickeln, habe ich auf die SLURM-Dokumentation verwiesen, um STDOUT und STDERR in eine Datei umzuleiten, die sich auf die Job-ID bezieht, wie unten gezeigt:
#!/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
Leider wurde die Ausgabe nicht durch die Variable $SLURM_JOB_ID
ersetzt .
$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
Nach ziemlich umfangreicher Recherche und der richtigen Anleitung von Harvard zeigte mir, dass die Art und Weise, wie ich mich beziehe, falsch war, und ich musste das SLURM-Jobs-Skript wie folgt ändern:
#!/bin/bash #SBATCH --job-name=qsim #SBATCH --partition=standard-low #SBATCH -o %j.output #SBATCH -e %j.error python UWVr6QCFKLGgx6sRtsnRZyRrajJdbPF4CsKGUqd7S4r.py
Das %j im Dateinamen wird zur Laufzeit durch die JobID ersetzt.
Ich muss jedoch noch herausfinden, warum die SLURM-Umgebungsvariable $SLURM_JOB_ID nicht funktioniert hat. Ich werde aktualisieren, sobald ich eine Erklärung habe. Wenn Sie Vorschläge oder Antworten haben, schreiben Sie bitte in den Kommentarbereich unten.