Le 09/12/2011 13:47, Jeff Squyres a écrit :
> 1. Will there ever be any differentiation between cache levels in hwloc_obj.type? I ask because in OMPI, we found that the various counting routines were not helpful because they only search by *type*, not by (obj.type, obj.attr->cache.depth). This was somewhat of a bummer; we basically ended up writing our own traversal helpers in OMPI because when searching for an OBJ_CACHE, we had to search on the tuple -- not just the type.
What you need is just a way to convert OBJ_CACHE + cache.depth into a
hwloc level depth, and then use hwloc_get_obj_by_depth() and friends as
usual. This is actually included in ticket #41. However, ticket #41 is
blocked until #50 is sorted out because adding instruction caches may
mean that OBJ_CACHE + cache.depth does not always identify a unique
level anymore.
In the meantime, I could easily write a helper that you guys would use
for OMPI for now.
Adding new types OBJ_CACHE_L1... L3 may not help that much if we add
instruction caches. We'd need L1d L1i ... many possible types.
> 2. It would be helpful to have a member in the obj that represents the logical AND of online_cpuset and allowed_cpuset.
I am never sure about all this. I don't like all these cpusets. Samuel
will answer better :)
Brice
|