SLURM コマンド (salloc、sbatch、srun) を使用するときにユーザーが --account を指定する必要があるように SLURM を構成する方法を見つけようとしています。事実上、デフォルトのアカウントの動作を無効にしたいと考えています。
これを行う簡単な方法を見つけた人はいますか?
ユーザーにアカウントを指定するよう強制するという同じ要件があり、slurm でそれを満たすいくつかの方法を見つけた後、最短/簡単な解決策でこの投稿を復活させることにしました。
slurm lua submit プラグインは、デフォルト アカウントが適用される前にジョブの説明を確認します。したがって、slurm-lua パッケージをインストールし、slurm.conf に「JobSubmitPlugins=lua」を追加し、slurmctld を再起動して、アカウントが job_submit.lua スクリプトを介して定義されているかどうかを直接テストできます (スクリプトは、 slurm.conf; 通常は /etc/slurm/ にあります):
-- /etc/slurm/job_submit.lua to reject jobs with no account specified
function slurm_job_submit(job_desc, part_list, submit_uid)
if job_desc.account == nil then
slurm.log_error("User %s did not specify an account.", job_desc.user_id)
slurm.log_user("You must specify an account!")
return slurm.ERROR
end
return slurm.SUCCESS
end
function slurm_job_modify(job_desc, job_rec, part_list, modify_uid)
return slurm.SUCCESS
end
return slurm.SUCCESS
アカウントを指定しないことによるエラーは、次のように表示されます。
# srun --pty bash
srun: error: You must specify an account!
srun: error: Unable to allocate resources: Unspecified error
# sbatch submit.slurm
sbatch: error: You must specify an account!
sbatch: error: Batch job submission failed: Unspecified error
これらのエラーは slurmctld ログにも出力されるため、特定のジョブのリソース割り当ての問題が何であったかがわかります。
[2017-09-12T08:32:00.697] error: job_submit.lua: User 0 did not specify an account.
[2017-09-12T08:32:00.697] _slurm_rpc_submit_batch_job: Unspecified error
補足として、Slurm Submit Plugins Guideは適度に役立つだけであり、 Lua job_submit プラグインの実装をガイダンスとして調べた方がよいでしょう。