OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

Functions
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

Returns the next object at depth `depth`.

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

References hwloc_obj::depth, hwloc_get_obj_by_depth(), and hwloc_obj::next_cousin.

Referenced by hwloc_cpuset_from_nodeset(), hwloc_cpuset_from_nodeset_strict(), hwloc_get_next_obj_by_type(), hwloc_get_next_obj_covering_cpuset_by_depth(), and hwloc_get_next_obj_inside_cpuset_by_depth().

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

References hwloc_get_obj_by_depth().

Referenced by hwloc_get_first_largest_obj_inside_cpuset(), hwloc_get_obj_below_array_by_type(), hwloc_get_obj_covering_cpuset(), hwloc_get_whole_distance_matrix_by_depth(), hwloc_topology_get_allowed_cpuset(), hwloc_topology_get_allowed_nodeset(), hwloc_topology_get_complete_cpuset(), hwloc_topology_get_complete_nodeset(), hwloc_topology_get_online_cpuset(), hwloc_topology_get_topology_cpuset(), hwloc_topology_get_topology_nodeset(), ompi_mpi_init(), and orte_ess_base_orted_setup().

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