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