On Dec 2, 2010, at 4:25 PM, Bernd Kallies wrote:

> Your understanding was right. There may be a method hwloc_get_obj_data
> which returns a hasref containing (at least most of) the hwloc_obj_t
> struct members in a perl representation. The hwloc_obj_t struct members
> that are of type hwloc_obj_t would be still the C pointer values, which
> are meaningless outside the API.

Ok.  

Per your comments below (that I snipped), it's a shame that doing the hash tree 
of objects is terrible.  This is simply reflecting my bias how I've written 
perl scripts to read XML and C code to traverse the obj tree directly.  But if 
it really does become performance inhibitive on large-core-count machines, then 
you're right and something else will have to be done (e.g., the "combo" method 
of hashes + accessor functions).

> Hmm. I did no profiling. The machines in question have 64 NUMA nodes
> with 16 logical CPUs, each. The topology depth is 10. So parsing
> of /sys/devices/system/node/* and evaluating the distance matrix to
> fiddle out the topology tree should be quite expensive. But I guess this
> statement is trivial and does not help very much.

If you ever get some time to compile hwloc with -g and run it through a 
profiler, that would be great.  Maybe we can't avoid the overhead of traversing 
/sys/devices/system/node/*, but the data may point out some other inadvertent 
bottlenecks.

Thanks!

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to