hwloc (Hardware Locality) 2.1.0 is now available for download.

        https://www.open-mpi.org/software/hwloc/v2.1/

v2.1.0 brings quite a lot of improvements.
There are two new object types: "Die" for Xeon 9200 processors,
and "MemorySideCache" (used when DDR is a cache in front of NVDIMMs).

There's also better support for discovering the locality of memory
(e.g. when DDR and NVDIMMs are used as separate NUMA nodes).

lstopo got a lot of improvements: nicer graphical output, factorization
of identical objects (when you have maaaany cores in your CPUs),
many keyboard shortcuts to configure interactive outputs.

Bash completions are also available to ease command-line invocations.


The following is a summary of the changes since v2.0.4.

Version 2.1.0
-------------
* API
  + Add a new "Die" object (HWLOC_OBJ_DIE) for upcoming x86 processors
    with multiple dies per package, in the x86 and Linux backends.
  + Add the new HWLOC_OBJ_MEMCACHE object type for memory-side caches.
    - They are filtered-out by default, except in command-line tools.
    - They are only available on very recent platforms running Linux 5.2+
      and uptodate ACPI tables.
    - The KNL MCDRAM in cache mode is still exposed as a L3 unless
      HWLOC_KNL_MSCACHE_L3=0 in the environment.
  + Add HWLOC_RESTRICT_FLAG_BYNODESET and _REMOVE_MEMLESS for restricting
    topologies based on some memory nodes.
  + Add hwloc_topology_set_components() for blacklisting some components
    from being enabled in a topology.
  + Add hwloc_bitmap_nr_ulongs() and hwloc_bitmap_from/to_ulongs(),
    thanks to Junchao Zhang for the suggestion.
  + Improve the API for dealing with disallowed resources
    - HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM is replaced with FLAG_INCLUDE_DISALLOWED
      and --whole-system command-line options with --disallowed.
      . Former names are still accepted for backward compatibility.
    - Add hwloc_topology_allow() for changing allowed sets after load().
    - Add the HWLOC_ALLOW=all environment variable to totally ignore
      administrative restrictions such as Linux Cgroups.
    - Add disallowed_pu and disallowed_numa bits to the discovery support
      structure.
  + Group objects have a new "dont_merge" attribute to prevent them from
    being automatically merged with identical parent or children.
  + Add more distances-related features:
    - Add hwloc_distances_get_name() to retrieve a string describing
      what a distances structure contain.
    - Add hwloc_distances_get_by_name() to retrieve distances structures
      based on their name.
    - Add hwloc_distances_release_remove()
    - Distances may now cover objects of different types with new kind
      HWLOC_DISTANCES_KIND_HETEROGENEOUS_TYPES.
* Backends
  + Add support for Linux 5.3 new sysfs cpu topology files with Die information.
  + Add support for Intel v2 Extended Topology Enumeration in the x86 backend.
  + Improve memory locality on Linux by using HMAT initiators (exposed
    since Linux 5.2+), and NUMA distances for CPU-less NUMA nodes.
  + The x86 backend now properly handles offline CPUs.
  + Detect the locality of NVIDIA GPU OpenCL devices.
  + Ignore NUMA nodes that correspond to NVIDIA GPU by default.
    - They may be unignored if HWLOC_KEEP_NVIDIA_GPU_NUMA_NODES=1 in the 
environment.
    - Fix their CPU locality and add info attributes to identify them.
    Thanks to Max Katz and Edgar Leon for the help.
  + Add support for IBM S/390 drawers.
  + Rework the heuristics for discovering KNL Cluster and Memory modes
    to stop assuming all CPUs are online (required for mOS support).
    Thanks to Sharath K Bhat for testing patches.
  + Ignore NUMA node information from AMD topoext in the x86 backend,
    unless HWLOC_X86_TOPOEXT_NUMANODES=1 is set in the environment.
  + Expose Linux DAX devices as hwloc Block OS devices.
  + Remove support for /proc/cpuinfo-only topology discovery in Linux
    kernel prior to 2.6.16.
  + Disable POWER device-tree-based topology on Linux by default.
    - It may be reenabled by setting HWLOC_USE_DT=1 in the environment.
  + Discovery components are now divided in phases that may be individually
    blacklisted.
    - The linuxio component has been merged back into the linux component.
* Tools
  + lstopo
    - lstopo factorizes objects by default in the graphical output when
      there are more than 4 identical children.
      . New options --no-factorize and --factorize may be used to configure 
this.
      . Hit the 'f' key to disable factorizing in interactive outputs.
    - Both logical and OS/physical indexes are now displayed by default
      for PU and NUMA nodes.
    - The X11 and Windows interactive outputs support many keyboard
      shortcuts to dynamically customize the attributes, legend, etc.
    - Add --linespacing and change default margins and linespacing.
    - Add --allow for changing allowed sets.
    - Add a native SVG backend. Its graphical output may be slightly less
      pretty than Cairo (still used by default if available) but the SVG
      code provides attributes to manipulate objects from HTML/JS.
      See dynamic_SVG_example.html for an example.
  + Add --nodeset options to hwloc-calc for converting between cpusets and
    nodesets.
  + Add --no-smt to lstopo, hwloc-bind and hwloc-calc to ignore multiple
    PU in SMT cores.
  + hwloc-annotate may annotate multiple locations at once.
  + Add a HTML/JS version of hwloc-ps. See contrib/hwloc-ps.www/README.
  + Add bash completions.
* Misc
  + Add several FAQ entries in "Compatibility between hwloc versions"
    about API version, ABI, XML, Synthetic strings, and shmem topologies.



It's not clear yet whether there will be new v1.11.x or v2.0.x releases
after the final 2.1.0 is released. If you need some, please let me know.

--
Brice

_______________________________________________
hwloc-announce mailing list
hwloc-announce@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/hwloc-announce

Reply via email to