The STE||AR Group is proud to announce the release of HPX 1.2.0. This release is the first in our more frequent release schedule. We are aiming to produce one release every six months in an effort to get new features and stable releases out to users more quickly. As a result this release is smaller than many previous releases, but nevertheless contains many important improvements. This release includes among others performance improvements, a new implementation of hpx_main.hpp , scheduler hints, and many stability improvements. This release also removes many previously deprecated features. Make sure you read the full release notes to see which deprecated features were removed.

Thank you to everyone who has contributed from all over the world!

Download the release below, from our download page, or from our GitHub page.

The highlights of this release are:

Thanks to the work of our Google Summer of Code student, Nikunj Gupta, we now have a new implementation of hpx_main.hpp on supported platforms (Linux, BSD and MacOS). This is intended to be a less fragile drop-in replacement for the old implementation relying on preprocessor macros. The new implementation does not require changes if you are using the CMake or pkg-config. The old behaviour can be restored by setting HPX_WITH_DYNAMIC_HPX_MAIN=OFF during CMake configuration. The implementation on Windows is unchanged.

on supported platforms (Linux, BSD and MacOS). This is intended to be a less fragile drop-in replacement for the old implementation relying on preprocessor macros. The new implementation does not require changes if you are using the CMake or pkg-config. The old behaviour can be restored by setting during CMake configuration. The implementation on Windows is unchanged. We have added functionality to allow passing scheduling hints to our schedulers. These will allow us to create executors that for example target a specific NUMA domain or allow for HPX threads to be pinned to a particular worker thread.

We have significantly improved the performance of our futures implementation by making the shared state atomic.

We have replaced Boostbook by Sphinx for our documentation. This means the documentation is easier to navigate with built-in search and table of contents. We have also added a quick start section and restructured the documentation to be easier to follow for new users. The latest stable documentation can always be found here.

HPXMP is a portable, scalable, and flexible application programming interface using the OpenMP specification that supports multi-platform shared memory multiprocessing programming in C and C++. HPXMP can be enabled within HPX by setting HPX_WITH_HPXMP=ON during CMake configuration.

For a complete list of new features and breaking changes please see our release notes. If you have any questions, comments, or exploits to report you can comment below, reach us on IRC (#stellar on Freenode), or email us at hpx-users@stellar.cct.lsu.edu. We value on your input!

Download links: