I was trying to setup a preemption in my SLURM 19.05 cluster, but I could not figure out how to make preemption work like what I planned.
Basically, I have two QOS.
$ sacctmgr show qos format=name,priority,preempt
Name Priority Preempt
---------- ---------- ----------
normal 0
premium 5000 normal
These are the relevant setting in my configuration for preemption:
# 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
My plan was to allow premium
job to preempt the normal
job, suspend the normal
job until the premium
job finish running in the cluster.
However, the preemption I observed seems to time slice and suspend two jobs in sequence every 30 seconds. Is there anything I had missed in the configuration files or SLURM just couldn't offer the preemption I was planning where I do not want any time slice on the resources?