We have released HPX 1.8.1 that adds a number of small new features and fixes a handful of problems discovered since the last 1.8.0 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. More work was done towards full compatibility with the sender/receiver proposal P2300. We have fixed all collective operations to properly avoid overlapping consecutive operations on the same communicator. We also fixed a dangling reference problem while serializing non-default constructible types. We have added support for static linking on Windows (using MSVC) and have added support for M1/MacOS based architectures. A full list of changes can be found in the release notes.
If you have any questions, comments, or exploits to report you can reach us on IRC or Matrix (#ste||ar on libera.chat) or email us at hpx-users. We depend on your input!
HPX is a general-purpose parallel C++ runtime system for applications of any scale. It implements all of the related facilities as defined by the C++20 Standard. As of this writing, HPX provides the only widely available open-source implementation of the new C++17 and C++20 parallel algorithms, including a full set of parallel range-based algorithms. Additionally, HPX implements functionalities proposed as part of the ongoing C++ standardization process, such as large parts of the features related parallelism and concurrency as specified by the upcoming C++23 Standard, the C++ Concurrency TS, Parallelism TS V2, data-parallel algorithms, executors, and many more. It also extends the existing C++ Standard APIs to the distributed case (e.g., compute clusters) and for heterogeneous systems (e.g., GPUs).
HPX seamlessly enables a new Asynchronous C++ Standard Programming Model that tends to improve the parallel efficiency of our applications and helps reducing complexities usually associated with parallelism and concurrency.