|
Packit Service |
c5cf8c |
Introduction
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The Hardware Locality (hwloc) software project aims at easing the process of
|
|
Packit Service |
c5cf8c |
discovering hardware resources in parallel architectures. It offers
|
|
Packit Service |
c5cf8c |
command-line tools and a C API for consulting these resources, their locality,
|
|
Packit Service |
c5cf8c |
attributes, and interconnection. hwloc primarily aims at helping
|
|
Packit Service |
c5cf8c |
high-performance computing (HPC) applications, but is also applicable to any
|
|
Packit Service |
c5cf8c |
project seeking to exploit code and/or data locality on modern computing
|
|
Packit Service |
c5cf8c |
platforms.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
hwloc is actually made of two subprojects distributed together:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
* The original hwloc project for describing the internals of computing nodes.
|
|
Packit Service |
c5cf8c |
It is described in details starting at section Hardware Locality (hwloc)
|
|
Packit Service |
c5cf8c |
Introduction.
|
|
Packit Service |
c5cf8c |
* The network-oriented companion called netloc (Network Locality), described
|
|
Packit Service |
c5cf8c |
in details starting with section Network Locality (netloc).
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
See also the Related pages tab above for links to other sections.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Netloc may be disabled, but the original hwloc cannot. Both hwloc and netloc
|
|
Packit Service |
c5cf8c |
APIs are documented after these sections.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Installation
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
hwloc (http://www.open-mpi.org/projects/hwloc/) is available under the BSD
|
|
Packit Service |
c5cf8c |
license. It is hosted as a sub-project of the overall Open MPI project (http://
|
|
Packit Service |
c5cf8c |
www.open-mpi.org/). Note that hwloc does not require any functionality from
|
|
Packit Service |
c5cf8c |
Open MPI -- it is a wholly separate (and much smaller!) project and code base.
|
|
Packit Service |
c5cf8c |
It just happens to be hosted as part of the overall Open MPI project.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Basic Installation
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Installation is the fairly common GNU-based process:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
shell$ ./configure --prefix=...
|
|
Packit Service |
c5cf8c |
shell$ make
|
|
Packit Service |
c5cf8c |
shell$ make install
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
hwloc- and netloc-specific configure options and requirements are documented in
|
|
Packit Service |
c5cf8c |
sections hwloc Installation and Netloc Installation respectively.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Also note that if you install supplemental libraries in non-standard locations,
|
|
Packit Service |
c5cf8c |
hwloc's configure script may not be able to find them without some help. You
|
|
Packit Service |
c5cf8c |
may need to specify additional CPPFLAGS, LDFLAGS, or PKG_CONFIG_PATH values on
|
|
Packit Service |
c5cf8c |
the configure command line.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
For example, if libpciaccess was installed into /opt/pciaccess, hwloc's
|
|
Packit Service |
c5cf8c |
configure script may not find it be default. Try adding PKG_CONFIG_PATH to the
|
|
Packit Service |
c5cf8c |
./configure command line, like this:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
./configure PKG_CONFIG_PATH=/opt/pciaccess/lib/pkgconfig ...
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Running the "lstopo" tool is a good way to check as a graphical output whether
|
|
Packit Service |
c5cf8c |
hwloc properly detected the architecture of your node. Netloc command-line
|
|
Packit Service |
c5cf8c |
tools can be used to display the network topology interconnecting your nodes.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Installing from a Git clone
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Additionally, the code can be directly cloned from Git:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
shell$ git clone https://github.com/open-mpi/hwloc.git
|
|
Packit Service |
c5cf8c |
shell$ cd hwloc
|
|
Packit Service |
c5cf8c |
shell$ ./autogen.sh
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Note that GNU Autoconf >=2.63, Automake >=1.11 and Libtool >=2.2.6 are required
|
|
Packit Service |
c5cf8c |
when building from a Git clone.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Nightly development snapshots are available on the web site, they can be
|
|
Packit Service |
c5cf8c |
configured and built without any need for Git or GNU Autotools.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Questions and Bugs
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Bugs should be reported in the tracker (https://github.com/open-mpi/hwloc/
|
|
Packit Service |
c5cf8c |
issues). Opening a new issue automatically displays lots of hints about how to
|
|
Packit Service |
c5cf8c |
debug and report issues.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Questions may be sent to the users or developers mailing lists (http://
|
|
Packit Service |
c5cf8c |
www.open-mpi.org/community/lists/hwloc.php).
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
There is also a #hwloc IRC channel on Freenode (irc.freenode.net).
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
See https://www.open-mpi.org/projects/hwloc/doc/ for more hwloc documentation.
|