HPX V0.9.99 (Jul 15, 2016)
Contents
HPX V0.9.99 (Jul 15, 2016)#
General changes#
As the version number of this release hints, we consider this release to be a preview for the upcoming HPX V1.0. All of the functionalities we set out to implement for V1.0 are in place; all of the features we wanted to have exposed are ready. We are very happy with the stability and performance of HPX and we would like to present this release to the community in order for us to gather broad feedback before releasing V1.0. We still expect for some minor details to change, but on the whole this release represents what we would like to have in a V1.0.
Overall, since the last release we have had almost 1600 commits while closing almost 400 tickets. These numbers reflect the incredible development activity we have seen over the last couple of months. We would like to express a big ‘Thank you!’ to all contributors and those who helped to make this release happen.
The most notable addition in terms of new functionality available with this release is the full implementation of object migration (i.e. the ability to transparently move HPX components to a different compute node). Additionally, this release of HPX cleans up many minor issues and some API inconsistencies.
Here are some of the main highlights and changes for this release (in no particular order):
We have fixed a couple of issues in AGAS and the parcel layer which have caused hangs, segmentation faults at exit, and a slowdown of applications over time. Fixing those has significantly increased the overall stability and performance of distributed runs.
We have started to add parallel algorithm overloads based on the C++ Extensions for Ranges (N4560) proposal. This also includes the addition of projections to the existing algorithms. Please see Issue #1668 for a list of algorithms which have been adapted to N4560.
We have implemented index-based parallel for-loops based on a corresponding standardization proposal (P0075R1). Please see Issue #2016 for a list of available algorithms.
We have added implementations for more parallel algorithms as proposed for the upcoming C++ 17 Standard. See Issue #1141 for an overview of which algorithms are available by now.
We have started to implement a new prototypical functionality with HPX.Compute which uniformly exposes some of the higher level APIs to heterogeneous architectures (currently CUDA). This functionality is an early preview and should not be considered stable. It may change considerably in the future.
We have pervasively added (optional) executor arguments to all API functions which schedule new work. Executors are now used throughout the code base as the main means of executing tasks.
Added
hpx::make_future<R>(future<T> &&)
allowing to convert a future of any typeT
into a future of any other typeR
, either based on default conversion rules of the embedded types or using a given explicit conversion function.We finally finished the implementation of transparent migration of components to another locality. It is now possible to trigger a migration operation without ‘stopping the world’ for the object to migrate. HPX will make sure that no work is being performed on an object before it is migrated and that all subsequently scheduled work for the migrated object will be transparently forwarded to the new locality. Please note that the global id of the migrated object does not change, thus the application will not have to be changed in any way to support this new functionality. Please note that this feature is currently considered experimental. See Issue #559 and PR #1966 for more details.
The
hpx::dataflow
facility is now usable with actions. Similarly tohpx::async
, actions can be specified as an explicit template argument (hpx::dataflow<Action>(target, ...)
) or as the first argument (hpx::dataflow(Action(), target, ...)
). We have also enabled the use of distribution policies as the target for dataflow invocations. Please see Issue #1265 and PR #1912 for more information.Adding overloads of
gather_here
andgather_there
to accept the plain values of the data to gather (in addition to the existing overloads expecting futures).We have cleaned up and refactored large parts of the code base. This helped reducing compile and link times of HPX itself and also of applications depending on it. We have further decreased the dependency of HPX on the Boost libraries by replacing part of those with facilities available from the standard libraries.
Wherever possible we have removed dependencies of our API on Boost by replacing those with the equivalent facility from the C++11 standard library.
We have added new performance counters for parcel coalescing, file-IO, the AGAS cache, and overall scheduler time. Resetting performance counters has been overhauled and fixed.
We have introduced a generic client type
hpx::components::client<>
and added support for using it withhpx::async
. This removes the necessity to implement specific client types for every component type without losing type safety. This deemphasizes the need for using the low levelhpx::id_type
for referencing (possibly remote) component instances. The plan is to deprecate the direct use ofhpx::id_type
in user code in the future.We have added a special iterator which supports automatic prefetching of one or more arrays for speeding up loop-like code (see
hpx::parallel::util::make_prefetcher_context()
).We have extended the interfaces exposed from executors (as proposed by N4406) to accept an arbitrary number of arguments.
Breaking changes#
In order to move the dataflow facility to
namespace hpx
we added a definition ofhpx::dataflow
which might create ambiguities in existing codes. The previous definition of this facility (hpx::lcos::local::dataflow
) has been deprecated and is available only if the constant-DHPX_WITH_LOCAL_DATAFLOW_COMPATIBILITY=On
to CMake is defined at configuration time. Please explicitly qualify all uses of the dataflow facility if you enable this compatibility setting and encounter ambiguities.The adaptation of the C++ Extensions for Ranges (N4560) proposal imposes some breaking changes related to the return types of some of the parallel algorithms. Please see Issue #1668 for a list of algorithms which have already been adapted.
The facility
hpx::lcos::make_future_void()
has been replaced byhpx::make_future<void>()
.We have removed support for Intel V13 and gcc 4.4.x.
We have removed (default) support for the generic
hpx::parallel::execution_poliy
because it was removed from the Parallelism TS (__cpp11_n4104__) while it was being added to the upcoming C++17 Standard. This facility can be still enabled at configure time by specifying-DHPX_WITH_GENERIC_EXECUTION_POLICY=On
to CMake.Uses of
boost::shared_ptr
and related facilities have been replaced withstd::shared_ptr
and friends. Uses ofboost::unique_lock
,boost::lock_guard
etc. have also been replaced by the equivalent (and equally named) tools available from the C++11 standard library.Facilities that used to expect an explicit
boost::unique_lock
now take anstd::unique_lock
. Additionally,condition_variable
no longer aliasescondition_variable_any
; its interface now only works withstd::unique_lock<local::mutex>
.Uses of
boost::function
,boost::bind
,boost::tuple
have been replaced by the corresponding facilities in HPX (hpx::util::function
,hpx::util::bind
, andhpx::util::tuple
, respectively).
Bug fixes (closed tickets)#
Here is a list of the important tickets we closed for this release.
PR #2250 - change default chunker of parallel executor to static one
PR #2247 - HPX on ppc64le
PR #2244 - Fixing MSVC problems
PR #2238 - Fixing small typos
PR #2237 - Fixing small typos
PR #2234 - Fix broken add test macro when extra args are passed in
PR #2231 - Fixing possible race during future awaiting in serialization
PR #2230 - Fix stream nvcc
PR #2229 - Fixed run_as_hpx_thread
PR #2228 - On prefetching_test branch : adding prefetching_iterator and related tests used for prefetching containers within lambda functions
PR #2227 - Support for HPXCL’s opencl::event
PR #2226 - Preparing for release of V0.9.99
PR #2225 - fix issue when compiling components with hpxcxx
PR #2224 - Compute alloc fix
PR #2223 - Simplify promise
PR #2222 - Replace last uses of boost::function by util::function_nonser
PR #2221 - Fix config tests
PR #2220 - Fixing gcc 4.6 compilation issues
PR #2219 - nullptr support for
[unique_]function
PR #2218 - Introducing clang tidy
PR #2216 - Replace NULL with nullptr
Issue #2214 - Let inspect flag use of NULL, suggest nullptr instead
PR #2213 - Require support for nullptr
PR #2212 - Properly find jemalloc through pkg-config
PR #2211 - Disable a couple of warnings reported by Intel on Windows
PR #2210 - Fixed host::block_allocator::bulk_construct
PR #2209 - Started to clean up new sort algorithms, made things compile for sort_by_key
PR #2208 - A couple of fixes that were exposed by a new sort algorithm
PR #2207 - Adding missing includes in /hpx/include/serialization.hpp
PR #2206 - Call package_action::get_future before package_action::apply
PR #2205 - The indirect_packaged_task::operator() needs to be run on a HPX thread
PR #2204 - Variadic executor parameters
PR #2203 - Delay-initialize members of partitioned iterator
PR #2202 - Added segmented fill for hpx::vector
Issue #2201 - Null Thread id encountered on partitioned_vector
PR #2200 - Fix hangs
PR #2199 - Deprecating hpx/traits.hpp
PR #2198 - Making explicit inclusion of external libraries into build
PR #2197 - Fix typo in QT CMakeLists
PR #2196 - Fixing a gcc warning about attributes being ignored
PR #2194 - Fixing partitioned_vector_spmd_foreach example
Issue #2193 - partitioned_vector_spmd_foreach seg faults
PR #2192 - Support Boost.Thread v4
PR #2191 - HPX.Compute prototype
PR #2190 - Spawning operation on new thread if remaining stack space becomes too small
PR #2189 - Adding callback taking index and future to when_each
PR #2188 - Adding new example demonstrating receive_buffer
PR #2187 - Mask 128-bit ints if CUDA is being used
PR #2186 - Make startup & shutdown functions unique_function
PR #2185 - Fixing logging output not to cause hang on shutdown
PR #2184 - Allowing component clients as action return types
Issue #2183 - Enabling logging output causes hang on shutdown
Issue #2182 - 1d_stencil seg fault
Issue #2181 - Setting small stack size does not change default
PR #2180 - Changing default bind mode to balanced
PR #2179 - adding prefetching_iterator and related tests used for prefetching containers within lambda functions
PR #2177 - Fixing 2176
Issue #2176 - Launch process test fails on OSX
PR #2175 - Fix unbalanced config/warnings includes, add some new ones
PR #2174 - Fix test categorization : regression not unit
Issue #2172 - Different performance results
Issue #2171 - “negative entry in reference count table” running octotiger on 32 nodes on queenbee
Issue #2170 - Error while compiling on Mac + boost 1.60
PR #2168 - Fixing problems with is_bitwise_serializable
Issue #2167 - startup & shutdown function should accept unique_function
Issue #2166 - Simple receive_buffer example
PR #2165 - Fix wait all
PR #2164 - Fix wait all
PR #2163 - Fix some typos in config tests
PR #2162 - Improve #includes
PR #2160 - Add inspect check for missing #include <list>
PR #2159 - Add missing finalize call to stop test hanging
PR #2158 - Algo fixes
PR #2157 - Stack check
Issue #2156 - OSX reports stack space incorrectly (generic context coroutines)
Issue #2155 - Race condition suspected in runtime
PR #2154 - Replace boost::detail::atomic_count with the new util::atomic_count
PR #2153 - Fix stack overflow on OSX
PR #2152 - Define is_bitwise_serializable as is_trivially_copyable when available
PR #2151 - Adding missing <cstring> for std::mem* functions
Issue #2150 - Unable to use component clients as action return types
PR #2149 - std::memmove copies bytes, use bytes*sizeof(type) when copying larger types
PR #2146 - Adding customization point for parallel copy/move
PR #2145 - Applying changes to address warnings issued by latest version of PVS Studio
Issue #2148 - hpx::parallel::copy is broken after trivially copyable changes
PR #2144 - Some minor tweaks to compute prototype
PR #2143 - Added Boost version support information over OSX platform
PR #2142 - Fixing memory leak in example
PR #2141 - Add missing specializations in execution policies
PR #2139 - This PR fixes a few problems reported by Clang’s Undefined Behavior sanitizer
PR #2138 - Revert “Adding fedora docs”
PR #2136 - Removed double semicolon
PR #2135 - Add deprecated #include check for hpx_fwd.hpp
PR #2134 - Resolved memory leak in stencil_8
PR #2133 - Replace uses of boost pointer containers
PR #2132 - Removing unused typedef
PR #2131 - Add several include checks for std facilities
PR #2130 - Fixing parcel compression, adding test
PR #2129 - Fix invalid attribute warnings
Issue #2128 - hpx::init seems to segfault
PR #2127 - Making executor_traits N-nary
PR #2126 - GCC 4.6 fails to deduce the correct type in lambda
PR #2125 - Making parcel coalescing test actually test something
Issue #2124 - Make a testcase for parcel compression
Issue #2123 - hpx/hpx/runtime/applier_fwd.hpp - Multiple defined types
Issue #2122 - Exception in primary_namespace::resolve_free_list
Issue #2121 - Possible memory leak in 1d_stencil_8
PR #2120 - Fixing 2119
Issue #2119 - reduce_by_key compilation problems
Issue #2118 - Premature unwrapping of boost::ref’ed arguments
PR #2117 - Added missing initializer on last constructor for thread_description
PR #2116 - Use a lightweight bind implementation when no placeholders are given
PR #2115 - Replace boost::shared_ptr with std::shared_ptr
PR #2114 - Adding hook functions for executor_parameter_traits supporting timers
Issue #2113 - Compilation error with gcc version 4.9.3 (MacPorts gcc49 4.9.3_0)
PR #2112 - Replace uses of safe_bool with explicit operator bool
Issue #2111 - Compilation error on QT example
Issue #2110 - Compilation error when passing non-future argument to unwrapped continuation in dataflow
Issue #2109 - Warning while compiling hpx
Issue #2109 - Stack trace of last bug causing issues with octotiger
Issue #2108 - Stack trace of last bug causing issues with octotiger
PR #2107 - Making sure that a missing parcel_coalescing module does not cause startup exceptions
PR #2106 - Stop using hpx_fwd.hpp
Issue #2105 - coalescing plugin handler is not optional any more
Issue #2104 - Make executor_traits N-nary
Issue #2103 - Build error with octotiger and hpx commit e657426d
PR #2102 - Combining thread data storage
PR #2101 - Added repartition version of 1d stencil that uses any performance counter
PR #2100 - Drop obsolete TR1 result_of protocol
PR #2099 - Replace uses of boost::bind with util::bind
PR #2098 - Deprecated inspect checks
PR #2097 - Reduce by key, extends #1141
PR #2096 - Moving local cache from external to hpx/util
PR #2095 - Bump minimum required Boost to 1.50.0
PR #2094 - Add include checks for several Boost utilities
Issue #2093 - /…/local_cache.hpp(89): error #303: explicit type is missing (“int” assumed)
PR #2091 - Fix for Raspberry pi build
PR #2090 - Fix storage size for util::function<>
PR #2089 - Fix #2088
Issue #2088 - More verbose output from cmake configuration
PR #2087 - Making sure init_globally always executes hpx_main
Issue #2086 - Race condition with recent HPX
PR #2085 - Adding #include checker
PR #2084 - Replace boost lock types with standard library ones
PR #2083 - Simplify packaged task
PR #2082 - Updating APEX version for testing
PR #2081 - Cleanup exception headers
PR #2080 - Make call_once variadic
Issue #2079 - With GNU C++, line 85 of hpx/config/version.hpp causes link failure when linking application
Issue #2078 - Simple test fails with _GLIBCXX_DEBUG defined
PR #2077 - Instantiate board in nqueen client
PR #2076 - Moving coalescing registration to TUs
PR #2075 - Fixed some documentation typos
PR #2074 - Adding flush-mode to message handler flush
PR #2073 - Fixing performance regression introduced lately
PR #2072 - Refactor local::condition_variable
PR #2071 - Timer based on boost::asio::deadline_timer
PR #2070 - Refactor tuple based functionality
PR #2069 - Fixed typos
Issue #2068 - Seg fault with octotiger
PR #2067 - Algorithm cleanup
PR #2066 - Split credit fixes
PR #2065 - Rename HPX_MOVABLE_BUT_NOT_COPYABLE to HPX_MOVABLE_ONLY
PR #2064 - Fixed some typos in docs
PR #2063 - Adding example demonstrating template components
Issue #2062 - Support component templates
PR #2061 - Replace some uses of lexical_cast<string> with C++11 std::to_string
PR #2060 - Replace uses of boost::noncopyable with HPX_NON_COPYABLE
PR #2059 - Adding missing for_loop algorithms
PR #2058 - Move several definitions to more appropriate headers
PR #2057 - Simplify assert_owns_lock and ignore_while_checking
PR #2056 - Replacing std::result_of with util::result_of
PR #2055 - Fix process launching/connecting back
PR #2054 - Add a forwarding coroutine header
PR #2053 - Replace uses of boost::unordered_map with std::unordered_map
PR #2052 - Rewrite tuple unwrap
PR #2050 - Replace uses of BOOST_SCOPED_ENUM with C++11 scoped enums
PR #2049 - Attempt to narrow down split_credit problem
PR #2048 - Fixing gcc startup hangs
PR #2047 - Fixing when_xxx and wait_xxx for MSVC12
PR #2046 - adding persistent_auto_chunk_size and related tests for for_each
PR #2045 - Fixing HPX_HAVE_THREAD_BACKTRACE_DEPTH build time configuration
PR #2044 - Adding missing service executor types
PR #2043 - Removing ambiguous definitions for is_future_range and future_range_traits
PR #2042 - Clarify that HPX builds can use (much) more than 2GB per process
PR #2041 - Changing future_iterator_traits to support pointers
Issue #2040 - Improve documentation memory usage warning?
PR #2039 - Coroutine cleanup
PR #2038 - Fix cmake policy CMP0042 warning MACOSX_RPATH
PR #2037 - Avoid redundant specialization of [unique_]function_nonser
PR #2036 - nvcc dies with an internal error upon pushing/popping warnings inside templates
Issue #2035 - Use a less restrictive iterator definition in hpx::lcos::detail::future_iterator_traits
PR #2034 - Fixing compilation error with thread queue wait time performance counter
Issue #2033 - Compilation error when compiling with thread queue waittime performance counter
Issue #2032 - Ambiguous template instantiation for is_future_range and future_range_traits.
PR #2031 - Don’t restart timer on every incoming parcel
PR #2030 - Unify handling of execution policies in parallel algorithms
PR #2029 - Make pkg-config .pc files use .dylib on OSX
PR #2028 - Adding process component
PR #2027 - Making check for compiler compatibility independent on compiler path
PR #2025 - Fixing inspect tool
PR #2024 - Intel13 removal
PR #2023 - Fix errors related to older boost versions and parameter pack expansions in lambdas
Issue #2022 - gmake fail: “No rule to make target /usr/lib46/libboost_context-mt.so”
PR #2021 - Added Sudoku example
Issue #2020 - Make errors related to init_globally.cpp example while building HPX out of the box
PR #2019 - Fixed some compilation and cmake errors encountered in nqueen example
PR #2018 - For loop algorithms
PR #2017 - Non-recursive at_index implementation
Issue #2016 - Add index-based for-loops
Issue #2015 - Change default bind-mode to balanced
PR #2014 - Fixed dataflow if invoked action returns a future
PR #2013 - Fixing compilation issues with external example
PR #2012 - Added Sierpinski Triangle example
Issue #2011 - Compilation error while running sample hello_world_component code
PR #2010 - Segmented move implemented for hpx::vector
Issue #2009 - pkg-config order incorrect on 14.04 / GCC 4.8
Issue #2008 - Compilation error in dataflow of action returning a future
PR #2007 - Adding new performance counter exposing overall scheduler time
PR #2006 - Function includes
PR #2005 - Adding an example demonstrating how to initialize HPX from a global object
PR #2004 - Fixing 2000
PR #2003 - Adding generation parameter to gather to enable using it more than once
PR #2002 - Turn on position independent code to solve link problem with hpx_init
Issue #2001 - Gathering more than once segfaults
Issue #2000 - Undefined reference to hpx::assertion_failed
Issue #1999 - Seg fault in hpx::lcos::base_lco_with_value<*>::set_value_nonvirt() when running octo-tiger
PR #1998 - Detect unknown command line options
PR #1997 - Extending thread description
PR #1996 - Adding natvis files to solution (MSVC only)
Issue #1995 - Command line handling does not produce error
PR #1994 - Possible missing include in test_utils.hpp
PR #1993 - Add missing LANGUAGES tag to a hpx_add_compile_flag_if_available() call in CMakeLists.txt
PR #1992 - Fixing shared_executor_test
PR #1991 - Making sure the winsock library is properly initialized
PR #1990 - Fixing bind_test placeholder ambiguity coming from boost-1.60
PR #1989 - Performance tuning
PR #1987 - Make configurable size of internal storage in util::function
PR #1986 - AGAS Refactoring+1753 Cache mods
PR #1985 - Adding missing task_block::run() overload taking an executor
PR #1984 - Adding an optimized LRU Cache implementation (for AGAS)
PR #1983 - Avoid invoking migration table look up for all objects
PR #1981 - Replacing uintptr_t (which is not defined everywhere) with std::size_t
PR #1980 - Optimizing LCO continuations
PR #1979 - Fixing Cori
PR #1978 - Fix test check that got broken in hasty fix to memory overflow
PR #1977 - Refactor action traits
PR #1976 - Fixes typo in README.rst
PR #1975 - Reduce size of benchmark timing arrays to fix test failures
PR #1974 - Add action to update data owned by the partitioned_vector component
PR #1972 - Adding partitioned_vector SPMD example
PR #1971 - Fixing 1965
PR #1970 - Papi fixes
PR #1969 - Fixing continuation recursions to not depend on fixed amount of recursions
PR #1968 - More segmented algorithms
Issue #1967 - Simplify component implementations
PR #1966 - Migrate components
Issue #1964 - fatal error: ‘boost/lockfree/detail/branch_hints.hpp’ file not found
Issue #1962 - parallel:copy_if has race condition when used on in place arrays
PR #1963 - Fixing Static Parcelport initialization
PR #1961 - Fix function target
Issue #1960 - Papi counters don’t reset
PR #1959 - Fixing 1958
Issue #1958 - inclusive_scan gives incorrect results with non-commutative operator
PR #1957 - Fixing #1950
PR #1956 - Sort by key example
PR #1955 - Adding regression test for #1946: Hang in wait_all() in distributed run
Issue #1954 - HPX releases should not use -Werror
PR #1953 - Adding performance analysis for AGAS cache
PR #1952 - Adapting test for explicit variadics to fail for gcc 4.6
PR #1951 - Fixing memory leak
Issue #1950 - Simplify external builds
PR #1949 - Fixing yet another lock that is being held during suspension
PR #1948 - Fixed container algorithms for Intel
PR #1947 - Adding workaround for tagged_tuple
Issue #1946 - Hang in wait_all() in distributed run
PR #1945 - Fixed container algorithm tests
Issue #1944 - assertion ‘p.destination_locality() == hpx::get_locality()’ failed
PR #1943 - Fix a couple of compile errors with clang
PR #1942 - Making parcel coalescing functional
Issue #1941 - Re-enable parcel coalescing
PR #1940 - Touching up make_future
PR #1939 - Fixing problems in over-subscription management in the resource manager
PR #1938 - Removing use of unified Boost.Thread header
PR #1937 - Cleaning up the use of Boost.Accumulator headers
PR #1936 - Making sure interval timer is started for aggregating performance counters
PR #1935 - Tagged results
PR #1934 - Fix remote async with deferred launch policy
Issue #1933 - Floating point exception in
statistics_counter<boost::accumulators::tag::mean>::get_counter_value
PR #1932 - Removing superfluous includes of boost/lockfree/detail/branch_hints.hpp
PR #1931 - fix compilation with clang 3.8.0
Issue #1930 - Missing online documentation for HPX 0.9.11
PR #1929 - LWG2485: get() should be overloaded for const tuple&&
PR #1928 - Revert “Using ninja for circle-ci builds”
PR #1927 - Using ninja for circle-ci builds
PR #1926 - Fixing serialization of std::array
Issue #1925 - Issues with static HPX libraries
Issue #1924 - Performance degrading over time
Issue #1923 - serialization of std::array appears broken in latest commit
PR #1922 - Container algorithms
PR #1921 - Tons of smaller quality improvements
Issue #1920 - Seg fault in hpx::serialization::output_archive::add_gid when running octotiger
Issue #1919 - Intel 15 compiler bug preventing HPX build
PR #1918 - Address sanitizer fixes
PR #1917 - Fixing compilation problems of parallel::sort with Intel compilers
PR #1916 - Making sure code compiles if HPX_WITH_HWLOC=Off
Issue #1915 - max_cores undefined if HPX_WITH_HWLOC=Off
PR #1913 - Add utility member functions for partitioned_vector
PR #1912 - Adding support for invoking actions to dataflow
PR #1911 - Adding first batch of container algorithms
PR #1910 - Keep cmake_module_path
PR #1909 - Fix mpirun with pbs
PR #1908 - Changing parallel::sort to return the last iterator as proposed by N4560
PR #1907 - Adding a minimum version for Open MPI
PR #1906 - Updates to the Release Procedure
PR #1905 - Fixing #1903
PR #1904 - Making sure std containers are cleared before serialization loads data
Issue #1903 - When running octotiger, I get: assertion
'(*new_gids_)[gid].size() == 1' failed: HPX(assertion_failure)
Issue #1902 - Immediate crash when running hpx/octotiger with _GLIBCXX_DEBUG defined.
PR #1901 - Making non-serializable classes non-serializable
Issue #1900 - Two possible issues with std::list serialization
PR #1899 - Fixing a problem with credit splitting as revealed by #1898
Issue #1898 - Accessing component from locality where it was not created segfaults
PR #1897 - Changing parallel::sort to return the last iterator as proposed by N4560
Issue #1896 - version 1.0?
Issue #1895 - Warning comment on numa_allocator is not very clear
PR #1894 - Add support for compilers that have thread_local
PR #1893 - Fixing 1890
PR #1892 - Adds typed future_type for executor_traits
PR #1891 - Fix wording in certain parallel algorithm docs
Issue #1890 - Invoking papi counters give segfault
PR #1889 - Fixing problems as reported by clang-check
PR #1888 - WIP parallel is_heap
PR #1887 - Fixed resetting performance counters related to idle-rate, etc
Issue #1886 - Run hpx with qsub does not work
PR #1885 - Warning cleaning pass
PR #1884 - Add missing parallel algorithm header
PR #1883 - Add feature test for thread_local on Clang for TLS
PR #1882 - Fix some redundant qualifiers
Issue #1881 - Unable to compile Octotiger using HPX and Intel MPI on SuperMIC
Issue #1880 - clang with libc++ on Linux needs TLS case
PR #1879 - Doc fixes for #1868
PR #1878 - Simplify functions
PR #1877 - Removing most usage of Boost.Config
PR #1876 - Add missing parallel algorithms to algorithm.hpp
PR #1875 - Simplify callables
PR #1874 - Address long standing FIXME on using
std::unique_ptr
with incomplete typesPR #1873 - Fixing 1871
PR #1872 - Making sure PBS environment uses specified node list even if no PBS_NODEFILE env is available
Issue #1871 - Fortran checks should be optional
PR #1870 - Touch local::mutex
PR #1869 - Documentation refactoring based off #1868
PR #1867 - Embrace static_assert
PR #1866 - Fix #1803 with documentation refactoring
PR #1865 - Setting OUTPUT_NAME as target properties
PR #1863 - Use SYSTEM for boost includes
PR #1862 - Minor cleanups
PR #1861 - Minor Corrections for Release
PR #1860 - Fixing hpx gdb script
Issue #1859 - reset_active_counters resets times and thread counts before some of the counters are evaluated
PR #1858 - Release V0.9.11
PR #1857 - removing diskperf example from 9.11 release
PR #1856 - fix return in packaged_task_base::reset()
Issue #1842 - Install error: file INSTALL cannot find libhpx_parcel_coalescing.so.0.9.11
PR #1839 - Adding fedora docs
PR #1824 - Changing version on master to V0.9.12
PR #1818 - Fixing #1748
Issue #1815 - seg fault in AGAS
Issue #1803 - wait_all documentation
Issue #1796 - Outdated documentation to be revised
Issue #1759 - glibc munmap_chunk or free(): invalid pointer on SuperMIC
Issue #1753 - HPX performance degrades with time since execution begins
Issue #1748 - All public HPX headers need to be self contained
PR #1719 - How to build HPX with Visual Studio
Issue #1684 - Race condition when using –hpx:connect?
PR #1658 - Add serialization for std::set (as there is for std::vector and std::map)
PR #1641 - Generic client
Issue #1632 - heartbeat example fails on separate nodes
PR #1603 - Adds preferred namespace check to inspect tool
Issue #1559 - Extend inspect tool
Issue #1523 - Remote async with deferred launch policy never executes
Issue #1472 - Serialization issues
Issue #1457 - Implement N4392: C++ Latches and Barriers
PR #1444 - Enabling usage of moveonly types for component construction
Issue #1407 - The Intel 13 compiler has failing unit tests
Issue #1405 - Allow component constructors to take movable only types
Issue #1265 - Enable dataflow() to be usable with actions
Issue #1236 - NUMA aware allocators
Issue #802 - Fix Broken Examples
Issue #559 - Add hpx::migrate facility
Issue #449 - Make actions with template arguments usable and add documentation
Issue #279 - Refactor addressing_service into a base class and two derived classes
Issue #224 - Changing thread state metadata is not thread safe
Issue #55 - Uniform syntax for enums should be implemented