配置SLURM,因此需要用户指定--account

时间:2014-09-04 19:50:11

标签: config default account slurm

我正在尝试弄清楚如何配置SLURM,以便用户在使用SLURM命令(salloc,sbatch,srun)时需要指定--account。实际上我想禁用默认帐户行为。

有没有人找到一个简单的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

我有同样的要求强迫用户指定帐户,在找到几种方法来实现它后,我决定用最短/最简单的解决方案重振这篇文章。

slurm lua submit plugin会在应用默认帐户之前查看作业说明。因此,您可以安装slurm-lua包,添加" JobSubmitPlugins = lua"到slurm.conf,重新启动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 plugin implementation作为指导。

答案 1 :(得分:0)

一种选择是将AccountingStorageEnforce参数设置为associations中的slurm.conf

  

AccountingStorageEnforce       这可以控制对作业提交施加的基于关联的强制执行级别。有效选项是任意组合   协会,限制,nojobs,nosteps,qos,safe和wckeys,或者全部   对于所有事情(期望nojobs和nosteps,他们必须被要求作为   孔)。

     

通过强制关联,除非系统中存在相应的关联,否则不允许运行新作业。如果强制执行限制   用户可以通过关联来限制任何工作大小或运行时间   限制被定义。

然后,使用sacctmgr命令,确保默认帐户无权访问已定义的分区。实际上,如果用户未指定有效帐户,将拒绝提交。

另一种选择是编写自定义submission plugin,您可以在Lua中编写。在该脚本中,您可以检查是否已设置--account参数,如果不是,则可以使用自定义消息拒绝提交。