Skip to content

Commit

Permalink
Merge pull request #4136 from msimberg/compute-module
Browse files Browse the repository at this point in the history
HPX.Compute modules
  • Loading branch information
msimberg committed Oct 18, 2019
2 parents 1db0e52 + 4ed5597 commit b59edd5
Show file tree
Hide file tree
Showing 87 changed files with 1,937 additions and 1,482 deletions.
50 changes: 21 additions & 29 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -427,32 +427,6 @@ jobs:
- store_artifacts:
path: tests.unit.component

tests.unit.computeapi:
<<: *defaults
steps:
- attach_workspace:
at: /hpx
- run:
name: Building Unit Tests
command: |
ninja -j2 -k 0 tests.unit.computeapi
- run:
name: Running Unit Tests
when: always
command: |
ulimit -c unlimited
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.computeapi
- run:
<<: *convert_xml
- run:
<<: *move_core_dump
- run:
<<: *move_debug_log
- store_test_results:
path: tests.unit.computeabi
- store_artifacts:
path: tests.unit.computeabi

tests.unit.diagnostics:
<<: *defaults
steps:
Expand Down Expand Up @@ -727,20 +701,30 @@ jobs:
ninja -j2 -k 0 tests.unit.modules.assertion
ninja -j2 -k 0 tests.unit.modules.cache
ninja -j2 -k 0 tests.unit.modules.collectives
ninja -j2 -k 0 tests.unit.modules.compute
# ninja -j2 -k 0 tests.unit.modules.compute_cuda # CUDA not enabled on CircleCI
ninja -j2 -k 0 tests.unit.modules.concepts
ninja -j2 -k 0 tests.unit.modules.config
ninja -j2 -k 0 tests.unit.modules.concurrency
ninja -j2 -k 0 tests.unit.modules.datastructures
ninja -j2 -k 0 tests.unit.modules.debugging
ninja -j2 -k 0 tests.unit.modules.errors
ninja -j2 -k 0 tests.unit.modules.filesystem
ninja -j2 -k 0 tests.unit.modules.format
ninja -j2 -k 0 tests.unit.modules.functional
ninja -j2 -k 0 tests.unit.modules.hardware
ninja -j2 -k 0 tests.unit.modules.hashing
ninja -j2 -k 0 tests.unit.modules.iterator_support
ninja -j2 -k 0 tests.unit.modules.logging
ninja -j2 -k 0 tests.unit.modules.preprocessor
ninja -j2 -k 0 tests.unit.modules.program_options
ninja -j2 -k 0 tests.unit.modules.resiliency
ninja -j2 -k 0 tests.unit.modules.serialization
ninja -j2 -k 0 tests.unit.modules.statistics
ninja -j2 -k 0 tests.unit.modules.testing
ninja -j2 -k 0 tests.unit.modules.thread_support
ninja -j2 -k 0 tests.unit.modules.timing
ninja -j2 -k 0 tests.unit.modules.topology
ninja -j2 -k 0 tests.unit.modules.type_support
ninja -j2 -k 0 tests.unit.modules.util
- run:
Expand All @@ -752,22 +736,33 @@ jobs:
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.assertion
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.cache
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.collectives
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.compute
# ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.compute_cuda
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.concepts
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.config
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.concurrency
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.datastructures
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.debugging
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.errors
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.filesystem
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.format
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.functional
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.hardware
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.hashing
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.iterator_support
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.logging
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.preprocessor
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.program_options
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.resiliency
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.serialization
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.statistics
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.testing
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.thread_support
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.timing
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.topology
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.type_support
ctest --timeout 60 -T test --no-compress-output --output-on-failure -R tests.unit.modules.util
- run:
<<: *convert_xml
- run:
Expand Down Expand Up @@ -1050,8 +1045,6 @@ workflows:
<<: *core_dependency
- tests.unit.component:
<<: *core_dependency
- tests.unit.computeapi:
<<: *core_dependency
- tests.unit.diagnostics:
<<: *core_dependency
- tests.unit.lcos:
Expand Down Expand Up @@ -1103,7 +1096,6 @@ workflows:
- tests.unit.agas
- tests.unit.build
- tests.unit.component
- tests.unit.computeapi
- tests.unit.diagnostics
- tests.unit.lcos
- tests.unit.parallel_block
Expand Down
17 changes: 12 additions & 5 deletions cmake/HPX_AddModule.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

function(add_hpx_module name)
# Retrieve arguments
set(options DEPRECATION_WARNINGS EXPORT FORCE_LINKING_GEN INSTALL_BINARIES)
set(options DEPRECATION_WARNINGS EXPORT FORCE_LINKING_GEN INSTALL_BINARIES CUDA)
# Compatibility needs to be on/off to allow 3 states : ON/OFF and disabled
set(one_value_args COMPATIBILITY_HEADERS GLOBAL_HEADER_GEN)
set(multi_value_args SOURCES HEADERS COMPAT_HEADERS DEPENDENCIES CMAKE_SUBDIRS
Expand Down Expand Up @@ -124,10 +124,17 @@ function(add_hpx_module name)
endforeach(header_file)

# create library modules
add_library(hpx_${name} STATIC
${sources} ${force_linking_source}
${headers} ${global_header} ${compat_headers}
${force_linking_header} ${config_header})
if(${name}_CUDA AND HPX_WITH_CUDA)
cuda_add_library(hpx_${name} STATIC
${sources} ${force_linking_source}
${headers} ${global_header} ${compat_headers}
${force_linking_header} ${config_header})
else()
add_library(hpx_${name} STATIC
${sources} ${force_linking_source}
${headers} ${global_header} ${compat_headers}
${force_linking_header} ${config_header})
endif()

target_link_libraries(hpx_${name} PUBLIC ${${name}_DEPENDENCIES})
target_include_directories(hpx_${name} PUBLIC
Expand Down
6 changes: 0 additions & 6 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,6 @@ if(HPX_WITH_APEX)
)
endif()

if(HPX_WITH_COMPUTE)
set(subdirs ${subdirs}
compute
)
endif()

foreach(subdir ${subdirs})
if(HPX_WITH_TESTS AND HPX_WITH_TESTS_EXAMPLES)
add_hpx_pseudo_target(tests.examples.${subdir})
Expand Down
25 changes: 0 additions & 25 deletions examples/compute/CMakeLists.txt

This file was deleted.

74 changes: 0 additions & 74 deletions examples/compute/cuda/CMakeLists.txt

This file was deleted.

3 changes: 3 additions & 0 deletions libs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ set(HPX_LIBS
assertion
cache
collectives
compute
compute_cuda
concepts
concurrency
config
Expand Down Expand Up @@ -47,6 +49,7 @@ set(HPX_LIBS
CACHE INTERNAL "list of HPX modules" FORCE
)


# add example pseudo targets needed for modules
if(HPX_WITH_EXAMPLES)
add_hpx_pseudo_target(examples.modules)
Expand Down
2 changes: 2 additions & 0 deletions libs/all_modules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ All modules
/libs/assertion/docs/index.rst
/libs/cache/docs/index.rst
/libs/collectives/docs/index.rst
/libs/compute/docs/index.rst
/libs/compute_cuda/docs/index.rst
/libs/concepts/docs/index.rst
/libs/concurrency/docs/index.rst
/libs/config/docs/index.rst
Expand Down
59 changes: 59 additions & 0 deletions libs/compute/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Copyright (c) 2019 The STE||AR-Group
#
# SPDX-License-Identifier: BSL-1.0
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

cmake_minimum_required(VERSION 3.3.2 FATAL_ERROR)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

set(compute_headers
hpx/compute/detail/get_proxy_type.hpp
hpx/compute/detail/iterator.hpp
hpx/compute/detail/target_distribution_policy.hpp
hpx/compute/host/block_allocator.hpp
hpx/compute/host/block_executor.hpp
hpx/compute/host/default_executor.hpp
hpx/compute/host/get_targets.hpp
hpx/compute/host.hpp
hpx/compute/host/numa_domains.hpp
hpx/compute/host/target_distribution_policy.hpp
hpx/compute/host/target.hpp
hpx/compute/host/traits/access_target.hpp
hpx/compute/serialization/vector.hpp
hpx/compute/traits/access_target.hpp
hpx/compute/traits/allocator_traits.hpp
hpx/compute/traits.hpp
hpx/compute/vector.hpp
)

set(compute_compat_headers)

set(compute_sources
get_host_targets.cpp
host_target.cpp
numa_domains.cpp
)

include(HPX_AddModule)
add_hpx_module(compute
COMPATIBILITY_HEADERS OFF
DEPRECATION_WARNINGS
FORCE_LINKING_GEN
GLOBAL_HEADER_GEN ON
SOURCES ${compute_sources}
HEADERS ${compute_headers}
COMPAT_HEADERS ${compute_compat_headers}
DEPENDENCIES
hpx_algorithms
hpx_config
hpx_coroutines
hpx_execution
hpx_hardware
hpx_plugin
hpx_program_options
hpx_serialization
hpx_type_support
CMAKE_SUBDIRS examples tests
)
16 changes: 16 additions & 0 deletions libs/compute/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

..
Copyright (c) 2019 The STE||AR-Group
SPDX-License-Identifier: BSL-1.0
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

=======
compute
=======

This library is part of HPX.

Documentation can be found `here
<https://stellar-group.github.io/hpx/docs/sphinx/latest/html/libs/compute/docs/index.html>`__.
13 changes: 13 additions & 0 deletions libs/compute/docs/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
..
Copyright (c) 2019 The STE||AR-Group
SPDX-License-Identifier: BSL-1.0
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

.. _libs_compute:

=======
compute
=======

14 changes: 14 additions & 0 deletions libs/compute/examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright (c) 2019 The STE||AR-Group
#
# SPDX-License-Identifier: BSL-1.0
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

if (HPX_WITH_EXAMPLES)
add_hpx_pseudo_target(examples.modules.compute)
add_hpx_pseudo_dependencies(examples.modules examples.modules.compute)
if (HPX_WITH_TESTS AND HPX_WITH_TESTS_EXAMPLES AND HPX_COMPUTE_WITH_TESTS)
add_hpx_pseudo_target(tests.examples.modules.compute)
add_hpx_pseudo_dependencies(tests.examples.modules tests.examples.modules.compute)
endif()
endif()

0 comments on commit b59edd5

Please sign in to comment.