SLURMジョブをクラスターに送信するにはさまざまな方法があり、主な方法はsbatch
を使用してスクリプトを送信することです。 以下に示すコマンド:
sbatch runcscript.sh
ジョブ管理用のSLURMスケジューラとしてバックエンドを使用するWebアプリケーションを開発する最近の試みでは、SLURMのドキュメントを参照して、以下に示すように、STDOUTとSTDERRをジョブIDのファイルw.r.tにリダイレクトしました。
#!/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
残念ながら、出力は変数$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
非常に広範な調査とハーバードの正しいガイドの結果、参照方法が間違っていることがわかり、SLURMJobsスクリプトを次のように変更する必要がありました。
#!/bin/bash #SBATCH --job-name=qsim #SBATCH --partition=standard-low #SBATCH -o %j.output #SBATCH -e %j.error python UWVr6QCFKLGgx6sRtsnRZyRrajJdbPF4CsKGUqd7S4r.py
ファイル名の%jは、実行時にJobIDに置き換えられます。
ただし、SLURM環境変数$SLURM_JOB_IDが機能しなかった理由はまだわかりません。説明があり次第更新します。何か提案や回答があれば、下のコメントセクションに書いてください。