(this blog entry co-written by Brice Goglin and Samuel Thibault from the INRIA Runtime Team)
We’re pleased to announce a new open source software project: Hardware Locality (or “hwloc“, for short). 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.
hwloc supports the following operating systems:
- OS X / Darwin
- OSF/1 (Tru64)
hwloc is an open source project; we encourage interested parties to join in the development process and/or provide feedback on our efforts.
- User’s mailing list for user-level questions, comments, suggestions, etc.
- Developer’s mailing list for developer-level discussions, patches, bug reports, etc. (i.e., those who are actively developing the internals of hwloc itself).
- Announcement mailing list a low-frequently mailing list for announcing new releases of hwloc.