Projects / Hardware Locality

Hardware Locality

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 primarily aims at helping high-performance computing (HPC) applications, but is also applicable to any project seeking to exploit code and/or data locality on modern computing platforms.

Tags
Licenses
Operating Systems
Implementation
Translations

Recent releases

  •  06 Mar 2012 12:41

    Release Notes: This release fixes a missing last bit in hwloc_linux_get_thread_cpubind(), an "inline" keyword, PCI locality with Linux cgroups, and grouping by distance on mips64. It improves XML support. It fixes build issues with gccfss, xls, and Solaris Studio 12 compilers, FreeBSD without cpuid support, Windows, -mcmodel=medium, and dependencies in embedded mode. It includes fixes for building with old GNU sed, really long commandlines, and compiler visibility support.

    •  06 Mar 2012 12:37

      Release Notes: This release contains all changes from 1.3.2. It fixes hwloc_alloc_membind, memory leaks in some get_membind() functions, several issues with libnuma, and some overzealous distance grouping assertions. A workaround BIOS is reporting empty I/O locality in CUDA and OpenFabrics. This release fixes a missing last bit in hwloc_linux_get_thread_cpubind(), an "inline" keyword, PCI locality with Linux cgroups, and grouping by distance on mips64. It fixes build issues with gccfss, xls, and Solaris Studio 12 compilers, FreeBSD without cpuid support, Windows, -mcmodel=medium, and dependencies in embedded mode.

      •  26 Jan 2012 18:17

        Release Notes: This release adds a "custom" interface and "assembler" tools to build multi-node topology. It adds a symmetric_subtree object attribute to ease assumptions when consulting regular symmetric topologies. It adds a CPUModel and CPUType info attribute to Socket objects on Linux and Solaris. It adds hwloc_get_obj_index_inside_cpuset() to retrieve the "logical" index of an object within a subtree of the topology. It adds more NVIDIA CUDA helpers in cuda.h and cudart.h to find hwloc objects corresponding to CUDA devices.

        •  20 Dec 2011 21:37

          Release Notes: This release fixes pciutils detection with pkg-config when not installed in standard directories, visibility option detection with the Solaris Studio compiler, support for old Linux sched.h headers, and inline and attribute support for Solaris compilers. It prints a short summary at the end of the configure output, adds a --disable-libnuma configure option, makes hwloc's configure script properly obey $PKG_CONFIG, silences some harmless pciutils warnings, and fixes the documentation with respect to hwloc_pid_t and hwloc_thread_t being either pid_t and pthread_t on Unix, or HANDLE on Windows.

          •  13 Oct 2011 18:03

            Release Notes: I/O devices and bridges were added to the topology; lstopo displays them by default. XML is now always supported, even without libxml2. Associativity information was added to caches. Support for s390 books were added. Grouping can now be relaxed. The OS-provided distance matrix can be overridden. Some options were added to the command line tools.

            Screenshot

            Project Spotlight

            OpenStack4j

            A Fluent OpenStack client API for Java.

            Screenshot

            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.