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 projects:

* 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 optimizations.

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.


Jeff Squyres

Reply via email to