Skip to content

Commit

Permalink
Don't require -DCMAKE_CXX_COMPILER=mpicxx
Browse files Browse the repository at this point in the history
  • Loading branch information
cwpearson committed Apr 8, 2024
1 parent a857b1e commit dee08ec
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 24 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/linux-install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ jobs:
- name: Build Kokkos
run: |
git clone https://github.com/kokkos/kokkos.git --branch master --depth 1 "$KOKKOS_SRC"
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DCMAKE_CXX_COMPILER=mpicxx
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON
cmake --build "$KOKKOS_BUILD" --parallel $(nproc) -t install
- name: Configure KokkosComm
run: |
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=RelWithDebInfo -DKokkosComm_ENABLE_TESTS=OFF -DKokkosComm_ENABLE_PERFTESTS=OFF -DCMAKE_INSTALL_PREFIX="$COMM_INSTALL"
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DKokkosComm_ENABLE_TESTS=OFF -DKokkosComm_ENABLE_PERFTESTS=OFF -DCMAKE_INSTALL_PREFIX="$COMM_INSTALL"
- name: Build and Install KokkosComm
run: |
VERBOSE=1 cmake --build "$COMM_BUILD" --target install
Expand All @@ -48,7 +48,7 @@ jobs:
rm -rf $"COMM_BUILD"
- name: Configure KokkosComm Unit Tests against Installed
run: |
cmake -S "$COMM_SRC"/unit_tests -B "$COMM_UNIT_TESTS_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DKokkosComm_ROOT="$COMM_INSTALL" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake -S "$COMM_SRC"/unit_tests -B "$COMM_UNIT_TESTS_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DKokkosComm_ROOT="$COMM_INSTALL" -DCMAKE_BUILD_TYPE=RelWithDebInfo
- name: Build KokkosComm Unit Tests
run: |
VERBOSE=1 cmake --build "$COMM_UNIT_TESTS_BUILD"
Expand All @@ -57,7 +57,7 @@ jobs:
ctest -V --test-dir "$COMM_UNIT_TESTS_BUILD"
- name: Configure KokkosComm Perf Tests against Installed
run: |
cmake -S "$COMM_SRC"/perf_tests -B "$COMM_PERF_TESTS_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DKokkosComm_ROOT="$COMM_INSTALL" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake -S "$COMM_SRC"/perf_tests -B "$COMM_PERF_TESTS_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DKokkosComm_ROOT="$COMM_INSTALL" -DCMAKE_BUILD_TYPE=RelWithDebInfo
- name: Build KokkosComm Perf Tests
run: |
VERBOSE=1 cmake --build "$COMM_PERF_TESTS_BUILD"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/linux-mdspan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ jobs:
run: |
git clone https://github.com/kokkos/kokkos.git "$KOKKOS_SRC"
cd "$KOKKOS_SRC" && git checkout 4.2.00
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ARCH_NATIVE=ON -DCMAKE_CXX_COMPILER=mpicxx
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ARCH_NATIVE=ON
cmake --build "$KOKKOS_BUILD" --parallel $(nproc) -t install
- name: Build KokkosComm
run: |
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic" -DKokkosComm_ENABLE_MDSPAN=ON -DKokkosComm_USE_KOKKOS_MDSPAN=ON
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic" -DKokkosComm_ENABLE_MDSPAN=ON -DKokkosComm_USE_KOKKOS_MDSPAN=ON
VERBOSE=1 cmake --build "$COMM_BUILD"
- name: Test KokkosComm
run: |
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/linux.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ jobs:
run: |
git clone https://github.com/kokkos/kokkos.git "$KOKKOS_SRC"
cd "$KOKKOS_SRC" && git checkout 4.2.00
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ARCH_NATIVE=ON -DCMAKE_CXX_COMPILER=mpicxx
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ARCH_NATIVE=ON
cmake --build "$KOKKOS_BUILD" --parallel $(nproc) -t install
- name: Build KokkosComm
run: |
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic"
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic"
VERBOSE=1 cmake --build "$COMM_BUILD"
- name: Test KokkosComm
run: |
Expand Down Expand Up @@ -72,11 +72,11 @@ jobs:
run: |
git clone https://github.com/kokkos/kokkos.git "$KOKKOS_SRC"
cd "$KOKKOS_SRC" && git checkout 4.2.00
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Debug -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ARCH_NATIVE=ON -DCMAKE_CXX_COMPILER=mpicxx
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Debug -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ARCH_NATIVE=ON
cmake --build "$KOKKOS_BUILD" --parallel $(nproc) -t install
- name: Build KokkosComm
run: |
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic"
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic"
VERBOSE=1 cmake --build "$COMM_BUILD"
- name: Test KokkosComm
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/osx-mdspan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ jobs:
run: |
git clone https://github.com/kokkos/kokkos.git "$KOKKOS_SRC"
cd "$KOKKOS_SRC" && git checkout 4.2.00
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_THREADS=ON -DKokkos_ARCH_NATIVE=ON -DCMAKE_CXX_COMPILER=mpicxx
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_THREADS=ON -DKokkos_ARCH_NATIVE=ON
cmake --build "$KOKKOS_BUILD" --parallel $(nproc) -t install
- name: Build KokkosComm
run: |
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic" -DKokkosComm_ENABLE_MDSPAN=ON -DKokkosComm_USE_KOKKOS_MDSPAN=ON
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic" -DKokkosComm_ENABLE_MDSPAN=ON -DKokkosComm_USE_KOKKOS_MDSPAN=ON
VERBOSE=1 cmake --build "$COMM_BUILD"
- name: Test KokkosComm
run: |
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/osx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ jobs:
run: |
git clone https://github.com/kokkos/kokkos.git "$KOKKOS_SRC"
cd "$KOKKOS_SRC" && git checkout 4.2.00
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Debug -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_THREADS=ON -DKokkos_ARCH_NATIVE=ON -DCMAKE_CXX_COMPILER=mpicxx
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Debug -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_THREADS=ON -DKokkos_ARCH_NATIVE=ON
cmake --build "$KOKKOS_BUILD" --parallel $(nproc) -t install
- name: Build KokkosComm
run: |
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic"
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic"
VERBOSE=1 cmake --build "$COMM_BUILD"
- name: Test KokkosComm
run: |
Expand Down Expand Up @@ -66,11 +66,11 @@ jobs:
run: |
git clone https://github.com/kokkos/kokkos.git "$KOKKOS_SRC"
cd "$KOKKOS_SRC" && git checkout 4.2.00
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_THREADS=ON -DKokkos_ARCH_NATIVE=ON -DCMAKE_CXX_COMPILER=mpicxx
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_THREADS=ON -DKokkos_ARCH_NATIVE=ON
cmake --build "$KOKKOS_BUILD" --parallel $(nproc) -t install
- name: Build KokkosComm
run: |
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic"
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_DIR="$KOKKOS_INSTALL/lib/cmake/Kokkos" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wshadow -Wpedantic"
VERBOSE=1 cmake --build "$COMM_BUILD"
- name: Test KokkosComm
run: |
Expand Down
21 changes: 16 additions & 5 deletions docs/dev/testing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,26 @@ Testing the Install
set -eou pipefail
export KOKKOS_SRC="$PWD"/kokkos
export KOKKOS_BUILD="$PWD"/kokkos-build
export KOKKOS_INSTALL="$PWD"/kokkos-install
export COMM_SRC="$PWD"
export COMM_BUILD=build
export COMM_INSTALL="$PWD"/install
export COMM_UNIT_TESTS_BUILD=unit-tests-build
export COMM_PERF_TESTS_BUILD=perf-tests-build
echo "==== CLONE KOKKOS ===="
git clone https://github.com/kokkos/kokkos.git --branch master --depth 1 "$KOKKOS_SRC" || true
echo "==== CONFIGURE KOKKOS ===="
cmake -S "$KOKKOS_SRC" -B "$KOKKOS_BUILD" -DCMAKE_INSTALL_PREFIX="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON
echo "==== BUILD & INSTALL KOKKOS ===="
cmake --build "$KOKKOS_BUILD" --parallel $(nproc) -t install
echo "==== CFG KOKKOS COMM ===="
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=RelWithDebInfo -DKokkosComm_ENABLE_TESTS=OFF -DKokkosComm_ENABLE_PERFTESTS=OFF -DCMAKE_INSTALL_PREFIX="$COMM_INSTALL"
cmake -S "$COMM_SRC" -B "$COMM_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DKokkosComm_ENABLE_TESTS=OFF -DKokkosComm_ENABLE_PERFTESTS=OFF -DCMAKE_INSTALL_PREFIX="$COMM_INSTALL"
echo "==== BUILD & INSTALL KOKKOS COMM ===="
VERBOSE=1 cmake --build "$COMM_BUILD" --target install
Expand All @@ -37,20 +48,20 @@ Testing the Install
echo "==== CFG UNIT TESTS ===="
rm -rf "$COMM_UNIT_TESTS_BUILD"
cmake -S "$COMM_SRC"/unit_tests -B "$COMM_UNIT_TESTS_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DKokkosComm_ROOT="$COMM_INSTALL" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake -S "$COMM_SRC"/unit_tests -B "$COMM_UNIT_TESTS_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DKokkosComm_ROOT="$COMM_INSTALL" -DCMAKE_BUILD_TYPE=RelWithDebInfo
echo "==== BUILD UNIT TESTS ===="
VERBOSE=1 cmake --build "$COMM_UNIT_TESTS_BUILD"
VERBOSE=1 cmake --build "$COMM_UNIT_TESTS_BUILD" --parallel 4
echo "==== RUN UNIT TESTS ===="
ctest -V --test-dir "$COMM_UNIT_TESTS_BUILD"
echo "==== CFG PERF TESTS ===="
rm -rf "$COMM_PERF_TESTS_BUILD"
cmake -S "$COMM_SRC"/perf_tests -B "$COMM_PERF_TESTS_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DKokkosComm_ROOT="$COMM_INSTALL" -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake -S "$COMM_SRC"/perf_tests -B "$COMM_PERF_TESTS_BUILD" -DKokkos_ROOT="$KOKKOS_INSTALL" -DKokkosComm_ROOT="$COMM_INSTALL" -DCMAKE_BUILD_TYPE=RelWithDebInfo
echo "==== BUILD PERF TESTS ===="
VERBOSE=1 cmake --build "$COMM_PERF_TESTS_BUILD"
VERBOSE=1 cmake --build "$COMM_PERF_TESTS_BUILD" --parallel 4
echo "==== RUN PERF TESTS ===="
ctest -V --test-dir "$COMM_PERF_TESTS_BUILD"
1 change: 0 additions & 1 deletion docs/usage/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ A basic build:
cmake -S /path/to/kokkos-comm \
-B /path/to/build/directory \
-DCMAKE_CXX_COMPILER=mpicxx \
-DKokkos_ROOT=/path/to/kokkos-install
make -C /path/to/build/directory
Expand Down
2 changes: 1 addition & 1 deletion perf_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ if(KOKKOSCOMM_ENABLE_TESTS)
endif()
target_link_libraries(perf_test-main KokkosComm::KokkosComm benchmark::benchmark)
add_test(NAME perf_test-main
COMMAND mpirun -np 2 ./perf_test-main)
COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 ./perf_test-main)


6 changes: 5 additions & 1 deletion unit_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,18 @@ if (NOT googletest_POPULATED)
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()

# Standalone MPI smoke tests (do not use KokkosComm)
add_executable(test-mpi test_mpi.cpp)
add_test(NAME test-mpi-1
COMMAND mpirun -np 1 ./test-mpi
)
add_test(NAME test-mpi-2
COMMAND mpirun -np 2 ./test-mpi
)
# doesn't use KokkosComm, so explicitly link MPI
target_link_libraries(test-mpi MPI::MPI_CXX)

# Kokkos Comm tests
add_executable(test-main test_main.cpp
test_isendrecv.cpp
test_reduce.cpp
Expand All @@ -49,7 +53,7 @@ if(KOKKOSCOMM_ENABLE_TESTS)
endif()

add_test(NAME test-main
COMMAND mpirun -np 2 ./test-main
COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 ./test-main
)


0 comments on commit dee08ec

Please sign in to comment.