[jsdl-wg] alternate view of Andreas's allocation model scenario

Karl Czajkowski karlcz at univa.com
Thu May 12 05:39:47 CDT 2005


On May 12, Andreas Savva loaded a tape reading:
> Karl,
> 
> To use the example in the teleconference, all I want to do is be able to 
> make the distinction between the following statements in the resource 
> description :
>   1. X CPUs any way you can
>   2. X CPUs on the same machine
>   3. X CPUS on the same machine and that's all that machine should have
> 
> and similarly for memory, for example.
> 
> I take a very narrow, perhaps simplistic view, that this is merely 
> syntax. And so find it very hard to accept arguments that effectively 
> come down to saying that making the distinction between statement 1 and 
> 2 is good and making the distinction between statements 2 and 3 is not.
> 
> Andreas
> 

The distinction of 1 vs. 2 and 2 vs. 3 are not even on the same
conceptual "axis"!  We already have the ability to allocate whole
clusters of nodes so there is:

  1. X CPUs any way you can
  2. X CPUs in some complex partially constrained topology
  3. X CPUs on one host

and the notion of "I got all CPUs on the/each host" is an orthogonal
question demanding an orthogonal syntax.  I think all 6 combinations
are meaningful in the abstract:

  1. any way you can and I mind/don't mind sharing node(s)
  2. some complex topology and I mind/don't mind sharing node(s)
  3. all on one host and I mind/don't mind sharing the host

Clearly, one does not demand that they get all hosts in the cluster,
e.g. if they get the M nodes they want they do not care if they were
allocated from a larger pool of P nodes. At least, no scheduler makes
this an explicit mode of "get all nodes" versus "get N and I just so
happen to know that N=P".

This distinction you are after is of the same vein---did I get all
CPUs per node or just _enough_ CPUs to match my constraint.

I am sure we can model this concept with another "total/partial" or
"shared/unshared" attribute in the resource clause, but I am less sure
that this is actually a good concept to model.  As I said in the
previous message, I do not really see how to separate it cleanly from
the application model.

What does it mean to share or not share the node?  Except in your
extreme case of loading an OS image (clearly, not a POSIX app), and
some old Cray computers that didn't really timeshare, even a
supposedly dedicated compute node usually has some other system
processes on it that are not part of the job!  Where is the line drawn
between "background system processes I will ignore" and "other
processes that annoy me"?  I think this requires some more precise QoS
terminology in the job description.


karl

-- 
Karl Czajkowski
karlcz at univa.com





More information about the jsdl-wg mailing list