HPX V0.7.0 (Dec 12, 2011)¶
We have had roughly 1000 commits since the last release and we have closed approximately 120 tickets (bugs, feature requests, etc.).
General changes¶
- Completely removed code related to deprecated AGAS V1, started to work on AGAS V2.1. 
- Started to clean up and streamline the exposed APIs (see ‘API changes’ below for more details). 
- Revamped and unified performance counter framework, added a lot of new performance counter instances for monitoring of a diverse set of internal HPX parameters (queue lengths, access statistics, etc.). 
- Improved general error handling and logging support. 
- Fixed several race conditions, improved overall stability, decreased memory footprint, improved overall performance (major optimizations include native TLS support and ranged-based AGAS caching). 
- Added support for running HPX applications with PBS. 
- Many updates to the build system, added support for gcc 4.5.x and 4.6.x, added C++11 support. 
- Many updates to default command line options. 
- Added many tests, set up buildbot for continuous integration testing. 
- Better shutdown handling of distributed applications. 
Example applications¶
- quickstart/factorial and quickstart/fibonacci, future-recursive parallel algorithms. 
- quickstart/hello_world, distributed hello world example. 
- quickstart/rma, simple remote memory access example 
- quickstart/quicksort, parallel quicksort implementation. 
- gtc, gyrokinetic torodial code. 
- bfs, breadth-first-search, example code for a graph application. 
- sheneos, partitioning of large data sets. 
- accumulator, simple component example. 
- balancing/os_thread_num, balancing/px_thread_phase, examples demonstrating load balancing and work stealing. 
API changes¶
- Added - hpx::find_all_localities.
- Added - hpx::terminatefor non-graceful termination of applications.
- Added - hpx::lcos::asyncfunctions for simpler asynchronous programming.
- Added new AGAS interface for handling of symbolic namespace ( - hpx::agas::*).
- Renamed - hpx::components::waitto- hpx::lcos::wait.
- Renamed - hpx::lcos::future_valueto- hpx::lcos::promise.
- Renamed - hpx::lcos::recursive_mutexto- hpx::lcos::local_recursive_mutex,- hpx::lcos::mutexto- hpx::lcos::local_mutex
- Removed support for Boost versions older than V1.38, recommended Boost version is now V1.47 and newer. 
- Removed - hpx::process(this will be replaced by a real process implementation in the future).
- Removed non-functional LCO code ( - hpx::lcos::dataflow,- hpx::lcos::thunk,- hpx::lcos::dataflow_variable).
- Removed deprecated - hpx::naming::full_address.
Bug fixes (closed tickets)¶
Here is a list of the important tickets we closed for this release:
- Issue #28 - Integrate Windows/Linux CMake code for HPX core 
- Issue #32 - hpx::cout() should be hpx::cout 
- Issue #33 - AGAS V2 legacy client does not properly handle error_code 
- Issue #60 - AGAS: allow for registerid to optionally take ownership of the gid 
- Issue #62 - adaptive1d compilation failure in Fusion 
- Issue #64 - Parcel subsystem doesn’t resolve domain names 
- Issue #83 - No error handling if no console is available 
- Issue #84 - No error handling if a hosted locality is treated as the bootstrap server 
- Issue #90 - Add general commandline option -N 
- Issue #91 - Add possibility to read command line arguments from file 
- Issue #92 - Always log exceptions/errors to the log file 
- Issue #93 - Log the command line/program name 
- Issue #95 - Support for distributed launches 
- Issue #97 - Attempt to create a bad component type in AMR examples 
- Issue #100 - factorial and factorial_get examples trigger AGAS component type assertions 
- Issue #101 - Segfault when hpx::process::here() is called in fibonacci2 
- Issue #102 - unknown_component_address in int_object_semaphore_client 
- Issue #114 - marduk raises assertion with default parameters 
- Issue #115 - Logging messages for SMP runs (on the console) shouldn’t be buffered 
- Issue #119 - marduk linking strategy breaks other applications 
- Issue #121 - pbsdsh problem 
- Issue #123 - marduk, dataflow and adaptive1d fail to build 
- Issue #124 - Lower default preprocessing arity 
- Issue #125 - Move hpx::detail::diagnostic_information out of the detail namespace 
- Issue #126 - Test definitions for AGAS reference counting 
- Issue #128 - Add averaging performance counter 
- Issue #129 - Error with endian.hpp while building adaptive1d 
- Issue #130 - Bad initialization of performance counters 
- Issue #131 - Add global startup/shutdown functions to component modules 
- Issue #132 - Avoid using auto_ptr 
- Issue #133 - On Windows hpx.dll doesn’t get installed 
- Issue #134 - HPX_LIBRARY does not reflect real library name (on Windows) 
- Issue #135 - Add detection of unique_ptr to build system 
- Issue #137 - Add command line option allowing to repeatedly evaluate performance counters 
- Issue #139 - Logging is broken 
- Issue #140 - CMake problem on windows 
- Issue #141 - Move all non-component libraries into $PREFIX/lib/hpx 
- Issue #143 - adaptive1d throws an exception with the default command line options 
- Issue #146 - Early exception handling is broken 
- Issue #147 - Sheneos doesn’t link on Linux 
- Issue #149 - sheneos_test hangs 
- Issue #154 - Compilation fails for r5661 
- Issue #155 - Sine performance counters example chokes on chrono headers 
- Issue #156 - Add build type to –version 
- Issue #157 - Extend AGAS caching to store gid ranges 
- Issue #158 - r5691 doesn’t compile 
- Issue #160 - Re-add AGAS function for resolving a locality to its prefix 
- Issue #168 - Managed components should be able to access their own GID 
- Issue #169 - Rewrite AGAS future pool 
- Issue #179 - Complete switch to request class for AGAS server interface 
- Issue #182 - Sine performance counter is loaded by other examples 
- Issue #185 - Write tests for symbol namespace reference counting 
- Issue #191 - Assignment of read-only variable in point_geometry 
- Issue #200 - Seg faults when querying performance counters 
- Issue #204 - –ifnames and suffix stripping needs to be more generic 
- Issue #205 - –list-* and –print-counter-* options do not work together and produce no warning 
- Issue #207 - Implement decrement entry merging 
- Issue #208 - Replace the spinlocks in AGAS with hpx::lcos::local_mutexes 
- Issue #210 - Add an –ifprefix option 
- Issue #214 - Performance test for PX-thread creation 
- Issue #216 - VS2010 compilation 
- Issue #222 - r6045 context_linux_x86.hpp 
- Issue #223 - fibonacci hangs when changing the state of an active thread 
- Issue #225 - Active threads end up in the FEB wait queue 
- Issue #226 - VS Build Error for Accumulator Client 
- Issue #228 - Move all traits into namespace hpx::traits 
- Issue #229 - Invalid initialization of reference in thread_init_data 
- Issue #235 - Invalid GID in iostreams 
- Issue #238 - Demangle type names for the default implementation of get_action_name 
- Issue #241 - C++11 support breaks GCC 4.5 
- Issue #247 - Reference to temporary with GCC 4.4 
- Issue #248 - Seg fault at shutdown with GCC 4.4 
- Issue #253 - Default component action registration kills compiler 
- Issue #272 - G++ unrecognized command line option 
- Issue #273 - quicksort example doesn’t compile 
- Issue #277 - Invalid CMake logic for Windows