The Portable Hardware Locality (hwloc) software package provides
a portable abstraction (across OS, versions, architectures, ...) of
the hierarchical topology of modern architectures, including as follows:
 - NUMA memory nodes;
 - sockets;
 - shared caches;
 - cores and simultaneous multithreading.
It also gathers various system attributes such as cache and
memory information as well as the locality of I/O devices
(such as network interfaces, InfiniBand HCAs or GPUs).
It primarily aims at helping applications with gathering information about
modern computing hardware so as to exploit it accordingly and efficiently [1].

[1] Portable Hardware Locality (hwloc) WWW.
