hwloc_distances_s Struct Reference
Retrieve distances between objects

`#include <distances.h>`

## Data Fields

unsigned | nbobjs
hwloc_obj_t * | objs
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:

- distances.h