We’re pleased to announce a new open source software project: Portable
Hardware Locality (or “hwloc”, for short). hwloc is a sub-project of
the Open MPI umbrella project, meaning that it is a small utility not
directly related to MPI applications, but has greater applicability
outside of just the high-performance computing arena.
The hwloc web site can be found here:
The hwloc software discovers and maps the NUMA nodes, shared caches,
and processor sockets, cores, and threads of Linux/Unix and Windows
servers. The resulting topological information can be displayed
graphically or conveyed programatically though a C language API.
Applications (and middleware) that use this information can optimize
their performance in a variety of ways, including tuning computational
cores to fit cache sizes and utilizing data locality-aware algorithms.
hwloc actually represents the merger of two prior open source software
* libtopology, a package for discovering and reporting the internal
processor and cache topology in Unix and Windows servers.
* Portable Linux Processor Affinity (PLPA), a package for solving
Linux topological processor binding compatibility issues
These two projects had a certain amount of functional overlap; both
had elements from the other on their short- and long-term roadmaps.
The maintainers of these projects felt it would be easier to combine
forces to produce a new, unified code base representing the best ideas
from both prior projects. The first release of hwloc is expected in
the not-distant future, and mainly represents a “re-branding” of
libtopology (but will include a small number of bug fixes and
improvements inspired from PLPA). Future releases will further merge
the code bases and ideas from the two project, and progress down both
libtopology’s and PLPA’s roadmaps in terms of new features and
For more information, see the project web site. Interested parties
are encouraged to join the mailing lists (http://www.open-mpi.org/community/lists/hwloc.php
) to participate in the development process and/or provide feedback.