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.
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.
For corporate legal information go to: