[slurm-users] requesting entire vs. partial nodes
Chris Samuel
chris at csamuel.org
Sat Oct 20 01:06:34 MDT 2018
On Saturday, 20 October 2018 9:57:16 AM AEDT Noam Bernstein wrote:
> If not, is there another way to do this?
You can use --exclusive for jobs that want whole nodes.
You will likely also want to use:
SelectTypeParameters=CR_Core_Memory,CR_ONE_TASK_PER_CORE
to ensure jobs are given one core (with all its associated threads) per task.
Also set DefMemPerCPU so that jobs get allocated a default amount of RAM per
core if they forget to ask for it.
> And however we achieve this, how does slurm decide what order to assign
> nodes to jobs in the presence of jobs that don't take entire nodes. If we
> have a 2 16 core nodes and two 8 task jobs, are they going to be packed
> into a single node, or each on its own node (leaving no free node for
> another 16 task job that requires an entire node)?
As long as you don't use CR_LLN (least loaded node) as your select parameter
and you don't use pack_serial_at_end in SchedulerParameters then Slurm (I
believe) is meant to use a best fit algorithm.
However, the thing that can still happen is that when you have lots of
variable size jobs with very different walltimes you can start off with a
nicely packed system at the beginning but holes then open up as jobs finish.
So hopefully you'll have a nice mix of job sizes that will fit those holes.
All the best,
Chris
--
Chris Samuel : http://www.csamuel.org/ : Melbourne, VIC
More information about the slurm-users
mailing list