HPX V1.1.0 (Mar 24, 2018)¶
General changes¶
Here are some of the main highlights and changes for this release (in no particular order):
We have changed the way HPX manages the processing units on a node. We do not longer implicitly bind all available cores to a single thread pool. The user has now full control over what processing units are bound to what thread pool, each with a separate scheduler. It is now also possible to create your own scheduler implementation and control what processing units this scheduler should use. We added the
hpx::resource::partitioner
that manages all available processing units and assigns resources to the used thread pools. Thread pools can be now be suspended/resumed independently. This functionality helps in running HPX concurrently to code that is directly relying on OpenMP and/or MPI.We have continued to implement various parallel algorithms. HPX now almost completely implements all of the parallel algorithms as specified by the C++17 Standard. We have also continued to implement these algorithms for the distributed use case (for segmented data structures, such as
hpx::partitioned_vector
).Added a compatibility layer for
std::thread
,std::mutex
, andstd::condition_variable
allowing for the code to use those facilities where available and to fall back to the corresponding Boost facilities otherwise. The CMake configuration option-DHPX_WITH_THREAD_COMPATIBILITY=On
can be used to force using the Boost equivalents.The parameter sequence for the
hpx::parallel::transform_inclusive_scan
overload taking one iterator range has changed (again) to match the changes this algorithm has undergone while being moved to C++17. The old overloads can be still enabled at configure time by passing-DHPX_WITH_TRANSFORM_REDUCE_COMPATIBILITY=On
to CMake.The parameter sequence for the
hpx::parallel::inclusive_scan
overload taking one iterator range has changed to match the changes this algorithm has undergone while being moved to C++17. The old overloads can be still enabled at configure time by passing-DHPX_WITH_INCLUSIVE_SCAN_COMPATIBILITY=On
to CMake.Added a helper facility
hpx::local_new
which is equivalent tohpx::new_
except that it creates components locally only. As a consequence, the used component constructor may accept non-serializable argument types and/or non-const references or pointers.Removed the (broken) component type
hpx::lcos::queue<T>
. The old type is still available at configure time by passing-DHPX_WITH_QUEUE_COMPATIBILITY=On
to CMake.The parallel algorithms adopted for C++17 restrict the iterator categories usable with those to at least forward iterators. Our implementation of the parallel algorithms was supporting input iterators (and output iterators) as well by simply falling back to sequential execution. We have now made our implementations conforming by requiring at least forward iterators. In order to enable the old behavior use the compatibility option
-DHPX_WITH_ALGORITHM_INPUT_ITERATOR_SUPPORT=On
on the CMake command line.We have added the functionalities allowing for LCOs being implemented using (simple) components. Before LCOs had to always be implemented using managed components.
User defined components don’t have to be default-constructible anymore. Return types from actions don’t have to be default-constructible anymore either. Our serialization layer now in general supports non-default-constructible types.
We have added a new launch policy
hpx::launch::lazy
that allows oneto defer the decision on what launch policy to use to the point of execution. This policy is initialized with a function (object) that – when invoked – is expected to produce the desired launch policy.
Breaking changes¶
We have dropped support for the gcc compiler version V4.8. The minimal gcc version we now test on is gcc V4.9. The minimally required version of CMake is now V3.3.2.
We have dropped support for the Visual Studio 2013 compiler version. The minimal Visual Studio version we now test on is Visual Studio 2015.5.
We have dropped support for the Boost V1.51-V1.54. The minimal version of Boost we now test is Boost V1.55.
We have dropped support for the
hpx::util::unwrapped
API.hpx::util::unwrapped
will stay functional to some degree, until it finally gets removed in a later version of HPX. The functional usage ofhpx::util::unwrapped
should be changed to the newhpx::util::unwrapping
function whereas the immediate usage should be replaced tohpx::util::unwrap
.The performance counter names referring to properties as exposed by the threading subsystem have changes as those now additionally have to specify the thread-pool. See the corresponding documentation for more details.
The overloads of
hpx::async
that invoke an action do not perform implicit unwrapping of the returned future anymore in case the invoked function does return a future in the first place. In this casehpx::async
now returns ahpx::future<future<T>>
making its behavior conforming to its local counterpart.We have replaced the use of
boost::exception_ptr
in our APIs with the equivalentstd::exception_ptr
. Please change your codes accordingly. No compatibility settings are provided.We have removed the compatibility settings for
HPX_WITH_COLOCATED_BACKWARDS_COMPATIBILITY
andHPX_WITH_COMPONENT_GET_GID_COMPATIBILITY
as their life-cycle has reached its end.We have removed the experimental thread schedulers hierarchy_scheduler, periodic_priority_scheduler and throttling_scheduler in an effort to clean up and consolidate our thread schedulers.
Bug fixes (closed tickets)¶
Here is a list of the important tickets we closed for this release.
PR #3250 - Apex refactoring with guids
PR #3249 - Updating People.qbk
PR #3246 - Assorted fixes for CUDA
PR #3245 - Apex refactoring with guids
PR #3242 - Modify task counting in thread_queue.hpp
PR #3240 - Fixed typos
PR #3238 - Readding accidentally removed std::abort
PR #3237 - Adding Pipeline example
PR #3236 - Fixing memory_block
PR #3233 - Make schedule_thread take suspended threads into account
Issue #3226 - memory_block is breaking, signaling SIGSEGV on a thread on creation and freeing
PR #3225 - Applying quick fix for hwloc-2.0
Issue #3224 - HPX counters crashing the application
PR #3223 - Fix returns when setting config entries
Issue #3222 - Errors linking libhpx.so
Issue #3221 - HPX on Mac OS X with HWLoc 2.0.0 fails to run
PR #3216 - Reorder a variadic array to satisfy VS 2017 15.6
PR #3214 - Changed prerequisites.qbk to avoid confusion while building boost
PR #3213 - Relax locks for thread suspension to avoid holding locks when yielding
PR #3212 - Fix check in sequenced_executor test
PR #3211 - Use preinit_array to set argc/argv in init_globally example
PR #3210 - Adapted parallel::{search | search_n} for Ranges TS (see #1668)
PR #3209 - Fix locking problems during shutdown
Issue #3208 - init_globally throwing a run-time error
PR #3206 - Addition of new arithmetic performance counter “Count”
PR #3205 - Fixing return type calculation for bulk_then_execute
PR #3204 - Changing std::rand() to a better inbuilt PRNG generator
PR #3203 - Resolving problems during shutdown for VS2015
PR #3202 - Making sure resource partitioner is not accessed if its not valid
PR #3201 - Fixing optional::swap
Issue #3200 - hpx::util::optional fails
PR #3199 - Fix sliding_semaphore test
PR #3198 - Set pre_main status before launching run_helper
PR #3197 - Update README.rst
PR #3194 - parallel::{fill|fill_n} updated for Ranges TS
PR #3193 - Updating Runtime.cpp by adding correct description of Performance counters during register
PR #3191 - Fix sliding_semaphore_2338 test
PR #3190 - Topology improvements
PR #3189 - Deleting one include of median from BOOST library to arithmetics_counter file
PR #3188 - Optionally disable printing of diagnostics during terminate
PR #3187 - Suppressing cmake warning issued by cmake > V3.11
PR #3185 - Remove unused scoped_unlock, unlock_guard_try
PR #3184 - Fix nqueen example
PR #3183 - Add runtime start/stop, resume/suspend and OpenMP benchmarks
Issue #3182 - bulk_then_execute has unexpected return type/does not compile
Issue #3181 - hwloc 2.0 breaks topo class and cannot be used
Issue #3180 - Schedulers that don’t support suspend/resume are unusable
PR #3179 - Various minor changes to support FLeCSI
PR #3178 - Fix #3124
PR #3177 - Removed allgather
PR #3176 - Fixed Documentation for “using_hpx_pkgconfig”
PR #3174 - Add hpx::iostreams::ostream overload to format_to
PR #3172 - Fix lifo queue backend
PR #3171 - adding the missing unset() function to cpu_mask() for case of more than 64 threads
PR #3170 - Add cmake flag -DHPX_WITH_FAULT_TOLERANCE=ON (OFF by default)
PR #3169 - Adapted parallel::{count|count_if} for Ranges TS (see #1668)
PR #3168 - Changing used namespace for seq execution policy
Issue #3167 - Update GSoC projects
Issue #3166 - Application (Octotiger) gets stuck on hpx::finalize when only using one thread
Issue #3165 - Compilation of parallel algorithms with HPX_WITH_DATAPAR is broken
PR #3164 - Fixing component migration
PR #3162 - regex_from_pattern: escape regex special characters to avoid misinterpretation
Issue #3161 - Building HPX with hwloc 2.0.0 fails
PR #3160 - Fixing the handling of quoted command line arguments.
PR #3158 - Fixing a race with timed suspension (second attempt)
PR #3157 - Revert “Fixing a race with timed suspension”
PR #3156 - Fixing serialization of classes with incompatible serialize signature
PR #3154 - More refactorings based on clang-tidy reports
PR #3153 - Fixing a race with timed suspension
PR #3152 - Documentation for runtime suspension
PR #3151 - Use small_vector only from boost version 1.59 onwards
PR #3150 - Avoiding more stack overflows
PR #3148 - Refactoring component_base and base_action/transfer_base_action
PR #3147 - Move yield_while out of detail namespace and into own file
PR #3145 - Remove a leftover of the cxx11 std array cleanup
PR #3144 - Minor changes to how actions are executed
PR #3143 - Fix stack overhead
PR #3142 - Fix typo in config.hpp
PR #3141 - Fixing small_vector compatibility with older boost version
PR #3140 - is_heap_text fix
Issue #3139 - Error in is_heap_tests.hpp
PR #3138 - Partially reverting #3126
PR #3137 - Suspend speedup
PR #3136 - Revert “Fixing #2325”
PR #3135 - Improving destruction of threads
Issue #3134 - HPX_SERIALIZATION_SPLIT_FREE does not stop compiler from looking for serialize() method
PR #3133 - Make hwloc compulsory
PR #3132 - Update CXX14 constexpr feature test
PR #3131 - Fixing #2325
PR #3130 - Avoid completion handler allocation
PR #3129 - Suspend runtime
PR #3128 - Make docbook dtd and xsl path names consistent
PR #3127 - Add hpx::start nullptr overloads
PR #3126 - Cleaning up coroutine implementation
PR #3125 - Replacing nullptr with hpx::threads::invalid_thread_id
Issue #3124 - Add hello_world_component to CI builds
PR #3123 - Add new constructor.
PR #3122 - Fixing #3121
Issue #3121 - HPX_SMT_PAUSE is broken on non-x86 platforms when __GNUC__ is defined
PR #3120 - Don’t use boost::intrusive_ptr for thread_id_type
PR #3119 - Disable default executor compatibility with V1 executors
PR #3118 - Adding performance_counter::reinit to allow for dynamically changing counter sets
PR #3117 - Replace uses of boost/experimental::optional with util::optional
PR #3116 - Moving background thread APEX timer #2980
PR #3115 - Fixing race condition in channel test
PR #3114 - Avoid using util::function for thread function wrappers
PR #3113 - cmake V3.10.2 has changed the variable names used for MPI
PR #3112 - Minor fixes to exclusive_scan algorithm
PR #3111 - Revert “fix detection of cxx11_std_atomic”
PR #3110 - Suspend thread pool
PR #3109 - Fixing thread scheduling when yielding a thread id
PR #3108 - Revert “Suspend thread pool”
PR #3107 - Remove UB from thread::id relational operators
PR #3106 - Add cmake test for std::decay_t to fix cuda build
PR #3105 - Fixing refcount for async traversal frame
PR #3104 - Local execution of direct actions is now actually performed directly
PR #3103 - Adding support for generic counter_raw_values performance counter type
Issue #3102 - Introduce generic performance counter type returning an array of values
PR #3101 - Revert “Adapting stack overhead limit for gcc 4.9”
PR #3100 - Fix #3068 (condition_variable deadlock)
PR #3099 - Fixing lock held during suspension in papi counter component
PR #3098 - Unbreak broadcast_wait_for_2822 test
PR #3097 - Adapting stack overhead limit for gcc 4.9
PR #3096 - fix detection of cxx11_std_atomic
PR #3095 - Add ciso646 header to get _LIBCPP_VERSION for testing inplace merge
PR #3094 - Relax atomic operations on performance counter values
PR #3093 - Short-circuit all_of/any_of/none_of instantiations
PR #3092 - Take advantage of C++14 lambda capture initialization syntax, where possible
PR #3091 - Remove more references to Boost from logging code
PR #3090 - Unify use of yield/yield_k
PR #3089 - Fix a strange thing in parallel::detail::handle_exception. (Fix #2834.)
Issue #3088 - A strange thing in parallel::sort.
PR #3087 - Fixing assertion in default_distribution_policy
PR #3086 - Implement parallel::remove and parallel::remove_if
PR #3085 - Addressing breaking changes in Boost V1.66
PR #3084 - Ignore build warnings round 2
PR #3083 - Fix typo HPX_WITH_MM_PREFECTH
PR #3081 - Pre-decay template arguments early
PR #3080 - Suspend thread pool
PR #3079 - Ignore build warnings
PR #3078 - Don’t test inplace_merge with libc++
PR #3076 - Fixing 3075: Part 1
PR #3074 - Fix more build warnings
PR #3073 - Suspend thread cleanup
PR #3072 - Change existing symbol_namespace::iterate to return all data instead of invoking a callback
PR #3071 - Fixing pack_traversal_async test
PR #3070 - Fix dynamic_counters_loaded_1508 test by adding dependency to memory_component
PR #3069 - Fix scheduling loop exit
Issue #3068 - hpx::lcos::condition_variable could be suspect to deadlocks
PR #3067 - #ifdef out random_shuffle deprecated in later c++
PR #3066 - Make coalescing test depend on coalescing library to ensure it gets built
PR #3065 - Workaround for minimal_timed_async_executor_test compilation failures, attempts to copy a deferred call (in unevaluated context)
PR #3064 - Fixing wrong condition in wrapper_heap
PR #3062 - Fix exception handling for execution::seq
PR #3061 - Adapt MSVC C++ mode handling to VS15.5
PR #3060 - Fix compiler problem in MSVC release mode
PR #3059 - Fixing #2931
Issue #3058 - minimal_timed_async_executor_test_exe fails to compile on master (d6f505c)
PR #3057 - Fix stable_merge_2964 compilation problems
PR #3056 - Fix some build warnings caused by unused variables/unnecessary tests
PR #3055 - Update documentation for running tests
Issue #3054 - Assertion failure when using bulk hpx::new_ in asynchronous mode
PR #3052 - Do not bind test running to cmake test build rule
PR #3051 - Fix HPX-Qt interaction in Qt example.
Issue #3048 - nqueen example fails occasionally
PR #3047 - Fixing #3044
PR #3046 - Add OS thread suspension
PR #3042 - PyCicle - first attempt at a build toold for checking PR’s
PR #3041 - Fix a problem about asynchronous execution of parallel::merge and parallel::partition.
PR #3040 - Fix a mistake about exception handling in asynchronous execution of scan_partitioner.
PR #3039 - Consistently use executors to schedule work
PR #3038 - Fixing local direct function execution and lambda actions perfect forwarding
PR #3035 - Make parallel unit test names match build target/folder names
PR #3033 - Fix setting of default build type
Issue #3032 - Fix partitioner arg copy found in #2982
Issue #3031 - Errors linking libhpx.so due to missing references (master branch, commit 6679a8882)
PR #3030 - Revert “implement executor then interface with && forwarding reference”
PR #3029 - Run CI inspect checks before building
PR #3028 - Added range version of parallel::move
Issue #3027 - Implement all scheduling APIs in terms of executors
PR #3026 - implement executor then interface with && forwarding reference
PR #3025 - Fix typo unitialized to uninitialized
PR #3024 - Inspect fixes
PR #3023 - P0356 Simplified partial function application
PR #3022 - Master fixes
PR #3021 - Segfault fix
PR #3020 - Disable command-line aliasing for applications that use user_main
PR #3019 - Adding enable_elasticity option to pool configuration
PR #3018 - Fix stack overflow detection configuration in header files
PR #3017 - Speed up local action execution
PR #3016 - Unify stack-overflow detection options, remove reference to libsigsegv
PR #3015 - Speeding up accessing the resource partitioner and the topology info
Issue #3014 - HPX does not compile on POWER8 with gcc 5.4
Issue #3013 - hello_world occasionally prints multiple lines from a single OS-thread
PR #3012 - Silence warning about casting away qualifiers in itt_notify.hpp
PR #3011 - Fix cpuset leak in hwloc_topology_info.cpp
PR #3010 - Remove useless decay_copy
PR #3009 - Fixing 2996
PR #3008 - Remove unused internal function
PR #3007 - Fixing wrapper_heap alignment problems
Issue #3006 - hwloc memory leak
PR #3004 - Silence C4251 (needs to have dll-interface) for future_data_void
Issue #3003 - Suspension of runtime
PR #3001 - Attempting to avoid data races in async_traversal while evaluating dataflow()
PR #3000 - Adding hpx::util::optional as a first step to replace experimental::optional
PR #2998 - Cleanup up and Fixing component creation and deletion
Issue #2996 - Build fails with HPX_WITH_HWLOC=OFF
PR #2995 - Push more future_data functionality to source file
PR #2994 - WIP: Fix throttle test
PR #2993 - Making sure –hpx:help does not throw for required (but missing) arguments
PR #2992 - Adding non-blocking (on destruction) service executors
Issue #2991 - run_as_os_thread locks up
Issue #2990 - –help will not work until all required options are provided
PR #2989 - Improve error messages caused by misuse of dataflow
PR #2988 - Improve error messages caused by misuse of .then
Issue #2987 - stack overflow detection producing false positives
PR #2986 - Deduplicate non-dependent thread_info logging types
PR #2985 - Adapted parallel::{all_of|any_of|none_of} for Ranges TS (see #1668)
PR #2984 - Refactor one_size_heap code to simplify code
PR #2983 - Fixing local_new_component
PR #2982 - Clang tidy
PR #2981 - Simplify allocator rebinding in pack traversal
PR #2979 - Fixing integer overflows
PR #2978 - Implement parallel::inplace_merge
Issue #2977 - Make hwloc compulsory instead of optional
PR #2976 - Making sure client_base instance that registered the component does not unregister it when being destructed
PR #2975 - Change version of pulled APEX to master
PR #2974 - Fix domain not being freed at the end of scheduling loop
PR #2973 - Fix small typos
PR #2972 - Adding uintstd.h header
PR #2971 - Fall back to creating local components using local_new
PR #2970 - Improve is_tuple_like trait
PR #2969 - Fix HPX_WITH_MORE_THAN_64_THREADS default value
PR #2968 - Cleaning up dataflow overload set
PR #2967 - Make parallel::merge is stable. (Fix #2964.)
PR #2966 - Fixing a couple of held locks during exception handling
PR #2965 - Adding missing #include
Issue #2964 - parallel merge is not stable
PR #2963 - Making sure any function object passed to dataflow is released after being invoked
PR #2962 - Partially reverting #2891
PR #2961 - Attempt to fix the gcc 4.9 problem with the async pack traversal
Issue #2959 - Program terminates during error handling
Issue #2958 - HPX_PLAIN_ACTION breaks due to missing include
PR #2957 - Fixing errors generated by mixing different attribute syntaxes
Issue #2956 - Mixing attribute syntaxes leads to compiler errors
Issue #2955 - Fix OS-Thread throttling
PR #2953 - Making sure any hpx.os_threads=N supplied through a –hpx::config file is taken into account
PR #2952 - Removing wrong call to cleanup_terminated_locked
PR #2951 - Revert “Make sure the function vtables are initialized before use”
PR #2950 - Fix a namespace compilation error when some schedulers are disabled
Issue #2949 - master branch giving lockups on shutdown
Issue #2947 - hpx.ini is not used correctly at initialization
PR #2946 - Adding explicit feature test for thread_local
PR #2945 - Make sure the function vtables are initialized before use
PR #2944 - Attempting to solve affinity problems on CircleCI
PR #2943 - Changing channel actions to be direct
PR #2942 - Adding split_future for std::vector
PR #2941 - Add a feature test to test for CXX11 override
Issue #2940 - Add split_future for future<vector<T>>
PR #2939 - Making error reporting during problems with setting affinity masks more verbose
PR #2938 - Fix this various executors
PR #2937 - Fix some typos in documentation
PR #2934 - Remove the need for “complete” SFINAE checks
PR #2933 - Making sure parallel::for_loop is executed in parallel if requested
PR #2932 - Classify chunk_size_iterator to input iterator tag. (Fix #2866)
Issue #2931 - –hpx:help triggers unusual error with clang build
PR #2930 - Add #include files needed to set _POSIX_VERSION for debug check
PR #2929 - Fix a couple of deprecated c++ features
PR #2928 - Fixing execution parameters
Issue #2927 - CMake warning: … cycle in constraint graph
PR #2926 - Default pool rename
Issue #2925 - Default pool cannot be renamed
Issue #2924 - hpx:attach-debugger=startup does not work any more
PR #2923 - Alloc membind
PR #2922 - This fixes CircleCI errors when running with –hpx:bind=none
PR #2921 - Custom pool executor was missing priority and stacksize options
PR #2920 - Adding test to trigger problem reported in #2916
PR #2919 - Make sure the resource_partitioner is properly destructed on hpx::finalize
Issue #2918 - hpx::init calls wrong (first) callback when called multiple times
PR #2917 - Adding util::checkpoint
Issue #2916 - Weird runtime failures when using a channel and chained continuations
PR #2915 - Introduce executor parameters customization points
Issue #2914 - Task assignment to current Pool has unintended consequences
PR #2913 - Fix rp hang
PR #2912 - Update contributors
PR #2911 - Fixing CUDA problems
PR #2910 - Improve error reporting for process component on POSIX systems
PR #2909 - Fix typo in include path
PR #2908 - Use proper container according to iterator tag in benchmarks of parallel algorithms
PR #2907 - Optionally force-delete remaining channel items on close
PR #2906 - Making sure generated performance counter names are correct
Issue #2905 - collecting idle-rate performance counters on multiple localities produces an error
Issue #2904 - build broken for Intel 17 compilers
PR #2903 - Documentation Updates– Adding New People
PR #2902 - Fixing service_executor
PR #2901 - Fixing partitioned_vector creation
PR #2900 - Add numa-balanced mode to hpx::bind, spread cores over numa domains
Issue #2899 - hpx::bind does not have a mode that balances cores over numa domains
PR #2898 - Adding missing #include and missing guard for optional code section
PR #2897 - Removing dependency on Boost.ICL
Issue #2896 - Debug build fails without -fpermissive with GCC 7.1 and Boost 1.65
PR #2895 - Fixing SLURM environment parsing
PR #2894 - Fix incorrect handling of compile definition with value 0
Issue #2893 - Disabling schedulers causes build errors
PR #2892 - added list serializer
PR #2891 - Resource Partitioner Fixes
Issue #2890 - Destroying a non-empty channel causes an assertion failure
PR #2889 - Add check for libatomic
PR #2888 - Fix compilation problems if HPX_WITH_ITT_NOTIFY=ON
PR #2887 - Adapt broadcast() to non-unwrapping async<Action>
PR #2886 - Replace Boost.Random with C++11 <random>
Issue #2885 - regression in broadcast?
Issue #2884 - linking
-latomic
is not portablePR #2883 - Explicitly set -pthread flag if available
PR #2882 - Wrap boost::format uses
Issue #2881 - hpx not compiling with
HPX_WITH_ITTNOTIFY=On
Issue #2880 - hpx::bind scatter/balanced give wrong pu masks
PR #2878 - Fix incorrect pool usage masks setup in RP/thread manager
PR #2877 - Require
std::array
by defaultPR #2875 - Deprecate use of BOOST_ASSERT
PR #2874 - Changed serialization of boost.variant to use variadic templates
Issue #2873 - building with parcelport_mpi fails on cori
PR #2871 - Adding missing support for throttling scheduler
PR #2870 - Disambiguate use of base_lco_with_value macros with channel
Issue #2869 - Difficulty compiling
HPX_REGISTER_CHANNEL_DECLARATION(double)
PR #2868 - Removing unneeded assert
PR #2867 - Implement parallel::unique
Issue #2866 - The chunk_size_iterator violates multipass guarantee
PR #2865 - Only use sched_getcpu on linux machines
PR #2864 - Create redistribution archive for successful builds
PR #2863 - Replace casts/assignments with hard-coded memcpy operations
Issue #2862 - sched_getcpu not available on MacOS
PR #2861 - Fixing unmatched header defines and recursive inclusion of threadmanager
Issue #2860 - Master program fails with assertion ‘type == data_type_address’ failed: HPX(assertion_failure)
Issue #2852 - Support for ARM64
PR #2858 - Fix misplaced #if #endif’s that cause build failure without THREAD_CUMULATIVE_COUNTS
PR #2857 - Fix some listing in documentation
PR #2856 - Fixing component handling for lcos
PR #2855 - Add documentation for coarrays
PR #2854 - Support ARM64 in timestamps
PR #2853 - Update Table 17. Non-modifying Parallel Algorithms in Documentation
PR #2851 - Allowing for non-default-constructible component types
PR #2850 - Enable returning future<R> from actions where R is not default-constructible
PR #2849 - Unify serialization of non-default-constructable types
Issue #2848 - Components have to be default constructible
Issue #2847 - Returning a future<R> where R is not default-constructable broken
Issue #2846 - Unify serialization of non-default-constructible types
PR #2845 - Add Visual Studio 2015 to the tested toolchains in Appveyor
Issue #2844 - Change the appveyor build to use the minimal required MSVC version
Issue #2843 - multi node hello_world hangs
PR #2842 - Correcting Spelling mistake in docs
PR #2841 - Fix usage of std::aligned_storage
PR #2840 - Remove constexpr from a void function
Issue #2839 - memcpy buffer overflow: load_construct_data() and std::complex members
Issue #2835 -
constexpr
functions withvoid
return type break compilation with CUDA 8.0Issue #2834 - One suspicion in parallel::detail::handle_exception
PR #2833 - Implement parallel::merge
PR #2832 - Fix a strange thing in parallel::util::detail::handle_local_exceptions. (Fix #2818)
PR #2830 - Break the debugger when a test failed
Issue #2831 -
parallel/executors/execution_fwd.hpp
causes compilation failure in C++11 mode.PR #2829 - Implement an API for asynchronous pack traversal
PR #2828 - Split unit test builds on CircleCI to avoid timeouts
Issue #2827 - failure to compile hello_world example with -Werror
PR #2824 - Making sure promises are marked as started when used as continuations
PR #2823 - Add documentation for partitioned_vector_view
Issue #2822 - Yet another issue with wait_for similar to #2796
PR #2821 - Fix bugs and improve that about HPX_HAVE_CXX11_AUTO_RETURN_VALUE of CMake
PR #2820 - Support C++11 in benchmark codes of parallel::partition and parallel::partition_copy
PR #2819 - Fix compile errors in unit test of container version of parallel::partition
Issue #2818 - A strange thing in parallel::util::detail::handle_local_exceptions
Issue #2815 - HPX fails to compile with HPX_WITH_CUDA=ON and the new CUDA 9.0 RC
Issue #2814 - Using ‘gmakeN’ after ‘cmake’ produces error in src/CMakeFiles/hpx.dir/runtime/agas/addressing_service.cpp.o
PR #2813 - Properly support [[noreturn]] attribute if available
Issue #2812 - Compilation fails with gcc 7.1.1
PR #2811 - Adding hpx::launch::lazy and support for async, dataflow, and future::then
PR #2810 - Add option allowing to disable deprecation warning
PR #2809 - Disable throttling scheduler if HWLOC is not found/used
PR #2808 - Fix compile errors on some environments of parallel::partition
Issue #2807 - Difficulty building with
HPX_WITH_HWLOC=Off
PR #2806 - Partitioned vector
PR #2805 - Serializing collections with non-default constructible data
PR #2802 - Fix FreeBSD 11
Issue #2801 - Rate limiting techniques in io_service
Issue #2800 - New Launch Policy: async_if
PR #2799 - Fix a unit test failure on GCC in tuple_cat
PR #2798 - bump minimum required cmake to 3.0 in test
PR #2797 - Making sure future::wait_for et.al. work properly for action results
Issue #2796 - wait_for does always in “deferred” state for calls on remote localities
Issue #2795 - Serialization of types without default constructor
PR #2794 - Fixing test for partitioned_vector iteration
PR #2792 - Implemented segmented find and its variations for partitioned vector
PR #2791 - Circumvent scary warning about placement new
PR #2790 - Fix OSX build
PR #2789 - Resource partitioner
PR #2788 - Adapt parallel::is_heap and parallel::is_heap_until to Ranges TS
PR #2787 - Unwrap hotfixes
PR #2786 - Update CMake Minimum Version to 3.3.2 (refs #2565)
Issue #2785 - Issues with masks and cpuset
PR #2784 - Error with reduce and transform reduce fixed
PR #2783 - StackOverflow integration with libsigsegv
PR #2782 - Replace boost::atomic with std::atomic (where possible)
PR #2781 - Check for and optionally use [[deprecated]] attribute
PR #2780 - Adding empty (but non-trivial) destructor to circumvent warnings
PR #2779 - Exception info tweaks
PR #2778 - Implement parallel::partition
PR #2777 - Improve error handling in gather_here/gather_there
PR #2776 - Fix a bug in compiler version check
PR #2775 - Fix compilation when HPX_WITH_LOGGING is OFF
PR #2774 - Removing dependency on Boost.Date_Time
PR #2773 - Add sync_images() method to spmd_block class
PR #2772 - Adding documentation for PAPI counters
PR #2771 - Removing boost preprocessor dependency
PR #2770 - Adding test, fixing deadlock in config registry
PR #2769 - Remove some other warnings and errors detected by clang 5.0
Issue #2768 - Is there iterator tag for HPX?
PR #2767 - Improvements to continuation annotation
PR #2765 - gcc split stack support for HPX threads #620
PR #2764 - Fix some uses of begin/end, remove unnecessary includes
PR #2763 - Bump minimal Boost version to 1.55.0
PR #2762 - hpx::partitioned_vector serializer
PR #2761 - Adding configuration summary to cmake output and –hpx:info
PR #2760 - Removing 1d_hydro example as it is broken
PR #2758 - Remove various warnings detected by clang 5.0
Issue #2757 - In case of a “raw thread” is needed per core for implementing parallel algorithm, what is good practice in HPX?
PR #2756 - Allowing for LCOs to be simple components
PR #2755 - Removing make_index_pack_unrolled
PR #2754 - Implement parallel::unique_copy
PR #2753 - Fixing detection of [[fallthrough]] attribute
PR #2752 - New thread priority names
PR #2751 - Replace boost::exception with proposed exception_info
PR #2750 - Replace boost::iterator_range
PR #2749 - Fixing hdf5 examples
Issue #2748 - HPX fails to build with enabled hdf5 examples
Issue #2747 - Inherited task priorities break certain DAG optimizations
Issue #2746 - HPX segfaulting with valgrind
PR #2745 - Adding extended arithmetic performance counters
PR #2744 - Adding ability to statistics counters to reset base counter
Issue #2743 - Statistics counter does not support resetting
PR #2742 - Making sure Vc V2 builds without additional HPX configuration flags
PR #2741 - Deprecate unwrapped and implement unwrap and unwrapping
PR #2740 - Coroutine stackoverflow detection for linux/posix; Issue #2408
PR #2739 - Add files via upload
PR #2738 - Appveyor support
PR #2737 - Fixing 2735
Issue #2736 - 1d_hydro example doesn’t work
Issue #2735 - partitioned_vector_subview test failing
PR #2734 - Add C++11 range utilities
PR #2733 - Adapting iterator requirements for parallel algorithms
PR #2732 - Integrate C++ Co-arrays
PR #2731 - Adding on_migrated event handler to migratable component instances
Issue #2729 - Add on_migrated() event handler to migratable components
Issue #2728 - Why Projection is needed in parallel algorithms?
PR #2727 - Cmake files for StackOverflow Detection
PR #2726 - CMake for Stack Overflow Detection
PR #2725 - Implemented segmented algorithms for partitioned vector
PR #2724 - Fix examples in Action documentation
PR #2723 - Enable lcos::channel<T>::register_as
Issue #2722 - channel register_as() failing on compilation
PR #2721 - Mind map
PR #2720 - reorder forward declarations to get rid of C++14-only auto return types
PR #2719 - Add documentation for partitioned_vector and add features in pack.hpp
Issue #2718 - Some forward declarations in execution_fwd.hpp aren’t C++11-compatible
PR #2717 - Config support for fallthrough attribute
PR #2716 - Implement parallel::partition_copy
PR #2715 - initial import of icu string serializer
PR #2714 - initial import of valarray serializer
PR #2713 - Remove slashes before CMAKE_FILES_DIRECTORY variables
PR #2712 - Fixing wait for 1751
PR #2711 - Adjust code for minimal supported GCC having being bumped to 4.9
PR #2710 - Adding code of conduct
PR #2709 - Fixing UB in destroy tests
PR #2708 - Add inline to prevent multiple definition issue
Issue #2707 - Multiple defined symbols for task_block.hpp in VS2015
PR #2706 - Adding .clang-format file
PR #2704 - Add a synchronous mapping API
Issue #2703 - Request: Add the .clang-format file to the repository
Issue #2702 - STEllAR-GROUP/Vc slower than VCv1 possibly due to wrong instructions generated
Issue #2701 - Datapar with STEllAR-GROUP/Vc requires obscure flag
Issue #2700 - Naming inconsistency in parallel algorithms
Issue #2699 - Iterator requirements are different from standard in parallel copy_if.
PR #2698 - Properly releasing parcelport write handlers
Issue #2697 - Compile error in addressing_service.cpp
Issue #2696 - Building and using HPX statically: undefined references from runtime_support_server.cpp
Issue #2695 - Executor changes cause compilation failures
PR #2694 - Refining C++ language mode detection for MSVC
PR #2693 - P0443 r2
PR #2692 - Partially reverting changes to parcel_await
Issue #2689 - HPX build fails when HPX_WITH_CUDA is enabled
PR #2688 - Make Cuda Clang builds pass
PR #2687 - Add an is_tuple_like trait for sequenceable type detection
PR #2686 - Allowing throttling scheduler to be used without idle backoff
PR #2685 - Add support of std::array to hpx::util::tuple_size and tuple_element
PR #2684 - Adding new statistics performance counters
PR #2683 - Replace boost::exception_ptr with std::exception_ptr
Issue #2682 - HPX does not compile with HPX_WITH_THREAD_MANAGER_IDLE_BACKOFF=OFF
PR #2681 - Attempt to fix problem in managed_component_base
PR #2680 - Fix bad size during archive creation
Issue #2679 - Mismatch between size of archive and container
Issue #2678 - In parallel algorithm, other tasks are executed to the end even if an exception occurs in any task.
PR #2677 - Adding include check for std::addressof
PR #2676 - Adding parallel::destroy and destroy_n
PR #2675 - Making sure statistics counters work as expected
PR #2674 - Turning assertions into exceptions
PR #2673 - Inhibit direct conversion from future<future<T>> –> future<void>
PR #2672 - C++17 invoke forms
PR #2671 - Adding uninitialized_value_construct and uninitialized_value_construct_n
PR #2670 - Integrate spmd multidimensional views for partitioned_vectors
PR #2669 - Adding uninitialized_default_construct and uninitialized_default_construct_n
PR #2668 - Fixing documentation index
Issue #2667 - Ambiguity of nested hpx::future<void>’s
Issue #2666 - Statistics Performance counter is not working
PR #2664 - Adding uninitialized_move and uninitialized_move_n
Issue #2663 - Seg fault in managed_component::get_base_gid, possibly cause by util::reinitializable_static
Issue #2662 - Crash in managed_component::get_base_gid due to problem with util::reinitializable_static
PR #2665 - Hide the
detail
namespace in doxygen per defaultPR #2660 - Add documentation to hpx::util::unwrapped and hpx::util::unwrapped2
PR #2659 - Improve integration with vcpkg
PR #2658 - Unify access_data trait for use in both, serialization and de-serialization
PR #2657 - Removing hpx::lcos::queue<T>
PR #2656 - Reduce MAX_TERMINATED_THREADS default, improve memory use on manycore cpus
PR #2655 - Mainteinance for emulate-deleted macros
PR #2654 - Implement parallel is_heap and is_heap_until
PR #2653 - Drop support for VS2013
PR #2652 - This patch makes sure that all parcels in a batch are properly handled
PR #2649 - Update docs (Table 18) - move transform to end
Issue #2647 - hpx::parcelset::detail::parcel_data::has_continuation_ is uninitialized
Issue #2644 - Some .vcxproj in the HPX.sln fail to build
Issue #2641 -
hpx::lcos::queue
should be deprecatedPR #2640 - A new throttling policy with public APIs to suspend/resume
PR #2639 - Fix a tiny typo in tutorial.
Issue #2638 - Invalid return type ‘void’ of constexpr function
PR #2636 - Add and use HPX_MSVC_WARNING_PRAGMA for #pragma warning
PR #2633 - Distributed define_spmd_block
PR #2632 - Making sure container serialization uses size-compatible types
PR #2631 - Add lcos::local::one_element_channel
PR #2629 - Move unordered_map out of parcelport into hpx/concurrent
PR #2628 - Making sure that shutdown does not hang
PR #2627 - Fix serialization
PR #2626 - Generate
cmake_variables.qbk
andcmake_toolchains.qbk
outside of the source treePR #2625 - Supporting -std=c++17 flag
PR #2624 - Fixing a small cmake typo
PR #2622 - Update CMake minimum required version to 3.0.2 (closes #2621)
Issue #2621 - Compiling hpx master fails with /usr/bin/ld: final link failed: Bad value
PR #2620 - Remove warnings due to some captured variables
PR #2619 - LF multiple parcels
PR #2618 - Some fixes to libfabric that didn’t get caught before the merge
PR #2617 - Adding
hpx::local_new
PR #2616 - Documentation: Extract all entities in order to autolink functions correctly
Issue #2615 - Documentation: Linking functions is broken
PR #2614 - Adding serialization for std::deque
PR #2613 - We need to link with boost.thread and boost.chrono if we use boost.context
PR #2612 - Making sure for_loop_n(par, …) is actually executed in parallel
PR #2611 - Add documentation to invoke_fused and friends NFC
PR #2610 - Added reduction templates using an identity value
PR #2608 - Fixing some unused vars in inspect
PR #2607 - Fixed build for mingw
PR #2606 - Supporting generic context for boost >= 1.61
PR #2605 - Parcelport libfabric3
PR #2604 - Adding allocator support to promise and friends
PR #2603 - Barrier hang
PR #2602 - Changes to scheduler to steal from one high-priority queue
Issue #2601 - High priority tasks are not executed first
PR #2600 - Compat fixes
PR #2599 - Compatibility layer for threading support
PR #2598 - V1.1
PR #2597 - Release V1.0
PR #2592 - First attempt to introduce spmd_block in hpx
PR #2586 - local_segment in segmented_iterator_traits
Issue #2584 - Add allocator support to promise, packaged_task and friends
PR #2576 - Add missing dependencies of cuda based tests
PR #2575 - Remove warnings due to some captured variables
Issue #2574 - MSVC 2015 Compiler crash when building HPX
Issue #2568 - Remove throttle_scheduler as it has been abandoned
Issue #2566 - Add an inline versioning namespace before 1.0 release
Issue #2565 - Raise minimal cmake version requirement
PR #2556 - Fixing scan partitioner
PR #2546 - Broadcast async
Issue #2543 - make install fails due to a non-existing .so file
PR #2495 - wait_or_add_new returning thread_id_type
Issue #2480 - Unable to register new performance counter
Issue #2471 - no type named ‘fcontext_t’ in namespace
Issue #2456 - Re-implement hpx::util::unwrapped
Issue #2455 - Add more arithmetic performance counters
PR #2454 - Fix a couple of warnings and compiler errors
PR #2453 - Timed executor support
PR #2447 - Implementing new executor API (P0443)
Issue #2439 - Implement executor proposal
Issue #2408 - Stackoverflow detection for linux, e.g. based on libsigsegv
PR #2377 - Add a customization point for put_parcel so we can override actions
Issue #2368 - HPX_ASSERT problem
Issue #2324 - Change default number of threads used to the maximum of the system
Issue #2266 - hpx_0.9.99 make tests fail
PR #2195 - Support for code completion in VIM
Issue #2137 - Hpx does not compile over osx
Issue #2092 - make tests should just build the tests
Issue #2026 - Build HPX with Apple’s clang
Issue #1932 - hpx with PBS fails on multiple localities
PR #1914 - Parallel heap algorithm implementations WIP
Issue #1598 - Disconnecting a locality results in segfault using heartbeat example
Issue #1404 - unwrapped doesn’t work with movable only types
Issue #1400 - hpx::util::unwrapped doesn’t work with non-future types
Issue #1205 - TSS is broken
Issue #1126 - vector<future<T> > does not work gracefully with dataflow, when_all and unwrapped
Issue #1056 - Thread manager cleanup
Issue #863 - Futures should not require a default constructor
Issue #856 - Allow runtimemode_connect to be used with security enabled
Issue #726 - Valgrind
Issue #701 - Add RCR performance counter component
Issue #528 - Add support for known failures and warning count/comparisons to hpx_run_tests.py