On 01/15/2014 05:29 PM, Paul Edmon wrote:

I was wondering if it is possible in SLURM to have the scheduler charge for 
both CPU time and memory usage?  After in a setting where you don't have 
exclusive access to each node you can end up in a situation where a node may 
only be using one core but all the memory.  In SLURM if you are just doing CPU 
charging you only get hit for the 1 core you are using, not for the additional 
other cores (lets say for the sake of argument 64 total cores per node) that 
are idling because no other job can run. That seems unfair.

Thoughts?  If this doesn't exist it may be a good thing to add into the next 
version of SLURM as it would be handy in our environment.

-Paul Edmon-

We use the MaxMemPerCPU configuration parameter. If your job e.g. ask
for one out of 16 cores but half of the RAM, SLURM automatically
upgrades the core usage to eight cores.

And if your job says nothing about memory usage, it will be allowed
to use up to the same proportion of available RAM as the proportion of
available cores that it asks for.

This does not allow for a one-core job to use half of the memory,
while some other job uses the remaining cores and the other half
of the memory. On the other side, it is a simple concept to
explain and to charge.

In a heterogeneous environment, with different amounts of cores
and memory GBs, this solution does not work for all nodes. We have
mostly one type of nodes in a cluster and those can be allocated
core by core (with the corresponding proportion of memory attached),
and the other nodes are fatter. The fatter nodes are not allowed
to be split up core by core and are instead allocated node by
node (with partition configuration flag "Shared=EXCLUSIVE").

-- Lennart Karlsson, UPPMAX, Uppsala University, Sweden

Reply via email to