The Hardware Locality (hwloc) team is pleased to announce the first release candidate for v1.1:
http://www.open-mpi.org/projects/hwloc/ (mirrors will update shortly) 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. v1.1rc1 is the first milestone of a major feature release. Many features and changes have been added since the v1.0 series. Although v1.1rc1 is only a prerelease, we felt it important to announce the first in the series in order to gain feedback and widespread testing before v1.1 goes final. Please try hwloc out on your system, read its improved documentation, and send us your feedback. The following is a summary of the changes since the v1.0 series (this list may change before v1.1 goes final): * API + Increase HWLOC_API_VERSION to 0x00010100 so that API changes may be detected at build-time. + Add a memory binding interface. + The cpuset API (hwloc/cpuset.h) is now deprecated. It is replaced by the bitmap API (hwloc/bitmap.h) which offers the same features with more generic names since it applies to CPU sets, node sets and more. Backward compatibility with the cpuset API and ABI is still provided but it will be removed in a future release. Old types (hwloc_cpuset_t, ...) are still available as a way to clarify what kind of hwloc_bitmap_t each API function manipulates. Upgrading to the new API only requires to replace hwloc_cpuset_ function calls with the corresponding hwloc_bitmap_ calls, with the following renaming exceptions: - hwloc_cpuset_cpu -> hwloc_bitmap_only - hwloc_cpuset_all_but_cpu -> hwloc_bitmap_allbut - hwloc_cpuset_from_string -> hwloc_bitmap_sscanf + Add an `infos' array in each object to store couples of info names and values. It enables generic storage of things like the old dmi board infos that were previously stored in machine specific attributes. + Add linesize cache attribute. * Features + Bitmaps (and thus CPU sets and node sets) are dynamically (re-)allocated, the maximal number of CPUs (HWLOC_NBMAXCPUS) has been removed. + Improve the distance-based grouping code to better support irregular distance matrices. + Add support for device-tree to get cache information (useful on Power architectures). * Helpers + Add NVIDIA CUDA helpers in cuda.h and cudart.h to ease interoperability with CUDA Runtime and Driver APIs. + Add Myrinet Express helper in myriexpress.h to ease interoperability. * Tools + Add hwloc-ps to list process' bindings. + Improve tools command-line options by adding a generic --input option (and more) which replaces the old --xml, --synthetic and --fsys-root. + Cleanup lstopo output configuration by adding --output-format. + Add --intersect in hwloc-calc, and replace --objects with --largest. + Add the ability to work on standard input in hwloc-calc. + Add --among in hwloc-distrib. + Add taskset-specific functions and command-line tools options to manipulate CPU set strings in the format of the taskset program. + Install hwloc-gather-topology.sh on Linux. -- Brice Goglin