There is another aspect, though - I had missed it in the thread, but the question Nadia was addressing is: how to tell I am bound? The way we currently do it is to compare our cpuset against the local cpuset - if we are on a subset, then we know we are bound.
So if all hwloc returns to us is our cpuset, then we cannot make that determination. Yet I do see a utility as well in only showing our own cpus.
Would it make sense to add a field to the hwloc_obj_t that contains the "accessible" cpus? Or a flag indicating "you are bound to a subset of all available cpus"?
Really, all we need is the flag - but we could compute it ourselves if we had the larger scope info.
On Feb 9, 2012, at 5:53 AM, Jeff Squyres wrote:
> On Feb 9, 2012, at 7:50 AM, Chris Samuel wrote:
>>> Just so that I understand this better -- if a process is bound in a
>>> cpuset, will tools like hwloc's lstopo only show the Linux
>>> processors *in that cpuset*? I.e., does it not have any
>>> visibility of the processors outside of its cpuset?
>> I believe that was the intention - there's no real benefit to knowing
>> about resources that you can't access or use (and will likely get an
>> error if you do) to my mind.
> The real question, however, is how are IO devices represented if you don't do WHOLE_SUBSYSTEM? I.e., what about IO devices that are not local to the socket of your cpuset, for example?
> Take this sample image, for example:
> What if my cpuset is only on Socket P#0? What exactly will be reported via (WHOLE_SUBSYSTEM | HWLOC_TOPOLOGY_FLAG_WHOLE_IO)?
> IO devices is something that we do have an interest in reporting so that we can tell the "distance" to them, for example.
> Jeff Squyres
> For corporate legal information go to:
> devel mailing list