Permalink
Browse files

Merge remote-tracking branch 'origin/master' into release

  • Loading branch information...
msimberg committed Nov 8, 2018
2 parents bea5a06 + 549f782 commit 87f3dd916862279bfec73757bbabd5786591ba35
Showing with 2,102 additions and 656 deletions.
  1. +2 −2 .circleci/config.yml
  2. +14 −51 CMakeLists.txt
  3. +1 −1 cmake/HPX_AddConfigTest.cmake
  4. +1 −1 cmake/HPX_UpdateGitDocs.cmake
  5. +0 −6 cmake/templates/cmake_variables.rst.in
  6. +3 −1 cmake/templates/hpxrun.py.in
  7. +2 −1 docs/CMakeLists.txt
  8. +6 −0 docs/sphinx/contributing/release_procedure.rst
  9. +1 −15 docs/sphinx/manual/launching_and_configuring_hpx_applications.rst
  10. +1 −1 docs/sphinx/manual/optimizing_hpx_applications.rst
  11. +1 −3 docs/sphinx/terminology.rst
  12. +1 −1 examples/quickstart/EasyBMP/EasyBMP.cpp
  13. +20 −2 examples/resource_partitioner/CMakeLists.txt
  14. +539 −0 examples/resource_partitioner/async_customization.cpp
  15. +306 −0 examples/resource_partitioner/guided_pool_test.cpp
  16. +12 −15 hpx/error.hpp
  17. +0 −1 hpx/hpx_fwd.hpp
  18. +1 −1 hpx/lcos/local/packaged_continuation.hpp
  19. +27 −32 hpx/parallel/algorithms/for_loop.hpp
  20. +5 −5 hpx/parallel/algorithms/for_loop_induction.hpp
  21. +2 −2 hpx/parallel/algorithms/for_loop_reduction.hpp
  22. +1 −1 hpx/parallel/executors/post_policy_dispatch.hpp
  23. +25 −1 hpx/parallel/executors/thread_execution.hpp
  24. +0 −3 hpx/plugins/parcelport_factory.hpp
  25. +0 −2 hpx/runtime/actions/basic_action.hpp
  26. +1 −12 hpx/runtime/actions/lambda_to_action.hpp
  27. +0 −8 hpx/runtime/parcelset/parcelport.hpp
  28. +0 −2 hpx/runtime/serialization/serialize.hpp
  29. +1 −3 hpx/runtime/threads/coroutines/detail/posix_utility.hpp
  30. +12 −12 hpx/runtime/threads/executors/current_executor.hpp
  31. +9 −12 hpx/runtime/threads/executors/default_executor.hpp
  32. +614 −0 hpx/runtime/threads/executors/guided_pool_executor.hpp
  33. +6 −10 hpx/runtime/threads/executors/pool_executor.hpp
  34. +7 −6 hpx/runtime/threads/executors/service_executors.hpp
  35. +8 −7 hpx/runtime/threads/executors/this_thread_executors.hpp
  36. +7 −8 hpx/runtime/threads/executors/thread_pool_attached_executors.hpp
  37. +3 −3 hpx/runtime/threads/executors/thread_pool_executors.hpp
  38. +10 −8 hpx/runtime/threads/executors/thread_pool_os_executors.hpp
  39. +34 −24 hpx/runtime/threads/policies/local_queue_scheduler.hpp
  40. +32 −0 hpx/runtime/threads/thread_executor.hpp
  41. +0 −2 hpx/util/logging.hpp
  42. +8 −1 hpx/util/logging/detail/logger.hpp
  43. +4 −5 hpx/util/tuple.hpp
  44. +1 −4 plugins/parcelport/verbs/rdma/rdma_chunk_pool.hpp
  45. +0 −1 src/runtime/parcelset/parcelhandler.cpp
  46. +0 −7 src/runtime/parcelset/parcelport.cpp
  47. +2 −6 src/runtime/threads/executors/default_executor.cpp
  48. +16 −13 src/runtime/threads/executors/pool_executor.cpp
  49. +1 −3 src/runtime/threads/executors/thread_pool_attached_executors.cpp
  50. +1 −1 src/runtime/threads/topology.cpp
  51. +100 −102 tests/unit/parallel/algorithms/uninitialized_default_construct_tests.hpp
  52. +138 −136 tests/unit/parallel/algorithms/uninitialized_default_constructn.cpp
  53. +106 −107 tests/unit/parallel/algorithms/uninitialized_value_constructn.cpp
  54. +8 −4 tests/unit/threads/thread_suspension_executor.cpp
  55. +2 −1 tools/inspect/deprecated_include_check.cpp
View
@@ -40,7 +40,7 @@ version: 2
jobs:
checkout_code:
docker:
- image: stellargroup/build_env:debian_clang
- image: stellargroup/build_env:ubuntu
working_directory: /hpx
steps:
# Try to restore source cache. Keys are tried in order. The checkout step
@@ -868,7 +868,7 @@ jobs:
install:
docker:
- image: stellargroup/build_env:debian_clang
- image: stellargroup/build_env:ubuntu
environment:
TARGET_IMAGE_NAME: stellargroup/hpx:dev
steps:
View
@@ -642,11 +642,12 @@ hpx_option(HPX_WITH_ITTNOTIFY BOOL
hpx_option(HPX_WITH_HPXMP BOOL
"Enable hpxMP OpenMP emulation." OFF CATEGORY "OpenMP")
if(HPX_WITH_HPXMP)
if(NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"))
if(NOT MSVC AND (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")))
hpx_option(HPX_WITH_HPXMP_NO_UPDATE BOOL
"Do not update code from remote hpxMP repository." OFF CATEGORY "OpenMP")
else()
hpx_warn("hpxMP can be used only when compiling with clang")
hpx_warn("hpxMP can be used only when compiling with clang or gcc")
set(HPX_WITH_HPXMP OFF)
endif()
endif()
@@ -1540,7 +1541,7 @@ if(HPX_WITH_APEX)
if(HPX_WITH_APEX_NO_UPDATE)
set(_hpx_apex_no_update NO_UPDATE)
endif()
set(_hpx_apex_tag "v2.0.1")
set(_hpx_apex_tag "v2.1.0")
if(HPX_WITH_APEX_TAG)
message("Overriding APEX git tag ${_hpx_apex_tag} with ${HPX_WITH_APEX_TAG}")
set(_hpx_apex_tag ${HPX_WITH_APEX_TAG})
@@ -1604,12 +1605,17 @@ if(HPX_WITH_HPXMP)
if(HPX_WITH_HPXMP_NO_UPDATE)
set(_hpxmp_no_update NO_UPDATE)
endif()
set(_hpx_hpxmp_tag "v0.1.0")
if(HPX_WITH_HPXMP_TAG)
message("Overriding hpxMP git tag ${_hpx_hpxmp_tag} with ${HPX_WITH_HPXMP_TAG}")
set(_hpx_hpxmp_tag ${HPX_WITH_HPXMP_TAG})
endif()
# handle hpxMP library
include(GitExternal)
git_external(hpxmp
https://github.com/STEllAR-GROUP/hpxMP.git
master
${_hpx_hpxmp_tag}
${_hpxmp_no_update}
VERBOSE)
@@ -1806,12 +1812,6 @@ endif()
###############################################################################
add_plugin_modules()
################################################################################
# Prepare the Build Directory
################################################################################
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/share)
################################################################################
# Configure the header to include all compile definitions
################################################################################
@@ -1860,39 +1860,6 @@ install(
PATTERN "CMakeFiles" EXCLUDE
PATTERN "CTestFiles" EXCLUDE)
install( # install all hpx header files
DIRECTORY hpx
DESTINATION share/hpx-${HPX_VERSION}/docs/html/code
COMPONENT core
FILES_MATCHING PATTERN "*.hpp"
PATTERN ".git" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "CTestFiles" EXCLUDE)
install( # install all hpx source files
DIRECTORY src
DESTINATION share/hpx-${HPX_VERSION}/docs/html/code
COMPONENT core
PATTERN ".git" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "CTestFiles" EXCLUDE)
install( # install all hpx examples source files
DIRECTORY examples
DESTINATION share/hpx-${HPX_VERSION}/docs/html/code
COMPONENT core
PATTERN ".git" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "CTestFiles" EXCLUDE)
install( # install all hpx tests source files
DIRECTORY tests
DESTINATION share/hpx-${HPX_VERSION}/docs/html/code
COMPONENT core
PATTERN ".git" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "CTestFiles" EXCLUDE)
install( # Install all HPX cmake utility files
DIRECTORY cmake/
DESTINATION ${LIB}/cmake/${HPX_PACKAGE_NAME}
@@ -1958,19 +1925,19 @@ endif()
install(
FILES "${PROJECT_SOURCE_DIR}/LICENSE_1_0.txt"
DESTINATION share/hpx-${HPX_VERSION}
DESTINATION share/hpx
COMPONENT license)
if(HPX_WITH_DOCUMENTATION)
# Install HPX documentation files
install(
FILES "${PROJECT_SOURCE_DIR}/docs/index.html"
DESTINATION share/hpx-${HPX_VERSION}/
DESTINATION share/hpx/
COMPONENT docs)
install(
DIRECTORY "${CMAKE_BINARY_DIR}/share/hpx-${HPX_VERSION}/docs"
DESTINATION share/hpx-${HPX_VERSION}/docs
DIRECTORY "${CMAKE_BINARY_DIR}/share/hpx/docs/html/"
DESTINATION share/hpx/docs/html
COMPONENT docs
PATTERN ".git" EXCLUDE)
endif()
@@ -1999,10 +1966,6 @@ include(HPX_PrintSummary)
include(HPX_GeneratePackage)
# Create a symlink in share pointing to the latest HPX installation
create_symbolic_link("${CMAKE_BINARY_DIR}/share/hpx-${HPX_VERSION}"
"${CMAKE_BINARY_DIR}/share/hpx")
message("")
message("HPX will be installed to ${CMAKE_INSTALL_PREFIX}")
message("")
@@ -37,7 +37,7 @@ macro(add_hpx_config_test variable)
string(TOLOWER "${variable}" variable_lc)
if(${variable}_FILE)
if(${variable}_ROOT)
set(test_source "${${variable}_ROOT}/share/hpx-${HPX_VERSION}/${${variable}_SOURCE}")
set(test_source "${${variable}_ROOT}/share/hpx/${${variable}_SOURCE}")
else()
set(test_source "${PROJECT_SOURCE_DIR}/${${variable}_SOURCE}")
endif()
@@ -32,7 +32,7 @@ else()
endif()
# We copy the documentation files from DOCS_SOURCE
set(DOCS_SOURCE "${HPX_BINARY_DIR}/share/hpx-${HPX_VERSION}/docs/html")
set(DOCS_SOURCE "${HPX_BINARY_DIR}/share/hpx/docs/html")
# If a branch name has been set, we copy files to a corresponding directory
message("HPX_WITH_GIT_BRANCH=\"${HPX_WITH_GIT_BRANCH}\"")
@@ -73,12 +73,6 @@ custom directory for ``BOOST``, specify ``BOOST_ROOT=/custom/boost/root``.
tools, which customizes the generated information for your application and
improves the generated diagnostics.
.. option:: SODIUM_ROOT:PATH
Specifies where to look for the |sodium|_ library. The Sodium library is
necessary to enable the security related functionality (see
``HPX_HAVE_SECURITY``).
In addition, some of the examples may need the following variables:
.. option:: HDF5_ROOT:PATH
@@ -69,12 +69,14 @@ def run_none(cmd, localities, verbose):
# This is executing mpiexec with the "-np" option set to the number of localities
def run_mpi(cmd, localities, verbose):
mpiexec = '@MPIEXEC@'
if mpiexec == '':
mpiexec = '@MPIEXEC_EXECUTABLE@'
if mpiexec == '':
msg = 'mpiexec not available on this platform. '
msg += 'Please rerun CMake with HPX_PARCELPORT_MPI=True.'
print(msg, sys.stderr)
sys.exit(1)
exec_cmd = ['@MPIEXEC@', '@MPIEXEC_NUMPROC_FLAG@', str(localities)] + cmd
exec_cmd = [mpiexec, '@MPIEXEC_NUMPROC_FLAG@', str(localities)] + cmd
if verbose:
print('Executing command: ' + ' '.join(exec_cmd))
subproc(exec_cmd)
View
@@ -340,7 +340,7 @@ create_symbolic_link("${PROJECT_SOURCE_DIR}/tests"
hpx_source_to_doxygen(hpx_autodoc
DEPENDENCIES ${doxygen_dependencies})
set(SPHINX_DOCS_OUTPUT_DIR "${CMAKE_BINARY_DIR}/share/hpx-${HPX_VERSION}/docs/html")
set(SPHINX_DOCS_OUTPUT_DIR "${CMAKE_BINARY_DIR}/share/hpx/docs/html")
add_custom_command(
OUTPUT "${SPHINX_DOCS_OUTPUT_DIR}"
@@ -352,6 +352,7 @@ add_custom_command(
"${SPHINX_DOCS_OUTPUT_DIR}")
add_custom_target(docs
ALL
DEPENDS ${SPHINX_DOCS_OUTPUT_DIR})
add_custom_target(git_docs
@@ -53,6 +53,12 @@ are completed to avoid confusion.
<http://github.com/khuck/xpress-apex>`_ to generate a new release to
synchronize with the HPX release.
#. Change the hpxMP release branch to be the most current release tag available
in the ``git_external`` hpxMP section of the main ``CMakeLists.txt``. Please
contact the maintainers at the `hpxMP repository
<https://github.com/STEllAR-GROUP/hpxMP>`_ to generate a new release to
synchronize with the HPX release.
#. If there have been any commits to the release branch since the last release
create a tag from the old release branch before deleting the old release
branch in the next step.
@@ -441,7 +441,6 @@ The ``hpx.parcel`` configuration section
array_optimization = ${HPX_PARCEL_ARRAY_OPTIMIZATION:1}
zero_copy_optimization = ${HPX_PARCEL_ZERO_COPY_OPTIMIZATION:$[hpx.parcel.array_optimization]}
async_serialization = ${HPX_PARCEL_ASYNC_SERIALIZATION:1}
enable_security = ${HPX_PARCEL_ENABLE_SECURITY:0}
message_handlers = ${HPX_PARCEL_MESSAGE_HANDLERS:0}
.. _ini_hpx_parcel:
@@ -500,9 +499,6 @@ The ``hpx.parcel`` configuration section
* This property defines whether this :term:`locality` is allowed to spawn a
new thread for serialization (this is both for encoding and decoding
parcels). The default is ``1``.
* * ``hpx.parcel.enable_security``
* This property defines whether this :term:`locality` is encrypting
parcels. The default is ``0``.
* * ``hpx.parcel.message_handlers``
* This property defines whether message handlers are loaded. The default is
``0``.
@@ -516,7 +512,6 @@ The following settings relate to the TCP/IP parcelport.
array_optimization = ${HPX_PARCEL_TCP_ARRAY_OPTIMIZATION:$[hpx.parcel.array_optimization]}
zero_copy_optimization = ${HPX_PARCEL_TCP_ZERO_COPY_OPTIMIZATION:$[hpx.parcel.zero_copy_optimization]}
async_serialization = ${HPX_PARCEL_TCP_ASYNC_SERIALIZATION:$[hpx.parcel.async_serialization]}
enable_security = ${HPX_PARCEL_TCP_ENABLE_SECURITY:$[hpx.parcel.enable_security]}
parcel_pool_size = ${HPX_PARCEL_TCP_PARCEL_POOL_SIZE:$[hpx.threadpools.parcel_pool_size]}
max_connections = ${HPX_PARCEL_TCP_MAX_CONNECTIONS:$[hpx.parcel.max_connections]}
max_connections_per_locality = ${HPX_PARCEL_TCP_MAX_CONNECTIONS_PER_LOCALITY:$[hpx.parcel.max_connections_per_locality]}
@@ -549,10 +544,6 @@ The following settings relate to the TCP/IP parcelport.
new thread for serialization in the TCP/IP parcelport (this is both for
encoding and decoding parcels). The default is the same value as set for
``hpx.parcel.async_serialization``.
* * ``hpx.parcel.tcp.enable_security``
* This property defines whether this :term:`locality` is encrypting parcels
in the TCP/IP parcelport. The default is the same value as set for
``hpx.parcel.enable_security``.
* * ``hpx.parcel.tcp.parcel_pool_size``
* The value of this property defines the number of OS-threads created for
the internal parcel thread pool of the TCP :term:`parcel` port. The default is
@@ -591,7 +582,6 @@ equivalent cmake variable is ``HPX_WITH_PARCELPORT_MPI`` and has to be set to
zero_copy_optimization = ${HPX_HAVE_PARCEL_MPI_ZERO_COPY_OPTIMIZATION:$[hpx.parcel.zero_copy_optimization]}
use_io_pool = ${HPX_HAVE_PARCEL_MPI_USE_IO_POOL:$1}
async_serialization = ${HPX_HAVE_PARCEL_MPI_ASYNC_SERIALIZATION:$[hpx.parcel.async_serialization]}
enable_security = ${HPX_HAVE_PARCEL_MPI_ENABLE_SECURITY:$[hpx.parcel.enable_security]}
parcel_pool_size = ${HPX_HAVE_PARCEL_MPI_PARCEL_POOL_SIZE:$[hpx.threadpools.parcel_pool_size]}
max_connections = ${HPX_HAVE_PARCEL_MPI_MAX_CONNECTIONS:$[hpx.parcel.max_connections]}
max_connections_per_locality = ${HPX_HAVE_PARCEL_MPI_MAX_CONNECTIONS_PER_LOCALITY:$[hpx.parcel.max_connections_per_locality]}
@@ -643,10 +633,6 @@ equivalent cmake variable is ``HPX_WITH_PARCELPORT_MPI`` and has to be set to
new thread for serialization in the MPI parcelport (this is both for
encoding and decoding parcels). The default is the same value as set for
``hpx.parcel.async_serialization``.
* * ``hpx.parcel.mpi.enable_security``
* This property defines whether this :term:`locality` is encrypting parcels
in the MPI parcelport. The default is the same value as set for
``hpx.parcel.enable_security``.
* * ``hpx.parcel.mpi.parcel_pool_size``
* The value of this property defines the number of OS-threads created for
the internal parcel thread pool of the MPI :term:`parcel` port. The default is
@@ -1631,7 +1617,7 @@ The predefined command line options for any application using
and ``csv`` or ``csv-short`` format specified with
:option:`--hpx:print-counter-format` without header
.. option:: --hpx:printer-counter-at arg
.. option:: --hpx:print-counter-at arg
print the performance counter(s) specified with :option:`--hpx:print-counter`
(or :option:`--hpx:print-counter-reset` at the given point in time, possible
@@ -275,7 +275,7 @@ The following table summarizes the available command line options:
* print the performance counter(s) specified with ``--hpx:print-counter``
and ``csv`` or ``csv-short`` format specified with
``--hpx:print-counter-format`` without header.
* * ``--hpx:printer-counter-at arg``
* * ``--hpx:print-counter-at arg``
* print the performance counter(s) specified with ``--hpx:print-counter``
(or ``--hpx:print-counter-reset``) at the given point in time, possible
argument values: ``startup``, ``shutdown`` (default), ``noshutdown``.
@@ -48,9 +48,7 @@ This section gives definitions for some of the terms used throughout the
as the coarse grained parallelism achieved through concurrency of multiple
processes of an executing user job. |hpx| processes provide a hierarchical
name space within the framework of the active global address space and
support multiple means of internal state access from external sources. It
also incorporates capabilities based access rights for protection and
security.
support multiple means of internal state access from external sources.
Parcel
@@ -1724,7 +1724,7 @@ ebmpBYTE BMP::FindClosestColor( RGBApixel& input )
if( TempMatch < BestMatch )
{ BestI = (ebmpBYTE) i; BestMatch = TempMatch; }
if( BestMatch < 1 )
{ i = NumberOfColors; }
{ break; }
i++;
}
return BestI;
@@ -10,15 +10,33 @@ set(example_programs
simplest_resource_partitioner_2
)
if(CMAKE_COMPILER_IS_GNUCXX AND HPX_WITH_GCC_VERSION_CHECK)
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
if (HPX_WITH_CXX14_RETURN_TYPE_DEDUCTION)
set(example_programs ${example_programs}
async_customization
guided_pool_test
)
endif()
endif()
endif()
set(guided_pool_test_FLAGS DEPENDENCIES iostreams_component)
set(oversubscribing_resource_partitioner_FLAGS DEPENDENCIES iostreams_component)
set(simple_resource_partitioner_FLAGS DEPENDENCIES iostreams_component)
set(oversubscribing_resource_partitioner_PARAMETERS
THREADS_PER_LOCALITY 4 "--use-pools" "--use-scheduler")
set(simple_resource_partitioner_PARAMETERS
THREADS_PER_LOCALITY 4 "--use-pools" "--use-scheduler")
set(simplest_resource_partitioner_1_PARAMETERS THREADS_PER_LOCALITY 4)
set(simplest_resource_partitioner_2_PARAMETERS THREADS_PER_LOCALITY 4)
set(simplest_resource_partitioner_1_PARAMETERS
THREADS_PER_LOCALITY 4)
set(simplest_resource_partitioner_2_PARAMETERS
THREADS_PER_LOCALITY 4)
set(guided_pool_test_PARAMETERS
THREADS_PER_LOCALITY 4)
set(async_customization_PARAMETERS
THREADS_PER_LOCALITY 4)
foreach(example_program ${example_programs})
set(sources
Oops, something went wrong.

0 comments on commit 87f3dd9

Please sign in to comment.