![]() |
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
like hpx::bind
.
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 hpx::thread
,
hpx::function
, hpx::future
,
etc.
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.
@file
future_data<T>::set_on_completed_
used without locks
thread_aware_timer
is broken
HPX_ALWAYS_ASSERT
macro
--hpx:list-counter-infos
problem
--hpx:list-counters
and --hpx:list-counter-infos
--hpx:print-counter
RemoteResult
template parameter for future<>
--help
is used
--hpx:connect
command line parameter not working correctly
hpx::wait()
(callback version) should pass the future to the callback function
hpx::wait
should operate on boost::arrays
and std::lists
HPX_DEFINE_COMPONENT_ACTION
hpx::start
/hpx::stop
to avoid blocking main thread
boost::shared_ptr<>
style semantics/syntax for client classes
BOOST_FORCEINLINE
does not name a type
get_id()
AUTOGLOB
broken
for add_hpx_component
hpx::error_code
is not usable for lightweight
error handling
boost::scoped_ptr<hpx::threads::topology>::scoped_ptr(hpx::threads::linux_topology*)
HPX_DONT_USE_PREPROCESSED_FILES
to HPX_USE_PREPROCESSED_FILES
hpx::util::high_resolution_clock
allgather_and_gate
on 4 cores or more
HPX_REGISTER_STARTUP_MODULE
fail to compile with MSVC
CMAKE_BUILD_TYPE
)
--localities=N/-lN
should be necessary only on AGAS
locality