HPX V1.8.1 (Aug 5, 2022)#

This is a bugfix release with a few minor additions and resolved problems.

General changes#

This patch release adds a number of small new features and fixes a handful of problems discovered since the last release, in particular:

  • A lot of work has been done to improve vectorization support for our parallel algorithms. HPX now supports using EVE - the Expressive Vector Engine as a vectorization backend.

  • Added a simple average power consumption performance counter.

  • Added performance counters related to the use of zero-copy chunks in the networking layer.

  • More work was done towards full compatibility with the sender/receivers proposal P2300.

  • Fixing sync_wait to decay the result types

  • Fixed collective operations to properly avoid overalapping consecutive operations on the same communicator.

  • Simplified the implementation of our execution policies and added mapping functions between those.

  • Fixed performance issues with our implementation of small_vector.

  • Serialization now works with buffers of unsigned characters.

  • Fixing dangling reference in serialization of non-default constructible types

  • Fixed static linking on Windows.

  • Fixed support for M1/MacOS based architectures.

  • Fixed support for gentoo/musl.

  • Fixed hpx::counting_semaphore_var.

  • Properly check start and end bounds for hpx::for_loop

  • A lot of changes and fixes to the documentation (see https://hpx-docs.stellar-group.org).

Breaking changes#

  • No breaking changes have been introduced.

Closed issues#

  • Issue #5964 - component with multiple inheritance

  • Issue #5946 - dll_dlopen.hpp: error: RTLD_DI_ORIGIN was not declared in this scope with musl libc

  • Issue #5925 - Simplify implementation of execution policies

  • Issue #5924 - {what}: mmap() failed to allocate thread stack: HPX(unhandled_exception)

  • Issue #5912 - collectives all gather hangs if rank 0 is not involved

  • Issue #5902 - MPI parcelport issue on Fugaku

  • Issue #5900 - Unable to build hello_world_distributed.cpp.

  • Issue #5892 - Problems with HPX serialization as a standalone feature. Testcase provided.

  • Issue #5886 - Segfault when serializing non default constructible class with stl containers data members

  • Issue #5832 - Distributed execution crash

  • Issue #5768 - HPX hangs on Perlmutter

  • Issue #5735 - hpx::for_loop executes without checking start and end bounds

  • Issue #5700 - HPX(serialization_error)

Closed pull requests#

  • PR #5970 - Fixing component multiple inheritance

  • PR #5969 - Fixing sync_wait to avoid dangling references

  • PR #5963 - Fixing sync_wait to decay the result types

  • PR #5960 - docs: added name to documentation contributors list

  • PR #5959 - Fixing sync_wait to decay the result types

  • PR #5954 - refactor: rename itr to correct type (reduce)

  • PR #5954 - refactor: rename itr to correct type (reduce)

  • PR #5953 - Fixed property handling in hierarchical_spawning

  • PR #5951 - Fixing static linking (for Windows)

  • PR #5947 - Fix building on musl.

  • PR #5944 - added adaptive_static_chunk_size

  • PR #5943 - Fix sync_wait

  • PR #5942 - Fix doc warnings

  • PR #5941 - Fix sync_wait

  • PR #5940 - Protect collective operations against std::vector<bool> idiosyncrasies

  • PR #5939 - docs: fix & improve parallel algorithms documentation 2

  • PR #5938 - Properly implement generation support for collective operations

  • PR #5937 - Remove leftover files from PMR based small_vector

  • PR #5936 - Adding mapping functions between execution policies

  • PR #5935 - Fixing serialization to work with buffers of unsigned chars

  • PR #5934 - Attempting to fix datapar issues on CircleCI

  • PR #5933 - Fix documentation for ranges algorithms

  • PR #5932 - Remove mimalloc version constraint

  • PR #5931 - docs: fix & improve parallel algorithms documentation

  • PR #5930 - Add boost to hip builder

  • PR #5929 - Apply fixes to M1/MacOS related stack allocation to all relevant spots

  • PR #5928 - updated context_generic_context to accommodate arm64_arch_8/Apple architecture

  • PR #5927 - Public derivation for counting_semaphore_var

  • PR #5926 - Fix doxygen warnings when building documentation

  • PR #5923 - Fixing git checkout to reflect latest version tag

  • PR #5922 - A couple of unrelated changes in support of implementing P1673

  • PR #5920 - [P2300] enhancements: receiver_of, sender_of improvements

  • PR #5917 - Fixing various ‘held lock while suspending’ problems

  • PR #5916 - Fix minor doxygen parsing typo

  • PR #5915 - docs: fix broken api algo links

  • PR #5914 - Remove CSS rules - update sphinx version

  • PR #5911 - Removed references to hpx::vector in comments

  • PR #5909 - Remove stuff which is defined in the header

  • PR #5906 - Use BUILD_SHARED_LIBS correctly

  • PR #5905 - Fix incorrect usage of generator expressions

  • PR #5904 - Delete FindBZip2.cmake

  • PR #5901 - Fix #5900

  • PR #5899 - Replace PMR based version of small_vector

  • PR #5897 - Add missing “”

  • PR #5896 - Docs: Add serialization tutorial.

  • PR #5895 - Update to V1.9.0 on master

  • PR #5894 - Fix executor_with_thread_hooks example

  • PR #5890 - Adding simple average power consumption performance counter

  • PR #5889 - Par unseq/unseq adding

  • PR #5888 - Support for data-parallelism for reduce, transform reduce, transform_binary_reduce algorithms

  • PR #5887 - Fixing dangling reference in serialization of non-default constructible types

  • PR #5879 - New performance counters related to zero-copy chunks.