I am preparing a v1.5rc1 release, so here's the current status in case
somebody wants to comment.
Major changes for is v1.5:
* instruction caches
* lstopo becomes lstopo + lstopo-no-graphics
* improvements to misc backends (AIX, FreeBSD)
Full v1.5 NEWS list:
+ Do not limit the number of processors to 1024 on Solaris anymore.
+ Gather total machine memory on FreeBSD.
+ XML topology files do not depend on the locale anymore. Float numbers
such as NUMA distances or PCI link speeds now always use a dot as a
+ Add instruction caches detection on Linux, AIX, Windows and Darwin.
+ Add get_last_cpu_location() support for the current thread on AIX.
+ Support binding on AIX when threads or processes were bound with
bindprocessor(). Thanks to Hendryk Bockelmann for reporting the issue
and testing patches, and to Farid Parpia for explaining the binding
+ Improve AMD topology detection in the x86 backend (for FreeBSD) using
the topoext feature.
+ Increase HWLOC_API_VERSION to 0x00010500 so that API changes may be
detected at build-time.
+ Add a cache type attribute describind Data, Instruction and Unified
caches. Caches with different types but same depth (for instance L1d
and L1i) are placed on different levels.
+ Add hwloc_get_cache_type_depth() to retrieve the hwloc level depth of
of the given cache depth and type, for instance L1i or L2.
It helps disambiguating the case where hwloc_get_type_depth() returns
+ Instruction caches are ignored unless HWLOC_TOPOLOGY_FLAG_ICACHES is
passed to hwloc_topology_set_flags() before load.
+ Add hwloc_ibv_get_device_osdev_by_name() OpenFabrics helper in
openfabrics-verbs.h to find the hwloc OS device object corresponding to
an OpenFabrics device.
+ Add lstopo-no-graphics, a lstopo built without graphical support to
avoid dependencies on external libraries such as Cairo and X11. When
supported, graphical outputs are only available in the original lstopo
- Packagers splitting lstopo and lstopo-no-graphics into different
packages are advised to use the alternatives system so that lstopo
points to the best available binary.
+ Instruction caches are enabled in lstopo by default. User --no-icaches
to disable them.
+ Add -t/--threads to show threads in hwloc-ps.
* Removal of obsolete components
+ Remove the old cpuset interface (hwloc/cpuset.h) which is deprecated and
superseded by the bitmap API (hwloc/bitmap.h) since v1.1.
hwloc_cpuset and nodeset types are still defined, but all hwloc_cpuset_*
compatibility wrappers are now gone.
+ Remove Linux libnuma conversion helpers for the deprecated and
broken nodemask_t interface.
+ Remove support for "Proc" type name, it was superseded by "PU" in v1.0.
+ Remove hwloc-mask symlinks, it was replaced by hwloc-calc in v1.0.
+ Non-printable characters are dropped from strings during XML export.
+ Assert hwloc_is_thissystem() in several I/O related helpers.
+ Limit the number of retries when operating on all threads within a
process on Linux if the list of threads is heavily getting modified.
Plus some item currently only listed in the v1.4 branch NEWS:
* Fix PCIe 3.0 link speed computation.
* Fix importing of escaped characters with the minimalistic XML backend.
* Fix a memory leak in the x86 backend.
Open tickets against v1.5:
* #77: improve windows get_cpubind. I don't think I'll have time to work
on this soon since only Hartmut can test such patches on large windows
* #79: annotate the lstopo textual output for offline/unavailable/bound
CPUs (red/green/black in the graphical output). Easy to implement but
I don't have any obviously good solution yet.
* There's an OMPI ticket about hwloc fixes for a native windows build.
We're supposed to get a patch one day.