有没有办法限制分配给单个作业的核心数量?类似于我可以通过指定" -l h_vmem = 3g"来限制内存。作为qsub的默认参数,通过sge_request配置文件。
更具体地说,我想避免的场景是:
例如,在我的队列配置中,我将队列的插槽数限制为该主机上总CPU的1/2:
slots 10
在主机级别,我设置资源限制以反映该执行主机上的硬件:
complex_values slots=20,num_proc=20,h_vmem=60g
对于单线程/处理器作业,遵循队列和主机级别的限制,即提交30个单核作业,10个运行和20个等待。
但是,当提交3个多处理器作业,每个作业占用10个CPU时,所有作业都同时在单个执行主机上运行。
虽然可以通过要求用户使用并行环境并询问必要数量的插槽(即每个作业10个插槽)来指定这些限制,但在非并行环境中仍然可以进行有意或无意的超额预订。
有没有办法避免这种情况?
提前感谢您的帮助。