Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v1.4.1

  |   Home   |   Support   |   FAQ   |  
Basic Traversal Helpers


static inline hwloc_obj_t hwloc_get_root_obj (hwloc_topology_t topology)
static inline hwloc_obj_t hwloc_get_ancestor_obj_by_depth (hwloc_topology_t topology , unsigned depth, hwloc_obj_t obj)
static inline hwloc_obj_t hwloc_get_ancestor_obj_by_type (hwloc_topology_t topology , hwloc_obj_type_t type, hwloc_obj_t obj)
static inline hwloc_obj_t hwloc_get_next_obj_by_depth (hwloc_topology_t topology, unsigned depth, hwloc_obj_t prev)
static inline hwloc_obj_t hwloc_get_next_obj_by_type (hwloc_topology_t topology, hwloc_obj_type_t type, hwloc_obj_t prev)
static inline hwloc_obj_t hwloc_get_pu_obj_by_os_index (hwloc_topology_t topology, unsigned os_index)
static inline hwloc_obj_t hwloc_get_next_child (hwloc_topology_t topology , hwloc_obj_t parent, hwloc_obj_t prev)
static inline hwloc_obj_t hwloc_get_common_ancestor_obj (hwloc_topology_t topology , hwloc_obj_t obj1, hwloc_obj_t obj2)
static inline int hwloc_obj_is_in_subtree (hwloc_topology_t topology , hwloc_obj_t obj, hwloc_obj_t subtree_root)

Detailed Description

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 socket has fewer caches than its peers.

Function Documentation

static inline hwloc_obj_t hwloc_get_ancestor_obj_by_depth ( hwloc_topology_t topology  ,
unsigned  depth,
hwloc_obj_t  obj 
) [static]

Returns the ancestor object of obj at depth depth.

static inline hwloc_obj_t hwloc_get_ancestor_obj_by_type ( hwloc_topology_t topology  ,
hwloc_obj_type_t  type,
hwloc_obj_t  obj 
) [static]

Returns the ancestor object of obj with type type.

static inline hwloc_obj_t hwloc_get_common_ancestor_obj ( hwloc_topology_t topology  ,
hwloc_obj_t  obj1,
hwloc_obj_t  obj2 
) [static]

Returns the common parent object to objects lvl1 and lvl2.

static inline hwloc_obj_t hwloc_get_next_child ( hwloc_topology_t topology  ,
hwloc_obj_t  parent,
hwloc_obj_t  prev 
) [static]

Return the next child.

If prev is NULL, return the first child.

static inline hwloc_obj_t hwloc_get_next_obj_by_depth ( hwloc_topology_t  topology,
unsigned  depth,
hwloc_obj_t  prev 
) [static]

Returns the next object at depth depth.

If prev is NULL, return the first object at depth depth.

static inline hwloc_obj_t hwloc_get_next_obj_by_type ( hwloc_topology_t  topology,
hwloc_obj_type_t  type,
hwloc_obj_t  prev 
) [static]

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().

static inline hwloc_obj_t hwloc_get_pu_obj_by_os_index ( hwloc_topology_t  topology,
unsigned  os_index 
) [static]

Returns the object of type HWLOC_OBJ_PU with os_index.

The os_index field of object should most of the times only be used for pretty-printing purpose. Type HWLOC_OBJ_PU is the only case where os_index could actually be useful, when manually binding to processors. However, using CPU sets to hide this complexity should often be preferred.
static inline hwloc_obj_t hwloc_get_root_obj ( hwloc_topology_t  topology) [static]

Returns the top-object of the topology-tree.

Its type is typically HWLOC_OBJ_MACHINE but it could be different for complex topologies. This function replaces the old deprecated hwloc_get_system_obj().

static inline int hwloc_obj_is_in_subtree ( hwloc_topology_t topology  ,
hwloc_obj_t  obj,
hwloc_obj_t  subtree_root 
) [static]

Returns true if obj is inside the subtree beginning with subtree_root.

This function assumes that both obj and subtree_root have a cpuset.