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