Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v1.7.2

  |   Home   |   Support   |   FAQ   |  
Advanced Traversal Helpers

Functions

HWLOC_DECLSPEC unsigned hwloc_get_closest_objs (hwloc_topology_t topology, hwloc_obj_t src, hwloc_obj_t *__hwloc_restrict objs, unsigned max)
 
static __hwloc_inline hwloc_obj_t hwloc_get_obj_below_by_type (hwloc_topology_t topology, hwloc_obj_type_t type1, unsigned idx1, hwloc_obj_type_t type2, unsigned idx2) __hwloc_attribute_pure
 
static __hwloc_inline hwloc_obj_t hwloc_get_obj_below_array_by_type (hwloc_topology_t topology, int nr, hwloc_obj_type_t *typev, unsigned *idxv) __hwloc_attribute_pure
 

Detailed Description

Be sure to see the figure in termsanddefs that shows a complete topology tree, including depths, child/sibling/cousin relationships, and an example of an asymmetric topology where one socket has fewer caches than its peers.

Function Documentation

HWLOC_DECLSPEC unsigned hwloc_get_closest_objs ( hwloc_topology_t  topology,
hwloc_obj_t  src,
hwloc_obj_t *__hwloc_restrict  objs,
unsigned  max 
)

Do a depth-first traversal of the topology to find and sort.

all objects that are at the same depth than src. Report in objs up to max physically closest ones to src.

Returns
the number of objects returned in objs.
0 if src is an I/O object.
Note
This function requires the src object to have a CPU set.
static __hwloc_inline hwloc_obj_t hwloc_get_obj_below_array_by_type ( hwloc_topology_t  topology,
int  nr,
hwloc_obj_type_t typev,
unsigned *  idxv 
)
static

Find an object below a chain of objects specified by types and indexes.

This is a generalized version of hwloc_get_obj_below_by_type().

Arrays typev and idxv must contain nr types and indexes.

Start from the top system object and walk the arrays typev and idxv. For each type and logical index couple in the arrays, look under the previously found object to find the index-th object of the given type. Indexes are specified within the parent, not withing the entire system.

For instance, if nr is 3, typev contains NODE, SOCKET and CORE, and idxv contains 0, 1 and 2, return the third core object below the second socket below the first NUMA node.

Note
This function requires all these objects and the root object to have a CPU set.
static __hwloc_inline hwloc_obj_t hwloc_get_obj_below_by_type ( hwloc_topology_t  topology,
hwloc_obj_type_t  type1,
unsigned  idx1,
hwloc_obj_type_t  type2,
unsigned  idx2 
)
static

Find an object below another object, both specified by types and indexes.

Start from the top system object and find object of type type1 and logical index idx1. Then look below this object and find another object of type type2 and logical index idx2. Indexes are specified within the parent, not withing the entire system.

For instance, if type1 is SOCKET, idx1 is 2, type2 is CORE and idx2 is 3, return the fourth core object below the third socket.

Note
This function requires these objects to have a CPU set.