HPX V0.9.9 (Oct 31, 2014, codename Spooky)¶
General changes¶
We have had over 1500 commits since the last release and we have closed over 200 tickets (bugs, feature requests, pull requests, etc.). These are by far the largest numbers of commits and resolved issues for any of the HPX releases so far. We are especially happy about the large number of people who contributed for the first time to HPX.
We completed the transition from the older (non-conforming) implementation of
hpx::future
to the new and fully conforming version by removing the old code and by renaming the typehpx::unique_future
tohpx::future
. In order to maintain backwards compatibility with existing code which uses the typehpx::unique_future
we support the configuration variableHPX_UNIQUE_FUTURE_ALIAS
. If this variable is set toON
while running cmake it will additionally define a template alias for this type.We rewrote and significantly changed our build system. Please have a look at the new (now generated) documentation here: HPX build system. Please revisit your build scripts to adapt to the changes. The most notable changes are:
HPX_NO_INSTALL
is no longer necessary.For external builds, you need to set
HPX_DIR
instead ofHPX_ROOT
as described here: Using HPX with CMake-based projects.IDEs that support multiple configurations (Visual Studio and XCode) can now be used as intended. that means no build dir.
Building HPX statically (without dynamic libraries) is now supported (
-DHPX_STATIC_LINKING=On
).Please note that many variables used to configure the build process have been renamed to unify the naming conventions (see the section CMake variables used to configure HPX for more information).
This also fixes a long list of issues, for more information see Issue #1204.
We started to implement various proposals to the C++ Standardization committee related to parallelism and concurrency, most notably N4409 (Working Draft, Technical Specification for C++ Extensions for Parallelism), N4411 (Task Region Rev. 3), and N4313 (Working Draft, Technical Specification for C++ Extensions for Concurrency).
We completely remodeled our automatic build system to run builds and unit tests on various systems and compilers. This allows us to find most bugs right as they were introduced and helps to maintain a high level of quality and compatibility. The newest build logs can be found at HPX Buildbot Website.
Bug fixes (closed tickets)¶
Here is a list of the important tickets we closed for this release.
Issue #1296 - Rename make_error_future to make_exceptional_future, adjust to N4123
Issue #1295 - building issue
Issue #1293 - Transpose example
Issue #1292 - Wrong abs() function used in example
Issue #1291 - non-synchronized shift operators have been removed
Issue #1290 - RDTSCP is defined as true for Xeon Phi build
Issue #1289 - Fixing 1288
Issue #1288 - Add new performance counters
Issue #1287 - Hierarchy scheduler broken performance counters
Issue #1286 - Algorithm cleanup
Issue #1285 - Broken Links in Documentation
Issue #1284 - Uninitialized copy
Issue #1283 - missing boost::scoped_ptr includes
Issue #1282 - Update documentation of build options for schedulers
Issue #1281 - reset idle rate counter
Issue #1280 - Bug when executing on Intel MIC
Issue #1279 - Add improved when_all/wait_all
Issue #1278 - Implement improved when_all/wait_all
Issue #1277 - feature request: get access to argc argv and variables_map
Issue #1276 - Remove merging map
Issue #1274 - Weird (wrong) string code in papi.cpp
Issue #1273 - Sequential task execution policy
Issue #1272 - Avoid CMake name clash for Boost.Thread library
Issue #1271 - Updates on HPX Test Units
Issue #1270 - hpx/util/safe_lexical_cast.hpp is added
Issue #1269 - Added default value for “LIB” cmake variable
Issue #1268 - Memory Counters not working
Issue #1266 - FindHPX.cmake is not installed
Issue #1263 - apply_remote test takes too long
Issue #1262 - Chrono cleanup
Issue #1261 - Need make install for papi counters and this builds all the examples
Issue #1260 - Documentation of Stencil example claims
Issue #1259 - Avoid double-linking Boost on Windows
Issue #1257 - Adding additional parameter to create_thread
Issue #1256 - added buildbot changes to release notes
Issue #1255 - Cannot build MiniGhost
Issue #1253 - hpx::thread defects
Issue #1252 - HPX_PREFIX is too fragile
Issue #1250 - switch_to_fiber_emulation does not work properly
Issue #1249 - Documentation is generated under Release folder
Issue #1248 - Fix usage of hpx_generic_coroutine_context and get tests passing on powerpc
Issue #1247 - Dynamic linking error
Issue #1246 - Make cpuid.cpp C++11 compliant
Issue #1245 - HPX fails on startup (setting thread affinity mask)
Issue #1244 - HPX_WITH_RDTSC configure test fails, but should succeed
Issue #1243 - CTest dashboard info for CSCS CDash drop location
Issue #1242 - Mac fixes
Issue #1241 - Failure in Distributed with Boost 1.56
Issue #1240 - fix a race condition in examples.diskperf
Issue #1239 - fix wait_each in examples.diskperf
Issue #1238 - Fixed #1237: hpx::util::portable_binary_iarchive failed
Issue #1237 - hpx::util::portable_binary_iarchive faileds
Issue #1235 - Fixing clang warnings and errors
Issue #1234 - TCP runs fail: Transport endpoint is not connected
Issue #1233 - Making sure the correct number of threads is registered with AGAS
Issue #1232 - Fixing race in wait_xxx
Issue #1231 - Parallel minmax
Issue #1230 - Distributed run of 1d_stencil_8 uses less threads than spec. & sometimes gives errors
Issue #1229 - Unstable number of threads
Issue #1228 - HPX link error (cmake / MPI)
Issue #1226 - Warning about struct/class thread_counters
Issue #1225 - Adding parallel::replace etc
Issue #1224 - Extending dataflow to pass through non-future arguments
Issue #1223 - Remaining find algorithms implemented, N4071
Issue #1222 - Merging all the changes
Issue #1221 - No error output when using mpirun with hpx
Issue #1219 - Adding new AGAS cache performance counters
Issue #1216 - Fixing using futures (clients) as arguments to actions
Issue #1215 - Error compiling simple component
Issue #1214 - Stencil docs
Issue #1213 - Using more than a few dozen MPI processes on SuperMike results in a seg fault before getting to hpx_main
Issue #1212 - Parallel rotate
Issue #1211 - Direct actions cause the future’s shared_state to be leaked
Issue #1210 - Refactored local::promise to be standard conformant
Issue #1209 - Improve command line handling
Issue #1208 - Adding parallel::reverse and parallel::reverse_copy
Issue #1207 - Add copy_backward and move_backward
Issue #1206 - N4071 additional algorithms implemented
Issue #1204 - Cmake simplification and various other minor changes
Issue #1203 - Implementing new launch policy for (local) async:
hpx::launch::fork
.Issue #1202 - Failed assertion in connection_cache.hpp
Issue #1201 - pkg-config doesn’t add mpi link directories
Issue #1200 - Error when querying time performance counters
Issue #1199 - library path is now configurable (again)
Issue #1198 - Error when querying performance counters
Issue #1197 - tests fail with intel compiler
Issue #1196 - Silence several warnings
Issue #1195 - Rephrase initializers to work with VC++ 2012
Issue #1194 - Simplify parallel algorithms
Issue #1193 - Adding
parallel::equal
Issue #1192 - HPX(out_of_memory) on including <hpx/hpx.hpp>
Issue #1191 - Fixing #1189
Issue #1190 - Chrono cleanup
Issue #1189 - Deadlock .. somewhere? (probably serialization)
Issue #1188 - Removed
future::get_status()
Issue #1186 - Fixed FindOpenCL to find current AMD APP SDK
Issue #1184 - Tweaking future unwrapping
Issue #1183 - Extended
parallel::reduce
Issue #1182 -
future::unwrap
hangs forlaunch::deferred
Issue #1181 - Adding
all_of
,any_of
, andnone_of
and corresponding documentationIssue #1180 -
hpx::cout
defectIssue #1179 -
hpx::async
does not work for member function pointers when called on types with self-defined unaryoperator*
Issue #1178 - Implemented variadic
hpx::util::zip_iterator
Issue #1177 - MPI parcelport defect
Issue #1176 -
HPX_DEFINE_COMPONENT_CONST_ACTION_TPL
does not have a 2-argument versionIssue #1175 - Create util::zip_iterator working with util::tuple<>
Issue #1174 - Error Building HPX on linux, root_certificate_authority.cpp
Issue #1173 - hpx::cout output lost
Issue #1172 - HPX build error with Clang 3.4.2
Issue #1171 -
CMAKE_INSTALL_PREFIX
ignoredIssue #1170 - Close hpx_benchmarks repository on Github
Issue #1169 - Buildbot emails have syntax error in url
Issue #1167 - Merge partial implementation of standards proposal N3960
Issue #1166 - Fixed several compiler warnings
Issue #1165 - cmake warns: “tests.regressions.actions” does not exist
Issue #1164 - Want my own serialization of hpx::future
Issue #1162 - Segfault in hello_world example
Issue #1161 - Use
HPX_ASSERT
to aid the compilerIssue #1160 - Do not put -DNDEBUG into hpx_application.pc
Issue #1159 - Support Clang 3.4.2
Issue #1158 - Fixed #1157: Rename when_n/wait_n, add when_xxx_n/wait_xxx_n
Issue #1157 - Rename when_n/wait_n, add when_xxx_n/wait_xxx_n
Issue #1156 - Force inlining fails
Issue #1155 - changed header of printout to be compatible with python csv module
Issue #1154 - Fixing iostreams
Issue #1153 - Standard manipulators (like std::endl) do not work with hpx::ostream
Issue #1152 - Functions revamp
Issue #1151 - Suppressing cmake 3.0 policy warning for CMP0026
Issue #1150 - Client Serialization error
Issue #1149 - Segfault on Stampede
Issue #1148 - Refactoring mini-ghost
Issue #1147 - N3960 copy_if and copy_n implemented and tested
Issue #1146 - Stencil print
Issue #1145 - N3960 hpx::parallel::copy implemented and tested
Issue #1144 - OpenMP examples 1d_stencil do not build
Issue #1143 - 1d_stencil OpenMP examples do not build
Issue #1142 - Cannot build HPX with gcc 4.6 on OS X
Issue #1140 - Fix OpenMP lookup, enable usage of config tests in external CMake projects.
Issue #1139 - hpx/hpx/config/compiler_specific.hpp
Issue #1138 - clean up pkg-config files
Issue #1137 - Improvements to create binary packages
Issue #1136 - HPX_GCC_VERSION not defined on all compilers
Issue #1135 - Avoiding collision between winsock2.h and windows.h
Issue #1134 - Making sure, that hpx::finalize can be called from any locality
Issue #1133 - 1d stencil examples
Issue #1131 - Refactor unique_function implementation
Issue #1130 - Unique function
Issue #1129 - Some fixes to the Build system on OS X
Issue #1128 - Action future args
Issue #1127 - Executor causes segmentation fault
Issue #1124 - Adding new API functions:
register_id_with_basename
,unregister_id_with_basename
,find_ids_from_basename
; adding testIssue #1123 - Reduce nesting of try-catch construct in
encode_parcels
?Issue #1122 - Client base fixes
Issue #1121 - Update
hpxrun.py.in
Issue #1120 - HTTS2 tests compile errors on v110 (VS2012)
Issue #1119 - Remove references to boost::atomic in accumulator example
Issue #1118 - Only build test thread_pool_executor_1114_test if
HPX_LOCAL_SCHEDULER
is setIssue #1117 - local_queue_executor linker error on vc110
Issue #1116 - Disabled performance counter should give runtime errors, not invalid data
Issue #1115 - Compile error with Intel C++ 13.1
Issue #1114 - Default constructed executor is not usable
Issue #1113 - Fast compilation of logging causes ABI incompatibilities between different
NDEBUG
valuesIssue #1112 - Using thread_pool_executors causes segfault
Issue #1111 -
hpx::threads::get_thread_data
always returns zeroIssue #1110 - Remove unnecessary null pointer checks
Issue #1109 - More tests adjustments
Issue #1108 - Clarify build rules for “libboost_atomic-mt.so”?
Issue #1107 - Remove unnecessary null pointer checks
Issue #1106 - network_storage benchmark improvements, adding legends to plots and tidying layout
Issue #1105 - Add more plot outputs and improve instructions doc
Issue #1104 - Complete quoting for parameters of some CMake commands
Issue #1103 - Work on test/scripts
Issue #1102 - Changed minimum requirement of window install to 2012
Issue #1101 - Changed minimum requirement of window install to 2012
Issue #1100 - Changed readme to no longer specify using MSVC 2010 compiler
Issue #1099 - Error returning futures from component actions
Issue #1098 - Improve storage test
Issue #1097 - data_actions quickstart example calls missing function decorate_action of data_get_action
Issue #1096 - MPI parcelport broken with new zero copy optimization
Issue #1095 - Warning C4005: _WIN32_WINNT: Macro redefinition
Issue #1094 - Syntax error for -DHPX_UNIQUE_FUTURE_ALIAS in master
Issue #1093 - Syntax error for -DHPX_UNIQUE_FUTURE_ALIAS
Issue #1092 - Rename unique_future<> back to future<>
Issue #1091 - Inconsistent error message
Issue #1090 - On windows 8.1 the examples crashed if using more than one os thread
Issue #1089 - Components should be allowed to have their own executor
Issue #1088 - Add possibility to select a network interface for the ibverbs parcelport
Issue #1087 - ibverbs and ipc parcelport uses zero copy optimization
Issue #1083 - Make shell examples copyable in docs
Issue #1082 - Implement proper termination detection during shutdown
Issue #1081 - Implement thread_specific_ptr for hpx::threads
Issue #1072 - make install not working properly
Issue #1070 - Complete quoting for parameters of some CMake commands
Issue #1059 - Fix more unused variable warnings
Issue #1051 - Implement when_each
Issue #973 - Would like option to report hwloc bindings
Issue #970 - Bad flags for Fortran compiler
Issue #941 - Create a proper user level context switching class for BG/Q
Issue #935 - Build error with gcc 4.6 and Boost 1.54.0 on hpx trunk and 0.9.6
Issue #934 - Want to build HPX without dynamic libraries
Issue #927 - Make hpx/lcos/reduce.hpp accept futures of id_type
Issue #926 - All unit tests that are run with more than one thread with CTest/hpx_run_test should configure hpx.os_threads
Issue #925 - regression_dataflow_791 needs to be brought in line with HPX standards
Issue #899 - Fix race conditions in regression tests
Issue #879 - Hung test leads to cascading test failure; make tests should support the MPI parcelport
Issue #865 - future<T> and friends shall work for movable only Ts
Issue #847 - Dynamic libraries are not installed on OS X
Issue #816 - First Program tutorial pull request
Issue #799 - Wrap lexical_cast to avoid exceptions
Issue #720 - broken configuration when using ccmake on Ubuntu
Issue #622 -
--hpx:hpx
and--hpx:debug-hpx-log
is nonsensicalIssue #525 - Extend barrier LCO test to run in distributed
Issue #515 - Multi-destination version of hpx::apply is broken
Issue #509 - Push Boost.Atomic changes upstream
Issue #503 - Running HPX applications on Windows should not require setting %PATH%
Issue #461 - Add a compilation sanity test
Issue #456 - hpx_run_tests.py should log output from tests that timeout
Issue #454 - Investigate threadmanager performance
Issue #345 - Add more versatile environmental/cmake variable support to hpx_find_* CMake macros
Issue #209 - Support multiple configurations in generated build files
Issue #190 - hpx::cout should be a std::ostream
Issue #189 - iostreams component should use startup/shutdown functions
Issue #183 - Use Boost.ICL for correctness in AGAS
Issue #44 - Implement real futures