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::terminate
for non-graceful termination of applications.Added
hpx::lcos::async
functions for simpler asynchronous programming.Added new AGAS interface for handling of symbolic namespace (
hpx::agas::*
).Renamed
hpx::components::wait
tohpx::lcos::wait
.Renamed
hpx::lcos::future_value
tohpx::lcos::promise
.Renamed
hpx::lcos::recursive_mutex
tohpx::lcos::local_recursive_mutex
,hpx::lcos::mutex
tohpx::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