Le 13/04/2011 22:47, Jeff Squyres a écrit : > On Apr 13, 2011, at 1:32 PM, Brice Goglin wrote: > > >> Don't worry about the depth. Even if you have less levels of caches in >> some parts of the machine, or no hyperthreading or whatever different, >> we still build levels of identical objects. So you still get a >> consistent depth for all cores, threads, sockets, and different levels >> of caches. But obviously, you will see less objects when iterating >> through levels within the "smaller" part of the machine. >> > This would be good to add to the documentation; I've been doing manual > traversals of hwloc trees just to future-proof/heterogeneous-proof my code > (because I didn't know that the depth would always be the same for a given > object type even if some branches don't have all object types). > > So let's say I have a (fictitious) machine with one socket with an L1 and L2 > cache for its cores, and another socket that only has an L1 cache for its > cores: > > numa_node > / \ > socket 0 socket 1 > L2 L1 > L1 core > core > > If I traverse down through children in the tree, are you saying that there > will be some kind of fake/empty object in the right sub tree corresponding to > where the L2 is in the left sub tree? >
There will no fake object. socket1 will be at depth 1 and its child will be the second L1 at depth 3. There's nothing at depth 2 in the right part of the machine. We'll try to make this more clear in the doc. Brice
