Hardware locality (hwloc)
C M4 Shell Groff Perl Makefile Other
Failed to load latest commit information.
config tests: remove test-lstopo-distances Sep 26, 2016
contrib contrib/ci.inria.fr: add a job for exporting gcov output as xml Sep 16, 2016
doc restrict: don't remove objects that contain memory by default anymore Sep 26, 2016
hwloc components: further factorize topology backend excludes management Sep 29, 2016
include components: keep the current backend excludes mask in the topology Sep 29, 2016
netloc netloc: add gbits field for edges Jan 31, 2016
tests restrict: don't remove objects that contain memory by default anymore Sep 26, 2016
utils distances: use uint64_t instead of floats Sep 26, 2016
.gitignore doc/examples: add get-knl-modes.c to show how to retrieve clustering/… Jun 24, 2016
AUTHORS lstopo/draw: rework the entire recursion Jul 21, 2016
COPYING COPYING: update copyrights Jan 24, 2016
HACKING whitespace: remove all trailing whitespace Sep 22, 2014
Makefile.am Makefile: recurse into utils before tests Sep 16, 2016
NEWS restrict: don't remove objects that contain memory by default anymore Sep 26, 2016
README README: point to the website for the remaining doc Mar 3, 2016
VERSION VERSION: soname should also be manually updated in contrib/windows/li… Apr 19, 2016
autogen.sh autogen: Allow autoreconf params to be override... May 6, 2013
configure.ac configure: make sure netloc status isn't reported as empty in the sum… Jul 14, 2016
hwloc.pc.in core: really use HWLOC_VERSION instead of VERSION everywhere Jun 13, 2015
netloc.pc.in core: really use HWLOC_VERSION instead of VERSION everywhere Jun 13, 2015



The Hardware Locality (hwloc) software project aims at easing the process of
discovering hardware resources in parallel architectures. It offers
command-line tools and a C API for consulting these resources, their locality,
attributes, and interconnection. hwloc primarily aims at helping
high-performance computing (HPC) applications, but is also applicable to any
project seeking to exploit code and/or data locality on modern computing

hwloc is actually made of two subprojects distributed together:

  * The original hwloc project for describing the internals of computing nodes.
 It is described in details between sections Hardware Locality (hwloc)
 Introduction and Network Locality (netloc) Introduction.
  * The network-oriented companion called netloc (Network Locality), described
 in details starting at section Network Locality (netloc) Introduction.
 Netloc may be disabled, but the original hwloc cannot. Both hwloc and
 netloc APIs are documented after these sections.


hwloc (http://www.open-mpi.org/projects/hwloc/) is available under the BSD
license. It is hosted as a sub-project of the overall Open MPI project (http://
www.open-mpi.org/). Note that hwloc does not require any functionality from
Open MPI -- it is a wholly separate (and much smaller!) project and code base.
It just happens to be hosted as part of the overall Open MPI project.

Nightly development snapshots are available on the web site. Additionally, the
code can be directly cloned from Git:

shell$ git clone https://github.com/open-mpi/hwloc.git
shell$ cd hwloc
shell$ ./autogen.sh

Note that GNU Autoconf >=2.63, Automake >=1.11 and Libtool >=2.2.6 are required
when building from a Git clone.

Installation by itself is the fairly common GNU-based process:

shell$ ./configure --prefix=...
shell$ make
shell$ make install

hwloc- and netloc-specific configure options and requirements are documented in
sections hwloc Installation and Netloc Installation respectively.

Also note that if you install supplemental libraries in non-standard locations,
hwloc's configure script may not be able to find them without some help. You
may need to specify additional CPPFLAGS, LDFLAGS, or PKG_CONFIG_PATH values on
the configure command line.

For example, if libpciaccess was installed into /opt/pciaccess, hwloc's
configure script may not find it be default. Try adding PKG_CONFIG_PATH to the
./configure command line, like this:

./configure PKG_CONFIG_PATH=/opt/pciaccess/lib/pkgconfig ...

Running the "lstopo" tool is a good way to check as a graphical output whether
hwloc properly detected the architecture of your node. Netloc command-line
tools can be used to display the network topology interconnecting your nodes.

See https://www.open-mpi.org/projects/hwloc/doc/ for more hwloc documentation.