[jsdl-wg] Process Topology

Karl Czajkowski karlcz at univa.com
Wed Apr 20 05:22:32 CDT 2005


On Apr 20, Andreas Savva loaded a tape reading:

> My requirement is very simple. If I ask for a 2-way SMP machine I want a 
>  2-way SMP machine and nothing else. It is not a preference. Consider 
> that I may want to run software specifically tuned to some configuration 
> (cpu, ram, and so on) and I don't want the system to be 'helpful' and 
> give me something that it thinks is better for me. Unless I tell it so 
> by using a range expression.
> 

I cannot help thinking you have made some assumption of exclusivity or
free-reign and it is keeping you from seeing what is confusing us.  I
think I (and Chris) have had an assumption that resource requirements
are a request for allocation, and these allocations MAY always be a
portion of a larger (shared) resource.  For us, allocation is a
virtualization of resources: allocating 2 cpus from a 4-way SMP should
nearly always be indistinguishable from allocation of 2 cpus from a
2-way SMP. That's a scheduler/admin prerogative.

Placing your job on a 4-way SMP does not imply that you have access to
4 CPUs.  If you asked for exactly 2 CPUs per resource, I understand
LSF might well allocate you 2 from a 4-way node if it wants to. This
is not to give you a "better" resource but because it is the "closest
sufficient fit" that the scheduler could find for whatever reasons it
has.  You would be violating the scheduler's allocation decision if
you somehow used more than 2 of those CPUs.  Some schedulers might
enforce the allocation with dynamic OS partitioning directives
etc. while others might require cooperative behavior from the
application and penalize violations through social or accounting
means.

Going the other way should not happen in my book: I cannot allocate
you 4 CPUs on a 2-way SMP. I don't know if Chris or other
throughput-oriented folks may disagree on that point. I suppose you
could "allocate" 4 1 GHz virtual CPUs on a 2-way SMP with 2 GHz
CPUs... :-)

If I am charitable and assume I am completely misunderstanding you
above, I understand your requirement to express hardware selection as
a very advanced or esoteric performance requirement, e.g. your
selection of exactly 2-way nodes somehow implicitly selects for a
cache or bus architecture, local process scheduler behavior, etc. I
could then see wanting to exactly select physical RAM sizes (effects
cache associativity and miss rates) or any other attribute in the same
way.  I did not think such selection of resource properties beyond the
reach of the allocation requirements was in scope.

It is not something that I (nor Chris, I am guessing) was expecting to
express.  We figured that by the time you are making such specialized
selection criteria you are probably choosing nodes by name or type
using the hostname mechanism or something weirder and even more
site-specific.

...
> Not sure what was ambiguous; maybe the "I would accept.." part? Perhaps 
> I should say instead that the above fragment to me means "I want a host 
> with at least 2 cpus."
> 

This is exactly the confusion.  "I want a host with X" is ambiguous
because there exists hosts with X but you do not "get" hosts.  You
"get" allocations X from a host with X or from a host with Y>X.


karl

-- 
Karl Czajkowski
karlcz at univa.com





More information about the jsdl-wg mailing list