Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v2.11.2

  |   Home   |   Support   |   FAQ   |  
hwloc_distances_s Struct Reference

#include <distances.h>

Data Fields

unsigned nbobjs
 
hwloc_obj_tobjs
 
unsigned long kind
 
hwloc_uint64_t * values
 

Detailed Description

Matrix of distances between a set of objects.

The most common matrix contains latencies between NUMA nodes (as reported in the System Locality Distance Information Table (SLIT) in the ACPI specification), which may or may not be physically accurate. It corresponds to the latency for accessing the memory of one node from a core in another node. The corresponding kind is HWLOC_DISTANCES_KIND_MEANS_LATENCY | HWLOC_DISTANCES_KIND_FROM_USER. The name of this distances structure is "NUMALatency".

The matrix may also contain bandwidths between random sets of objects, possibly provided by the user, as specified in the kind attribute. Others common distance structures include and "XGMIBandwidth", "XGMIHops", "XeLinkBandwidth" and "NVLinkBandwidth".

Pointers objs and values should not be replaced, reallocated, freed, etc. However callers are allowed to modify kind as well as the contents of objs and values arrays. For instance, if there is a single NUMA node per Package, hwloc_get_obj_with_same_locality() may be used to convert between them and replace NUMA nodes in the objs array with the corresponding Packages. See also hwloc_distances_transform() for applying some transformations to the structure.

Field Documentation

◆ kind

unsigned long hwloc_distances_s::kind

OR'ed set of hwloc_distances_kind_e.

◆ nbobjs

unsigned hwloc_distances_s::nbobjs

Number of objects described by the distance matrix.

◆ objs

hwloc_obj_t* hwloc_distances_s::objs

Array of objects described by the distance matrix. These objects are not in any particular order, see hwloc_distances_obj_index() and hwloc_distances_obj_pair_values() for easy ways to find objects in this array and their corresponding values.

◆ values

hwloc_uint64_t* hwloc_distances_s::values

Matrix of distances between objects, stored as a one-dimension array.

Distance from i-th to j-th object is stored in slot i*nbobjs+j. The meaning of the value depends on the kind attribute.


The documentation for this struct was generated from the following file: