我试图在Slurm19.05集群中设置一个抢占,但我不知道如何使抢占工作像我计划的那样工作。
基本上,我有两个QOS。
$ sacctmgr show qos format=name,priority,preempt
Name Priority Preempt
---------- ---------- ----------
normal 0
premium 5000 normal以下是我的优先购买配置中的相关设置:
# SCHEDULING
SelectType=select/cons_res
FastSchedule=1
SelectTypeParameters=CR_CPU_Memory
PreemptType=preempt/qos
PreemptMode=SUSPEND,GANG
PriorityType=priority/multifactor
PriorityWeightFairshare=10000
PriorityWeightAge=10000
PriorityWeightJobSize=10000
PriorityFavorSmall=YES
PriorityWeightQOS=10000
PartitionName=Compute OverSubscribe=FORCE:1 State=UP Nodes=compute01,compute02我的计划是允许premium作业抢占normal作业,挂起normal作业,直到premium作业在集群中运行完毕。
但是,我观察到的抢占性似乎是每30秒按顺序划分和挂起两个作业。我在配置文件中遗漏了什么吗?或者SLURM无法提供我计划的抢占性,在那里我不希望在资源上有任何时间切片?
发布于 2020-04-08 11:57:28
问题是,具有PreemptType=PreemptType/qos的PreemptMode=SUSPEND会导致时间分配。
您必须设置PreemptType以抢占/分区_prio,从而“挂起并自动恢复低优先级作业”,或者将PreemptMode设置为REQUEUE,其中作业将被中止并放入队列中。
据我所知,这些都是我认为你最想要的选择。
https://slurm.schedmd.com/slurm.conf.html#PreemptMode 帮派允许在同一个分区中对作业进行分组调度(时间切片)。注意:对每个分区独立执行结伙调度,因此通常不建议配置具有重叠节点的分区和组调度。 REQUEUE通过请求作业(如果可能)或取消作业来抢占作业。对于要请求的作业,它们必须设置--requeues批处理选项,或者必须将slurm.conf中的集群范围的slurm.conf参数设置为一个。 如果配置了PreemptType=PreemptType=PreemptType/partition,则挂起并自动恢复低优先级作业。如果配置了PreemptType=PreemptType/qos,那么作业共享资源将始终是时间片段,而不是一个仍然挂起的作业。挂起只能与GANG选项一起使用(轮组调度程序模块执行作业恢复操作)。
https://stackoverflow.com/questions/57703305
复制相似问题