Skip to content

Commit aaa1110

Browse files
authored
Merge pull request #666 from DARMA-tasking/1.0.0-beta.5-proposed-update
Merge 1.0.0 beta.5 proposed update into 1.0.0
2 parents ed85964 + 6c7f0e9 commit aaa1110

File tree

105 files changed

+3737
-1642
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+3737
-1642
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: PR tests (alpine, clang-8, mpich, trace, LB)
2+
3+
on: [pull_request]
4+
5+
jobs:
6+
7+
build:
8+
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v1
13+
- name: Build the Docker image
14+
run: docker build . --file Dockerfile --build-arg TRACE_ENABLED=1 --build-arg LB_ENABLED=1 --tag vt:$(date +%s)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: PR tests (alpine, clang-8, mpich)
2+
3+
on: [pull_request]
4+
5+
jobs:
6+
7+
build:
8+
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v1
13+
- name: Build the Docker image
14+
run: docker build . --file Dockerfile --build-arg TRACE_ENABLED=0 --build-arg LB_ENABLED=0 --tag vt:$(date +%s)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: PR tests (gcc-5, ubuntu, mpich)
2+
3+
on: [pull_request]
4+
5+
jobs:
6+
7+
build:
8+
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v1
13+
- name: Build the Docker image
14+
run: docker build . --file Dockerfile-ubuntu --tag vt:$(date +%s)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Docker Image CI
2+
3+
on:
4+
# Trigger the workflow on push or pull request,
5+
# but only for the master branch
6+
push:
7+
branches:
8+
- develop
9+
- 1.*
10+
11+
jobs:
12+
13+
build:
14+
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v1
19+
- name: Docker Build & Push
20+
uses: jerray/publish-docker-action@master
21+
with:
22+
# Name of the Docker image
23+
repository: lifflander1/vt
24+
# Target Docker registry
25+
registry: docker.io
26+
auto_tag: true
27+
# Docker registry username
28+
username: ${{ secrets.DOCKER_USERNAME }}
29+
# Docker registry password
30+
password: ${{ secrets.DOCKER_PASSWORD }}

CMakeLists.txt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,13 @@ include(cmake/link_vt.cmake)
2525
include(cmake/load_packages.cmake)
2626

2727
# Code coverage option of VT
28-
OPTION(CODE_COVERAGE_ENABLED FALSE)
29-
if(CODE_COVERAGE_ENABLED)
30-
include(cmake/code_coverage.cmake)
31-
endif(CODE_COVERAGE_ENABLED)
28+
option(CODE_COVERAGE "Enable coverage reporting" OFF)
29+
# OPTION(CODE_COVERAGE_ENABLED FALSE)
30+
# if(CODE_COVERAGE_ENABLED)
31+
# include(cmake/code_coverage.cmake)
32+
# endif(CODE_COVERAGE_ENABLED)
33+
34+
set(MPI_EXTRA_FLAGS "" CACHE STRING "Flags to pass to mpirun/mpiexec")
3235

3336
set(PROJECT_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR})
3437
set(PROJECT_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
@@ -37,8 +40,12 @@ set(PROJECT_EXAMPLE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/examples)
3740

3841
include(cmake/build_git_info.cmake)
3942

43+
option(vt_fcontext_enabled "Build VT with fcontext (ULT) enabled" OFF)
44+
4045
# Add subdirectories for tests and examples
41-
add_subdirectory(${PROJECT_LIB_DIR}/context)
46+
if (${vt_fcontext_enabled})
47+
add_subdirectory(${PROJECT_LIB_DIR}/context)
48+
endif()
4249
add_subdirectory(${PROJECT_LIB_DIR}/CLI)
4350
add_subdirectory(${PROJECT_LIB_DIR}/fmt)
4451
add_subdirectory(src)

Dockerfile

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
FROM lifflander1/vt:alpine-final
2+
MAINTAINER Jonathan Lifflander <[email protected]>
3+
4+
COPY . /usr/src/vt/
5+
6+
WORKDIR /usr/src
7+
8+
ARG LB_ENABLED
9+
ARG TRACE_ENABLED
10+
11+
RUN /bin/bash -c 'source $HOME/.bashrc && \
12+
source /usr/share/spack/share/spack/setup-env.sh && \
13+
spack env activate clang-mpich && \
14+
ls /usr/src/vt && \
15+
export CC=clang && \
16+
export CXX=clang++ && \
17+
echo $HTTP_PROXY && \
18+
echo $HTTPS_PROXY && \
19+
echo $ALL_PROXY && \
20+
echo $http_proxy && \
21+
echo $https_proxy && \
22+
echo $all_proxy && \
23+
unset https_proxy && \
24+
unset http_proxy && \
25+
unset all_proxy && \
26+
unset HTTPS_PROXY && \
27+
unset HTTP_PROXY && \
28+
unset ALL_PROXY && \
29+
if [ -d "detector" ]; then rm -Rf detector; fi && \
30+
if [ -d "checkpoint" ]; then rm -Rf checkpoint; fi && \
31+
git clone -b develop --depth 1 https://github.com/DARMA-tasking/checkpoint.git && \
32+
export CHECKPOINT=$PWD/checkpoint && \
33+
export CHECKPOINT_BUILD=/usr/build/checkpoint && \
34+
git clone -b master --depth 1 https://github.com/DARMA-tasking/detector.git && \
35+
export DETECTOR=$PWD/detector && \
36+
export DETECTOR_BUILD=/usr/build/detector && \
37+
export VT=/usr/src/vt && \
38+
export VT_BUILD=/usr/build/vt && \
39+
echo $SOURCE_COMMIT && \
40+
cd $DETECTOR_BUILD && \
41+
mkdir build && \
42+
cd build && \
43+
cmake -DCMAKE_INSTALL_PREFIX=$DETECTOR_BUILD/install -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC $DETECTOR && \
44+
make && \
45+
make install && \
46+
cd $CHECKPOINT_BUILD && \
47+
mkdir build && \
48+
cd build && \
49+
cmake -DCMAKE_INSTALL_PREFIX=$CHECKPOINT_BUILD/install -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC -Ddetector_DIR=$DETECTOR_BUILD/install $CHECKPOINT && \
50+
make && \
51+
make install && \
52+
cd $VT_BUILD && \
53+
mkdir build && \
54+
cd build && \
55+
cmake -GNinja -Dvt_lb_enabled=$LB_ENABLED -Dvt_trace_enabled=$TRACE_ENABLED -DCMAKE_INSTALL_PREFIX=$VT_BUILD/install -DCMAKE_EXE_LINKER_FLAGS=-lexecinfo -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC -Ddetector_DIR=$DETECTOR_BUILD/install -Dcheckpoint_DIR=$CHECKPOINT_BUILD/install $VT && \
56+
ninja && \
57+
ninja install && \
58+
ninja test || ctest -V'
59+
60+
COPY $DETECTOR_BUILD/ $DETECTOR_BUILD
61+
COPY $CHECKPOINT_BUILD/ $CHECKPOINT_BUILD
62+
COPY $VT_BUILD/ $VT_BUILD

Dockerfile-ubuntu

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
FROM ubuntu:18.04
2+
MAINTAINER Jonathan Lifflander <[email protected]>
3+
4+
RUN apt-get update && apt-get install -y \
5+
curl \
6+
cmake \
7+
git \
8+
googletest \
9+
libmpich-dev \
10+
wget \
11+
gcc-5 \
12+
zlib1g \
13+
zlib1g-dev \
14+
libopenmpi-dev \
15+
ninja-build
16+
17+
COPY . /usr/src/vt/
18+
19+
WORKDIR /usr/src
20+
21+
ARG LB_ENABLED
22+
ARG TRACE_ENABLED
23+
24+
RUN \
25+
dpkg -L zlib1g && \
26+
export CC=mpicc && \
27+
export CXX=mpicxx && \
28+
if [ -d "googletest" ]; then rm -Rf googletest; fi && \
29+
if [ -d "detector" ]; then rm -Rf detector; fi && \
30+
if [ -d "checkpoint" ]; then rm -Rf checkpoint; fi && \
31+
git clone -b release-1.8.1 --depth 1 https://github.com/google/googletest.git && \
32+
export GTEST=$PWD/googletest && \
33+
export GTEST_BUILD=/usr/build/googletest && \
34+
git clone -b develop --depth 1 https://github.com/DARMA-tasking/checkpoint.git && \
35+
export CHECKPOINT=$PWD/checkpoint && \
36+
export CHECKPOINT_BUILD=/usr/build/checkpoint && \
37+
git clone -b master --depth 1 https://github.com/DARMA-tasking/detector.git && \
38+
export DETECTOR=$PWD/detector && \
39+
export DETECTOR_BUILD=/usr/build/detector && \
40+
export VT=$PWD/vt && \
41+
export VT_BUILD=/usr/build/vt && \
42+
mkdir -p $DETECTOR_BUILD && \
43+
mkdir -p $GTEST_BUILD && \
44+
mkdir -p $VT_BUILD && \
45+
mkdir -p $CHECKPOINT_BUILD && \
46+
echo $SOURCE_COMMIT && \
47+
cd $GTEST_BUILD && \
48+
mkdir build && \
49+
cd build && \
50+
cmake -DCMAKE_INSTALL_PREFIX=$GTEST_BUILD/install -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC $GTEST && \
51+
make && \
52+
make install && \
53+
cd $DETECTOR_BUILD && \
54+
mkdir build && \
55+
cd build && \
56+
cmake -DCMAKE_INSTALL_PREFIX=$DETECTOR_BUILD/install -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC $DETECTOR && \
57+
make && \
58+
make install && \
59+
cd $CHECKPOINT_BUILD && \
60+
mkdir build && \
61+
cd build && \
62+
cmake -DCMAKE_INSTALL_PREFIX=$CHECKPOINT_BUILD/install -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC -Ddetector_DIR=$DETECTOR_BUILD/install $CHECKPOINT && \
63+
make && \
64+
make install && \
65+
cd $VT_BUILD && \
66+
mkdir build && \
67+
cd build && \
68+
uname -p && \
69+
uname && \
70+
cmake -GNinja -Dvt_lb_enabled=$LB_ENABLED -Dvt_trace_enabled=$TRACE_ENABLED -DMPI_EXTRA_FLAGS=--allow-run-as-root -DVT_NO_BUILD_EXAMPLES=1 -Dgtest_DIR=$GTEST_BUILD/install -DGTEST_ROOT=$GTEST_BUILD/install -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC -DMPI_C_COMPILER=mpicc -DMPI_CXX_COMPILER=mpicxx -Ddetector_DIR=$DETECTOR_BUILD/install -DCMAKE_PREFIX_PATH="$GTEST_BUILD/install;/lib/x86_64-linux-gnu/" -Dcheckpoint_DIR=$CHECKPOINT_BUILD/install $VT && \
71+
ninja && \
72+
ninja install && \
73+
ninja test
74+
75+
COPY $DETECTOR_BUILD/ $DETECTOR_BUILD
76+
COPY $CHECKPOINT_BUILD/ $CHECKPOINT_BUILD
77+
COPY $VT_BUILD/ $VT_BUILD
78+
COPY $GTEST_BUILD/ $GTEST_BUILD

cmake/define_build_types.cmake

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,14 @@ else()
111111
set(vt_feature_cmake_bit_check_overflow "0")
112112
endif()
113113

114+
if (${vt_fcontext_enabled})
115+
message(STATUS "Building VT with fcontext (ULT) enabled")
116+
set(vt_feature_cmake_fcontext "1")
117+
else()
118+
message(STATUS "Building VT with fcontext (ULT) disabled")
119+
set(vt_feature_cmake_fcontext "0")
120+
endif()
121+
114122
set(vt_feature_cmake_no_feature "0")
115123
set(vt_feature_cmake_production "0")
116124

cmake/link_vt.cmake

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ function(link_target_with_vt)
3030
LINK_CHECKPOINT
3131
LINK_DETECTOR
3232
LINK_CLI11
33+
LINK_DL
3334
)
3435
set(
3536
multiValueArg
@@ -76,25 +77,37 @@ function(link_target_with_vt)
7677
endif()
7778
endif()
7879

79-
if (NOT DEFINED ARG_LINK_MPI AND ${ARG_DEFAULT_LINK_SET} OR ARG_LINK_MPI)
80+
if (NOT DEFINED ARG_LINK_DL AND ${ARG_DEFAULT_LINK_SET} OR ARG_LINK_DL)
8081
if (${ARG_DEBUG_LINK})
81-
message(STATUS "link_target_with_vt: MPI=${ARG_LINK_MPI}")
82+
message(STATUS "link_target_with_vt: dl=${ARG_LINK_DL}")
8283
endif()
8384

8485
target_link_libraries(
85-
${ARG_TARGET} PUBLIC ${ARG_BUILD_TYPE} MPI::MPI_CXX
86+
${ARG_TARGET} PUBLIC ${ARG_BUILD_TYPE} ${CMAKE_DL_LIBS}
8687
)
8788
endif()
8889

89-
if (NOT DEFINED ARG_LINK_FCONTEXT AND ${ARG_DEFAULT_LINK_SET} OR ARG_LINK_FCONTEXT)
90+
if (NOT DEFINED ARG_LINK_MPI AND ${ARG_DEFAULT_LINK_SET} OR ARG_LINK_MPI)
9091
if (${ARG_DEBUG_LINK})
91-
message(STATUS "link_target_with_vt: fcontext=${ARG_LINK_FCONTEXT}")
92+
message(STATUS "link_target_with_vt: MPI=${ARG_LINK_MPI}")
9293
endif()
94+
9395
target_link_libraries(
94-
${ARG_TARGET} PUBLIC ${ARG_BUILD_TYPE} ${FCONTEXT_LIBRARY}
96+
${ARG_TARGET} PUBLIC ${ARG_BUILD_TYPE} MPI::MPI_CXX
9597
)
9698
endif()
9799

100+
if (${vt_fcontext_enabled})
101+
if (NOT DEFINED ARG_LINK_FCONTEXT AND ${ARG_DEFAULT_LINK_SET} OR ARG_LINK_FCONTEXT)
102+
if (${ARG_DEBUG_LINK})
103+
message(STATUS "link_target_with_vt: fcontext=${ARG_LINK_FCONTEXT}")
104+
endif()
105+
target_link_libraries(
106+
${ARG_TARGET} PUBLIC ${ARG_BUILD_TYPE} ${FCONTEXT_LIBRARY}
107+
)
108+
endif()
109+
endif()
110+
98111
if (NOT DEFINED ARG_LINK_ZLIB AND ${ARG_DEFAULT_LINK_SET} OR ARG_LINK_ZLIB)
99112
if (${ARG_DEBUG_LINK})
100113
message(STATUS "link_target_with_vt: zlib=${ARG_LINK_ZLIB}")
@@ -108,7 +121,7 @@ function(link_target_with_vt)
108121
if (${ARG_DEBUG_LINK})
109122
message(STATUS "link_target_with_vt: fmt=${ARG_LINK_FMT}")
110123
endif()
111-
target_compile_definitions(${ARG_TARGET} PUBLIC FMT_HEADER_ONLY=1)
124+
target_compile_definitions(${ARG_TARGET} PUBLIC FMT_HEADER_ONLY=1 FMT_USE_USER_DEFINED_LITERALS=0)
112125
target_include_directories(${ARG_TARGET} PUBLIC
113126
$<BUILD_INTERFACE:${PROJECT_BASE_DIR}/lib/fmt>
114127
$<INSTALL_INTERFACE:include/fmt>

cmake/test_vt.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ function(run_executable_with_mpi)
4343
COMMAND
4444
${MPI_RUN_COMMAND}
4545
${MPI_NUMPROC_FLAG} ${ARG_TARGET_NPROC}
46-
${MPI_PRE_FLAGS}
46+
${MPI_PRE_FLAGS} ${MPI_EXTRA_FLAGS}
4747
${ARG_WRAPPER_EXECUTABLE} ${ARG_WRAPPER_ARGS} ./${ARG_TARGET_EXECUTABLE}
4848
${MPI_EPI_FLAGS} ${ARG_TARGET_ARGS}
4949
)

0 commit comments

Comments
 (0)