Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v1.3

  |   Home   |   Support   |   FAQ   |  
helper.h File Reference

High-level hwloc traversal helpers. More...

#include <stdlib.h>
#include <errno.h>

Go to the source code of this file.

Functions

static inline int
 
hwloc_get_type_or_below_depth (hwloc_topology_t topology, hwloc_obj_type_t type)
 Returns the depth of objects of type type or below.
static inline int
 
hwloc_get_type_or_above_depth (hwloc_topology_t topology, hwloc_obj_type_t type)
 Returns the depth of objects of type type or above.
static inline
hwloc_obj_t
 
hwloc_get_root_obj (hwloc_topology_t topology)
 Returns the top-object of the topology-tree.
static inline
hwloc_obj_t
 
hwloc_get_ancestor_obj_by_depth (hwloc_topology_t topology , unsigned depth, hwloc_obj_t obj)
 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)
 Returns the ancestor object of obj with type type.
static 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.
static 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.
static inline
hwloc_obj_t
 
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.
static inline hwloc_obj_t hwloc_get_next_child (hwloc_topology_t topology , hwloc_obj_t parent, hwloc_obj_t prev)
 Return the next child.
static inline
hwloc_obj_t
 
hwloc_get_common_ancestor_obj (hwloc_topology_t topology , hwloc_obj_t obj1, hwloc_obj_t obj2)
 Returns the common parent object to objects lvl1 and lvl2.
static inline int
 
hwloc_obj_is_in_subtree (hwloc_topology_t topology , hwloc_obj_t obj, hwloc_obj_t subtree_root)
 Returns true if obj is inside the subtree beginning with subtree_root.
static inline hwloc_obj_t hwloc_get_first_largest_obj_inside_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set)
 Get the first largest object included in the given cpuset set.
int hwloc_get_largest_objs_inside_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_t *restrict objs, int max)
 Get the set of largest objects covering exactly a given cpuset set.
static inline hwloc_obj_t hwloc_get_next_obj_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, hwloc_obj_t prev)
 Return the next object at depth depth included in CPU set set.
static inline hwloc_obj_t hwloc_get_next_obj_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, hwloc_obj_t prev)
 Return the next object of type type included in CPU set set.
static inline
hwloc_obj_t
 
hwloc_get_obj_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, unsigned idx)
 Return the (logically) idx -th object at depth depth included in CPU set set.
static inline
hwloc_obj_t
 
hwloc_get_obj_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, unsigned idx)
 Return the idx -th object of type type included in CPU set set.
static inline unsigned
 
hwloc_get_nbobjs_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth)
 Return the number of objects at depth depth included in CPU set set.
static inline int
 
hwloc_get_nbobjs_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type)
 Return the number of objects of type type included in CPU set set.
static inline
hwloc_obj_t
 
hwloc_get_child_covering_cpuset (hwloc_topology_t topology , hwloc_const_cpuset_t set, hwloc_obj_t parent)
 Get the child covering at least CPU set set.
static inline
hwloc_obj_t
 
hwloc_get_obj_covering_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set)
 Get the lowest object covering at least CPU set set.
static inline hwloc_obj_t hwloc_get_next_obj_covering_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, hwloc_obj_t prev)
 Iterate through same-depth objects covering at least CPU set set.
static inline hwloc_obj_t hwloc_get_next_obj_covering_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, hwloc_obj_t prev)
 Iterate through same-type objects covering at least CPU set set.
static inline
hwloc_obj_t
 
hwloc_get_cache_covering_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set)
 Get the first cache covering a cpuset set.
static inline
hwloc_obj_t
 
hwloc_get_shared_cache_covering_obj (hwloc_topology_t topology , hwloc_obj_t obj)
 Get the first cache shared between an object and somebody else.
unsigned hwloc_get_closest_objs (hwloc_topology_t topology, hwloc_obj_t src, hwloc_obj_t *restrict objs, unsigned max)
 Do a depth-first traversal of the topology to find and sort.
static 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)
 Find an object below another object, both specified by types and indexes.
static inline
hwloc_obj_t
 
hwloc_get_obj_below_array_by_type (hwloc_topology_t topology, int nr, hwloc_obj_type_t *typev, unsigned *idxv)
 Find an object below a chain of objects specified by types and indexes.
static inline void hwloc_distributev (hwloc_topology_t topology, hwloc_obj_t *root, unsigned n_roots, hwloc_cpuset_t *cpuset, unsigned n, unsigned until)
 Distribute n items over the topology under root.
static inline void hwloc_distribute (hwloc_topology_t topology, hwloc_obj_t root, hwloc_cpuset_t *cpuset, unsigned n, unsigned until)
static inline void * hwloc_alloc_membind_policy_nodeset (hwloc_topology_t topology, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
 Allocate some memory on the given nodeset nodeset.
static inline void * hwloc_alloc_membind_policy (hwloc_topology_t topology, size_t len, hwloc_const_cpuset_t cpuset, hwloc_membind_policy_t policy, int flags)
 Allocate some memory on the memory nodes near given cpuset cpuset.
static inline
hwloc_const_cpuset_t
 
hwloc_topology_get_complete_cpuset (hwloc_topology_t topology)
 Get complete CPU set.
static inline
hwloc_const_cpuset_t
 
hwloc_topology_get_topology_cpuset (hwloc_topology_t topology)
 Get topology CPU set.
static inline
hwloc_const_cpuset_t
 
hwloc_topology_get_online_cpuset (hwloc_topology_t topology)
 Get online CPU set.
static inline
hwloc_const_cpuset_t
 
hwloc_topology_get_allowed_cpuset (hwloc_topology_t topology)
 Get allowed CPU set.
static inline
hwloc_const_nodeset_t
 
hwloc_topology_get_complete_nodeset (hwloc_topology_t topology)
 Get complete node set.
static inline
hwloc_const_nodeset_t
 
hwloc_topology_get_topology_nodeset (hwloc_topology_t topology)
 Get topology node set.
static inline
hwloc_const_nodeset_t
 
hwloc_topology_get_allowed_nodeset (hwloc_topology_t topology)
 Get allowed node set.
static inline void hwloc_cpuset_to_nodeset (hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, hwloc_nodeset_t nodeset)
 Convert a CPU set into a NUMA node set and handle non-NUMA cases.
static inline void hwloc_cpuset_to_nodeset_strict (struct hwloc_topology *topology, hwloc_const_cpuset_t cpuset, hwloc_nodeset_t nodeset)
 Convert a CPU set into a NUMA node set without handling non-NUMA cases.
static inline void hwloc_cpuset_from_nodeset (hwloc_topology_t topology, hwloc_cpuset_t cpuset, hwloc_const_nodeset_t nodeset)
 Convert a NUMA node set into a CPU set and handle non-NUMA cases.
static inline void hwloc_cpuset_from_nodeset_strict (struct hwloc_topology *topology, hwloc_cpuset_t cpuset, hwloc_const_nodeset_t nodeset)
 Convert a NUMA node set into a CPU set without handling non-NUMA cases.
static inline struct
hwloc_distances_s
hwloc_get_whole_distance_matrix_by_depth (hwloc_topology_t topology, unsigned depth)
 Get the distances between all objects at the given depth.
static inline struct
hwloc_distances_s
hwloc_get_whole_distance_matrix_by_type (hwloc_topology_t topology, hwloc_obj_type_t type)
 Get the distances between all objects of a given type.
static inline struct
hwloc_distances_s
hwloc_get_distance_matrix_covering_obj_by_depth (hwloc_topology_t topology, hwloc_obj_t obj, unsigned depth, unsigned *firstp)
 Get distances for the given depth and covering some objects.
static inline int hwloc_get_latency (hwloc_topology_t topology, hwloc_obj_t obj1, hwloc_obj_t obj2, float *latency, float *reverse_latency)
 Get the latency in both directions between two objects.
static inline hwloc_obj_t hwloc_get_non_io_ancestor_obj (hwloc_topology_t topology , hwloc_obj_t ioobj)
 Get the first non-I/O ancestor object.
static inline hwloc_obj_t hwloc_get_next_pcidev (hwloc_topology_t topology, hwloc_obj_t prev)
 Get the next PCI device in the system.
static inline hwloc_obj_t hwloc_get_pcidev_by_busid (hwloc_topology_t topology, unsigned domain, unsigned bus, unsigned dev, unsigned func)
 Find the PCI device object matching the PCI bus id given domain, bus device and function PCI bus id.
static inline hwloc_obj_t hwloc_get_pcidev_by_busidstring (hwloc_topology_t topology, const char *busid)
 Find the PCI device object matching the PCI bus id given as a string xxxx:yy:zz.t or yy:zz.t.
static inline hwloc_obj_t hwloc_get_next_osdev (hwloc_topology_t topology, hwloc_obj_t prev)
 Get the next OS device in the system.
static inline hwloc_obj_t hwloc_get_next_bridge (hwloc_topology_t topology, hwloc_obj_t prev)
 Get the next bridge in the system.
static inline int hwloc_bridge_covers_pcibus (hwloc_obj_t bridge, unsigned domain, unsigned bus)
static inline hwloc_obj_t hwloc_get_hostbridge_by_pcibus (hwloc_topology_t topology, unsigned domain, unsigned bus)
 Find the hostbridge that covers the given PCI bus.

Detailed Description

High-level hwloc traversal helpers.