We have had over 1000 commits since the last release and we have closed roughly 150 tickets (bugs, feature requests, etc.).
This release is continuing along the lines of code and API consolidation, and overall usability inprovements. We dedicated much attention to performance and we were able to significantly improve the threading and networking subsystems.
We successfully ported HPX to the Android platform. HPX applications now not only can run on mobile devices, but we support heterogeneous applications running across architecture boundaries. At the Supercomputing Conference 2012 we demonstrated connecting Android tablets to simulations running on a Linux cluster. The Android tablet was used to query performance counters from the Linux simulation and to steer its parameters.
We successfully ported HPX to Mac OSX (using the Clang compiler). Thanks to Pyry Jahkola for contributing the corresponding patches. Please see the section How to Install HPX on Mac OS for more details.
We made a special effort to make HPX usable in highly concurrent use cases.
Many of the HPX API functions which possibly take longer than 100 microseconds
to execute now can be invoked asynchronously. We added uniform support
for composing futures which simplifies to write asynchronous code. HPX
actions (function objects encapsulating possibly concurrent remote function
invocations) are now well integrated with all other API facilities such
All of the API has been aligned as much as possible with established paradigms.
HPX now mirrors many of the facilities as defined in the C++11
Standard, such as
A lot of work has been put into improving the documentation. Many of the API functions are documented now, concepts are explained in detail, and examples are better described than before. The new documentation index enables finding information with lesser effort.
This is the first release of HPX we perform after the move to Github. This step has enabled a wider participation from the community and further encourages us in our decision to release HPX as a true open source library (HPX is licensed under the very liberal Boost Software License).
Here is a list of the important tickets we closed for this release. This is by far the longest list of newly implemented features and fixed issues for any of HPX' releases so far.
future_data<T>::set_on_completed_used without locks
RemoteResulttemplate parameter for
--hpx:connectcommand line parameter not working correctly
hpx::wait()(callback version) should pass the future to the callback function
hpx::waitshould operate on
hpx::stopto avoid blocking main thread
boost::shared_ptr<>style semantics/syntax for client classes
BOOST_FORCEINLINEdoes not name a type
AUTOGLOBbroken for add_hpx_component
hpx::error_codeis not usable for lightweight error handling
allgather_and_gateon 4 cores or more
HPX_REGISTER_STARTUP_MODULEfail to compile with MSVC
--localities=N/-lNshould be necessary only on AGAS locality