It took a bunch of testing, but we finally got the first formal public release of hwloc (“Hardware Locality”) out the door. From the announcement:
“hwloc provides command line tools and a C API to obtain the hierarchical map of key computing elements, such as: NUMA memory nodes, shared caches, processor sockets, processor cores, and processor “threads”. hwloc also gathers various attributes such as cache and memory information, and is portable across a variety of different operating systems and platforms.”
hwloc was primarily developed with High Performance Computing (HPC) applications in mind, but it is generally applicable to any software that wants or needs to know the physical layout of the machine on which it is running. This is becoming increasingly important in today’s ever-growing-core-count compute servers.
I mentioned hwloc in a previous blog entry; I’m glad to say that we now have a first release generally available. This first release supports a smorgasbordof operating systems and platforms:
- Linux (including old kernels not having sysfs topology information, with knowledge of cpusets, offline cpus, and Kerrighed support)
- Darwin / OS X
- OSF/1 (a.k.a., Tru64)
- Microsoft Windows
More fun (and useful) features are in development for upcoming releases. Head over to the hwloc web site for more details and to join in the fun!