OpenMPI  0.1.1
Basic Traversal Helpers

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. More...

Functions

static __hwloc_inline
hwloc_obj_t
__hwloc_attribute_pure 
hwloc_get_root_obj (hwloc_topology_t topology)
 Returns the top-object of the topology-tree. More...
 
static __hwloc_inline
hwloc_obj_t
__hwloc_attribute_pure 
hwloc_get_ancestor_obj_by_depth (hwloc_topology_t topology __hwloc_attribute_unused, unsigned depth, hwloc_obj_t obj)
 Returns the ancestor object of obj at depth depth. More...
 
static __hwloc_inline
hwloc_obj_t
__hwloc_attribute_pure 
hwloc_get_ancestor_obj_by_type (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_type_t type, hwloc_obj_t obj)
 Returns the ancestor object of obj with type type. More...
 
static __hwloc_inline hwloc_obj_t hwloc_get_next_obj_by_depth (hwloc_topology_t topology, unsigned depth, hwloc_obj_t prev)
 Returns the next object at depth depth. More...
 
static __hwloc_inline hwloc_obj_t hwloc_get_next_obj_by_type (hwloc_topology_t topology, hwloc_obj_type_t type, hwloc_obj_t prev)
 Returns the next object of type type. More...
 
static __hwloc_inline
hwloc_obj_t
__hwloc_attribute_pure 
hwloc_get_pu_obj_by_os_index (hwloc_topology_t topology, unsigned os_index)
 Returns the object of type HWLOC_OBJ_PU with os_index. More...
 
static __hwloc_inline hwloc_obj_t hwloc_get_next_child (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t parent, hwloc_obj_t prev)
 Return the next child. More...
 
static __hwloc_inline
hwloc_obj_t
__hwloc_attribute_pure 
hwloc_get_common_ancestor_obj (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj1, hwloc_obj_t obj2)
 Returns the common parent object to objects lvl1 and lvl2.
 
static __hwloc_inline int
__hwloc_attribute_pure 
hwloc_obj_is_in_subtree (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj, hwloc_obj_t subtree_root)
 Returns true if obj is inside the subtree beginning with subtree_root. More...
 

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

static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure hwloc_get_ancestor_obj_by_depth ( hwloc_topology_t topology  __hwloc_attribute_unused,
unsigned  depth,
hwloc_obj_t  obj 
)
static

Returns the ancestor object of obj at depth depth.

References hwloc_obj::depth, and hwloc_obj::parent.

static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure hwloc_get_ancestor_obj_by_type ( hwloc_topology_t topology  __hwloc_attribute_unused,
hwloc_obj_type_t  type,
hwloc_obj_t  obj 
)
static

Returns the ancestor object of obj with type type.

References hwloc_obj::parent, and hwloc_obj::type.

static __hwloc_inline hwloc_obj_t hwloc_get_next_child ( hwloc_topology_t topology  __hwloc_attribute_unused,
hwloc_obj_t  parent,
hwloc_obj_t  prev 
)
static

Return the next child.

If prev is NULL, return the first child.

References hwloc_obj::first_child, hwloc_obj::next_sibling, and hwloc_obj::parent.

Referenced by hwloc_get_first_largest_obj_inside_cpuset().

static __hwloc_inline hwloc_obj_t hwloc_get_next_obj_by_depth ( hwloc_topology_t  topology,
unsigned  depth,
hwloc_obj_t  prev 
)
static
static __hwloc_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().

References hwloc_get_next_obj_by_depth(), hwloc_get_type_depth(), HWLOC_TYPE_DEPTH_MULTIPLE, and HWLOC_TYPE_DEPTH_UNKNOWN.

Referenced by hwloc_get_next_bridge(), hwloc_get_next_osdev(), hwloc_get_next_pcidev(), hwloc_get_pu_obj_by_os_index(), hwloc_mx_board_get_device_cpuset(), hwloc_nodeset_to_linux_libnuma_bitmask(), and hwloc_nodeset_to_linux_libnuma_ulongs().

static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure 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.

Note
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.

References hwloc_get_next_obj_by_type(), HWLOC_OBJ_PU, and hwloc_obj::os_index.

static __hwloc_inline int __hwloc_attribute_pure hwloc_obj_is_in_subtree ( hwloc_topology_t topology  __hwloc_attribute_unused,
hwloc_obj_t  obj,
hwloc_obj_t  subtree_root 
)
static

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

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

References hwloc_obj::cpuset, and hwloc_bitmap_isincluded().