Hardware Locality (hwloc)
2.4.1
|
Be sure to see the figure in Terms and Definitions that shows a complete topology tree, including depths, child/sibling/cousin relationships, and an example of an asymmetric topology where one package has fewer caches than its peers.
hwloc_obj_type_t hwloc_get_depth_type | ( | hwloc_topology_t | topology, |
int | depth | ||
) |
Returns the type of objects at depth depth
.
depth
should between 0 and hwloc_topology_get_depth()-1, or a virtual depth such as HWLOC_TYPE_DEPTH_NUMANODE.
depth
does not exist. int hwloc_get_memory_parents_depth | ( | hwloc_topology_t | topology | ) |
Return the depth of parents where memory objects are attached.
Memory objects have virtual negative depths because they are not part of the main CPU-side hierarchy of objects. This depth should not be compared with other level depths.
If all Memory objects are attached to Normal parents at the same depth, this parent depth may be compared to other as usual, for instance for knowing whether NUMA nodes is attached above or below Packages.
unsigned hwloc_get_nbobjs_by_depth | ( | hwloc_topology_t | topology, |
int | depth | ||
) |
Returns the width of level at depth depth
.
|
inlinestatic |
Returns the width of level type type
.
If no object for that type exists, 0 is returned. If there are several levels with objects of that type, -1 is returned.
|
inlinestatic |
Returns the next object at depth depth
.
If prev
is NULL
, return the first object at depth depth
.
|
inlinestatic |
Returns the next object of type type
.
If prev
is NULL
, return the first object at type type
. If there are multiple or no depth for given type, return NULL
and let the caller fallback to hwloc_get_next_obj_by_depth().
hwloc_obj_t hwloc_get_obj_by_depth | ( | hwloc_topology_t | topology, |
int | depth, | ||
unsigned | idx | ||
) |
Returns the topology object at logical index idx
from depth depth
.
|
inlinestatic |
Returns the topology object at logical index idx
with type type
.
If no object for that type exists, NULL
is returned. If there are several levels with objects of that type (HWLOC_OBJ_GROUP), NULL
is returned and the caller may fallback to hwloc_get_obj_by_depth().
|
inlinestatic |
Returns the top-object of the topology-tree.
Its type is HWLOC_OBJ_MACHINE.
int hwloc_get_type_depth | ( | hwloc_topology_t | topology, |
hwloc_obj_type_t | type | ||
) |
Returns the depth of objects of type type
.
If no object of this type is present on the underlying architecture, or if the OS doesn't provide this kind of information, the function returns HWLOC_TYPE_DEPTH_UNKNOWN.
If type is absent but a similar type is acceptable, see also hwloc_get_type_or_below_depth() and hwloc_get_type_or_above_depth().
If HWLOC_OBJ_GROUP is given, the function may return HWLOC_TYPE_DEPTH_MULTIPLE if multiple levels of Groups exist.
If a NUMA node, I/O or Misc object type is given, the function returns a virtual value because these objects are stored in special levels that are not CPU-related. This virtual depth may be passed to other hwloc functions such as hwloc_get_obj_by_depth() but it should not be considered as an actual depth by the application. In particular, it should not be compared with any other object depth or with the entire topology depth.
|
inlinestatic |
Returns the depth of objects of type type
or above.
If no object of this type is present on the underlying architecture, the function returns the depth of the first "present" object typically containing type
.
This function is only meaningful for normal object types. If a memory, I/O or Misc object type is given, the corresponding virtual depth is always returned (see hwloc_get_type_depth()).
May return HWLOC_TYPE_DEPTH_MULTIPLE for HWLOC_OBJ_GROUP just like hwloc_get_type_depth().
|
inlinestatic |
Returns the depth of objects of type type
or below.
If no object of this type is present on the underlying architecture, the function returns the depth of the first "present" object typically found inside type
.
This function is only meaningful for normal object types. If a memory, I/O or Misc object type is given, the corresponding virtual depth is always returned (see hwloc_get_type_depth()).
May return HWLOC_TYPE_DEPTH_MULTIPLE for HWLOC_OBJ_GROUP just like hwloc_get_type_depth().
int hwloc_topology_get_depth | ( | hwloc_topology_t restrict | topology | ) |
Get the depth of the hierarchical tree of objects.
This is the depth of HWLOC_OBJ_PU objects plus one.