HPX V1.9.1 (August 4, 2023)#

General changes#

This point release fixes a couple of problems reported for the V1.9.0 release. Most importantly, we fixed various occasional hanging during startup and shutdown in distributed scenarios. We also added support for zero-copy serialization on the receiving side to the TCP, MPI, and LCI parcelports. Last but not least, we have added support for Visual Studio 2019 and gcc using MINGW on Windows, and also support for gcc V13 and clang V15.

HPX headers are now made consistently named the same as their standard library counterparts, e.g. #include <thread> now corresponds to #include <hpx/thread.hpp>. This significantly simplifies porting existing standards conforming codes to HPX.

A lot of work has been done to improve and optimize our network communication layers. Primary focus of this work was on the LCI parcelport, but we have also cleaned up and improved the MPI parcelport.

Additionally, we have continued working on our documentation. The main focus here was on completing the API documentation of the most important API functions. We have started adding migration guides for people interested in moving their codes away from other, commonplace parallelization frameworks like OpenMP.

Breaking changes#


Closed issues#

  • Issue #6155 - hpxcxx and hpxrun.py do not work if HPX_WITH_TESTS=OFF

  • Issue #6164 - HPX_WITH_DATAPAR_BACKEND=EVE causes compile errors with C++17

  • Issue #6175 - Make sure all our parallel algorithms accept the predicates by value

  • Issue #6194 - tests.regressions.threads.threads_all_1422 failed at Perlmutter

  • Issue #6198 - set_intersection/set_difference fails when run with execution::par

  • Issue #6214 - Broken Links to the Documentation page in readme.rst

  • Issue #6217 - hpx::make_heap does not terminate when exPolicy is par (or par_unseq) and size of vector is 4

  • Issue #6246 - HPX fails to compile under cxx 20 (fresh system)

  • Issue #6247 - HPX 1.9.0 does not compile with GCC on Windows

  • Issue #6282 - The “attach-debugger” option is broken on the current master branch.

Closed pull requests#

  • PR #6219 - Cleaning up #includes in hpx/ folder

  • PR #6223 - Move documentation from README.rst to index.rst files under libs directory

  • PR #6229 - Adding zero-copy support on the receiving end of the TCP and MPI parcel ports

  • PR #6231 - Remove deprecated email from release procedure

  • PR #6235 - Modernize more modules (levels 12-16)

  • PR #6236 - Attempt to resolve occasional shutdown hangs in distributed operation

  • PR #6239 - Fix Optimizing HPX applications page of Manual

  • PR #6241 - LCI parcelport: Refactor, add more variants, zero copy receives.

  • PR #6242 - updated deprecated headers

  • PR #6243 - Adding github action builders using VS2019

  • PR #6248 - Fix CUDA/HIP Jenkins pipelines

  • PR #6250 - Resolve gcc problems on Windows

  • PR #6251 - Attempting to fix problems in barrier causing hangs

  • PR #6253 - Modernize set_thread_name on Windows

  • PR #6256 - Fix nvcc/gcc-10 (Octo-Tiger) compilation issue

  • PR #6257 - Cmake Tests: Delete operator check for size_t arg

  • PR #6258 - Rewriting wait_some to circumvent data races causing hangs

  • PR #6260 - Add migration guide to manual

  • PR #6262 - Fixing wrong command line options in local command line handling

  • PR #6266 - Attempt to resolve occasional hang in run_loop

  • PR #6267 - Attempting to fix migration tests

  • PR #6278 - Making sure the future’s shared state doesn’t go out of scope prematurely

  • PR #6279 - Re-expose error names

  • PR #6281 - Creating directory for file copy

  • PR #6283 - Consistently #include unistd.h for _POSIX_VERSION