The Hardware Locality (hwloc) team is tremendously pleased to announce the release of version 1.0:
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. The hwloc team considers version 1.0 to be the first production-quality release that is suitable for widespread adoption. Please send your feedback on hwloc experiences to our mailing lists (see the web site, above). The following is a summary of the changes since the v0.9 series. * The ABI of the library has changed since the v0.9 series. * Backend updates + Add FreeBSD support. + Add x86 cpuid based backend. + Add Linux cgroup support to the Linux cpuset code. + Support binding of entire multithreaded process on Linux. + Fix and enable Group support in Windows. + Cleanup XML export/import. * Objects + HWLOC_OBJ_PROC is renamed into HWLOC_OBJ_PU for "Processing Unit", its stringified type name is now "PU". + Use new HWLOC_OBJ_GROUP objects instead of MISC when grouping objects according to NUMA distances or arbitrary OS aggregation. + Rework memory attributes. + Add different cpusets in each object to specify processors that are offline, unavailable, ... + Cleanup the storage of object names and DMI infos. * Features + Add support for looking up specific PID topology information. + Add hwloc_topology_export_xml() to export the topology in a XML file. + Add hwloc_topology_get_support() to retrieve the supported features for the current topology context. + Support non-SYSTEM object as the root of the tree, use MACHINE in most common cases. + Add hwloc_get_*cpubind() routines to retrieve the current binding of processes and threads. * API + Add HWLOC_API_VERSION to help detect the currently used API version. + Add missing ending "e" to *compare* functions. + Add several routines to emulate PLPA functions. + Rename and rework the cpuset and/or/xor/not/clear operators to output their result in a dedicated argument instead of modifying one input. + Deprecate hwloc_obj_snprintf() in favor of hwloc_obj_type/attr_snprintf(). + Clarify the use of parent and ancestor in the API, do not use father. + Replace hwloc_get_system_obj() with hwloc_get_root_obj(). + Return -1 instead of HWLOC_OBJ_TYPE_MAX in the API since the latter isn't public. + Relax constraints in hwloc_obj_type_of_string(). + Improve displaying of memory sizes. + Add 0x prefix to cpuset strings. * Tools + lstopo now displays logical indexes by default, use --physical to revert back to OS/physical indexes. + Add colors in the lstopo graphical outputs to distinguish between online, offline, reserved, ... objects. + Extend lstopo to show cpusets, filter objects by type, ... + Renamed hwloc-mask into hwloc-calc which supports many new options. * Documentation + Add a hwloc(7) manpage containing general information. + Add documentation about how to switch from PLPA to hwloc. + Cleanup the distributed documentation files. * Miscellaneous + Many compilers warning fixes. + Cleanup the ABI by using the visibility attribute. + Add project embedding support. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/