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.