From 7e2518585b30f67029fa788489693340a4f8a36e Mon Sep 17 00:00:00 2001 From: Sam Reeve <6740307+streeve@users.noreply.github.com> Date: Mon, 13 Nov 2023 11:36:13 -0500 Subject: [PATCH 1/6] fixup: define CI sanitizer variable --- .github/workflows/CI.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index aa0578a70..b91354478 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -35,6 +35,7 @@ jobs: liball: ['OFF'] silo: ['OFF'] hdf5: ['OFF'] + sanitizer: ['ASAN'] coverage: ['OFF'] include: - distro: 'ubuntu:latest' From 704b3bdf2f5d04719d551cb2b427b1d90a6d4d51 Mon Sep 17 00:00:00 2001 From: Sam Reeve <6740307+streeve@users.noreply.github.com> Date: Mon, 13 Nov 2023 11:36:31 -0500 Subject: [PATCH 2/6] fixup: CI cache action version --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index b91354478..cf0964801 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -249,7 +249,7 @@ jobs: continue-on-error: ${{ (matrix.distro == 'ubuntu:intel' && matrix.backend == 'SERIAL' && matrix.cmake_build_type == 'Release') || matrix.distro == 'opensuse:latest' }} steps: - name: Cache ccache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ env.CCACHE_DIR }} key: ccache-${{ matrix.distro }}-${{github.run_id}} From 0db35591908732c5d902b75d8778764340136eed Mon Sep 17 00:00:00 2001 From: Sam Reeve <6740307+streeve@users.noreply.github.com> Date: Mon, 13 Nov 2023 11:39:28 -0500 Subject: [PATCH 3/6] fixup: update docker deploy action versions --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b52375553..62b0a33e9 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -47,7 +47,7 @@ jobs: path: cabana - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} @@ -71,7 +71,7 @@ jobs: - name: Build and Push Docker Image id: docker_build - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v5 with: context: ${{github.workspace}} file: cabana/.github/workflows/Dockerfile From 7f76f17e8f1b9fa38c663cb638d7c88ceebfa33e Mon Sep 17 00:00:00 2001 From: Sam Reeve <6740307+streeve@users.noreply.github.com> Date: Fri, 1 Dec 2023 18:13:38 -0500 Subject: [PATCH 4/6] Add timeout for docker and nightly builds --- .github/workflows/Nightly.yml | 1 + .github/workflows/docker.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/Nightly.yml b/.github/workflows/Nightly.yml index b729e0435..3a8bc7950 100644 --- a/.github/workflows/Nightly.yml +++ b/.github/workflows/Nightly.yml @@ -16,6 +16,7 @@ jobs: backend: ["OPENMP", "SERIAL"] distro: ['ubuntu:latest', 'fedora:rawhide'] runs-on: ubuntu-20.04 + timeout-minutes: 30 container: image: ghcr.io/ecp-copa/ci-containers/${{ matrix.distro }} steps: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 62b0a33e9..19f503a77 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -18,6 +18,7 @@ concurrency: jobs: Build: runs-on: ubuntu-latest + timeout-minutes: 30 steps: - name: Checkout kokkos uses: actions/checkout@v3 From 0cc047ae96604773c231806b7dba0db30c39b01a Mon Sep 17 00:00:00 2001 From: Sam Reeve <6740307+streeve@users.noreply.github.com> Date: Tue, 5 Dec 2023 13:10:50 -0500 Subject: [PATCH 5/6] fixup: MPI timeouts fixed in fedora:rawhide --- .github/workflows/CI.yml | 6 ++++-- .github/workflows/Dockerfile | 2 +- .github/workflows/Nightly.yml | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index cf0964801..7f7b3229b 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -93,7 +93,8 @@ jobs: heffte: 'MKL' hypre: 'OFF' coverage: 'OFF' - - distro: 'fedora:latest' + # FIXME: use fedora:latest when MPI timeouts are fixed + - distro: 'fedora:rawhide' cxx: 'g++' backend: 'OPENMP' cmake_build_type: 'Release' @@ -103,7 +104,8 @@ jobs: hypre: 'OFF' coverage: 'OFF' doxygen: 'ON' - - distro: 'fedora:latest' + # FIXME: use fedora:latest when MPI timeouts are fixed + - distro: 'fedora:rawhide' cxx: 'clang++' backend: 'OPENMP' cmake_build_type: 'Release' diff --git a/.github/workflows/Dockerfile b/.github/workflows/Dockerfile index 1b338f9f3..11c277f6c 100644 --- a/.github/workflows/Dockerfile +++ b/.github/workflows/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/ecp-copa/ci-containers/fedora:latest +FROM ghcr.io/ecp-copa/ci-containers/fedora:rawhide WORKDIR /home/kokkos/src/ COPY kokkos/ /home/kokkos/src/kokkos diff --git a/.github/workflows/Nightly.yml b/.github/workflows/Nightly.yml index 3a8bc7950..b76dc8de4 100644 --- a/.github/workflows/Nightly.yml +++ b/.github/workflows/Nightly.yml @@ -48,7 +48,7 @@ jobs: uses: actions/checkout@v3 - name: Build Cabana run: | - cmake -B build -DCMAKE_INSTALL_PREFIX=$HOME/Cabana -DCMAKE_PREFIX_PATH="$HOME/kokkos;$HOME/arborx" -DCabana_ENABLE_TESTING=ON -DCabana_ENABLE_EXAMPLES=ON -DCabana_REQUIRE_${{ matrix.backend }}=ON -DVALGRIND_EXECUTABLE=False -DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON ${{ github.event.inputs.cmake_args }} + cmake -B build -DCMAKE_INSTALL_PREFIX=$HOME/Cabana -DCMAKE_PREFIX_PATH="$HOME/kokkos;$HOME/arborx" -DCabana_ENABLE_TESTING=ON -DCabana_ENABLE_EXAMPLES=ON -DCabana_REQUIRE_${{ matrix.backend }}=ON -DVALGRIND_EXECUTABLE=False ${{ github.event.inputs.cmake_args }} cmake --build build --parallel 2 ctest --test-dir build --output-on-failure ${{ github.event.inputs.ctest_args }} cmake --install build From 8b5e93cb48a4a4ef25627c1f3631c1a3bae415a0 Mon Sep 17 00:00:00 2001 From: Sam Reeve <6740307+streeve@users.noreply.github.com> Date: Wed, 6 Dec 2023 09:28:57 -0500 Subject: [PATCH 6/6] doxygen: convert unnamed params to notes --- core/src/Cabana_Parallel.hpp | 44 +++++++++---------- grid/src/Cabana_Grid_FastFourierTransform.hpp | 4 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/core/src/Cabana_Parallel.hpp b/core/src/Cabana_Parallel.hpp index f46d674f8..44999a908 100644 --- a/core/src/Cabana_Parallel.hpp +++ b/core/src/Cabana_Parallel.hpp @@ -222,9 +222,9 @@ class TeamVectorOpTag \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param FirstNeighborsTag Tag indicating operations over particle first + \note FirstNeighborsTag Tag indicating operations over particle first neighbors. - \param SerialOpTag Tag indicating a serial loop strategy over neighbors. + \note SerialOpTag Tag indicating a serial loop strategy over neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to the Kokkos::parallel_for called by this code and can be used for identification and profiling purposes. @@ -304,9 +304,9 @@ inline void neighbor_parallel_for( \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param SecondNeighborsTag Tag indicating operations over particle first and + \note SecondNeighborsTag Tag indicating operations over particle first and second neighbors. - \param SerialOpTag Tag indicating a serial loop strategy over neighbors. + \note SerialOpTag Tag indicating a serial loop strategy over neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to the Kokkos::parallel_for called by this code and can be used for identification and profiling purposes. @@ -375,9 +375,9 @@ inline void neighbor_parallel_for( \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param FirstNeighborsTag Tag indicating operations over particle first + \note FirstNeighborsTag Tag indicating operations over particle first neighbors. - \param TeamOpTag Tag indicating a team parallel strategy over neighbors. + \note TeamOpTag Tag indicating a team parallel strategy over neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to the Kokkos::parallel_for called by this code and can be used for identification and profiling purposes. @@ -446,9 +446,9 @@ inline void neighbor_parallel_for( \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param SecondNeighborsTag Tag indicating operations over particle first and + \note SecondNeighborsTag Tag indicating operations over particle first and second neighbors. - \param TeamOpTag Tag indicating a team parallel strategy over particle first + \note TeamOpTag Tag indicating a team parallel strategy over particle first neighbors and serial execution over second neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to the Kokkos::parallel_for called by this code and can be used for @@ -524,9 +524,9 @@ inline void neighbor_parallel_for( \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param SecondNeighborsTag Tag indicating operations over particle first and + \note SecondNeighborsTag Tag indicating operations over particle first and second neighbors. - \param TeamVectorOpTag Tag indicating a team parallel strategy over particle + \note TeamVectorOpTag Tag indicating a team parallel strategy over particle first neighbors and vector parallel loop strategy over second neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to the Kokkos::parallel_for called by this code and can be used for @@ -607,9 +607,9 @@ inline void neighbor_parallel_for( \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param FirstNeighborsTag Tag indicating operations over particle first + \note FirstNeighborsTag Tag indicating operations over particle first neighbors. - \param SerialOpTag Tag indicating a serial loop strategy over + \note SerialOpTag Tag indicating a serial loop strategy over neighbors. \param reduce_val Scalar to be reduced across particles and neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to @@ -696,9 +696,9 @@ inline void neighbor_parallel_reduce( \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param SecondNeighborsTag Tag indicating operations over particle first and + \note SecondNeighborsTag Tag indicating operations over particle first and second neighbors. - \param SerialOpTag Tag indicating a serial loop strategy over neighbors. + \note SerialOpTag Tag indicating a serial loop strategy over neighbors. \param reduce_val Scalar to be reduced across particles and neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to the Kokkos::parallel_reduce called by this code and can be used for @@ -772,9 +772,9 @@ inline void neighbor_parallel_reduce( \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param FirstNeighborsTag Tag indicating operations over particle first + \note FirstNeighborsTag Tag indicating operations over particle first neighbors. - \param TeamOpTag Tag indicating a team parallel strategy over particle + \note TeamOpTag Tag indicating a team parallel strategy over particle neighbors. \param reduce_val Scalar to be reduced across particles and neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to @@ -853,9 +853,9 @@ inline void neighbor_parallel_reduce( \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param SecondNeighborsTag Tag indicating operations over particle first and + \note SecondNeighborsTag Tag indicating operations over particle first and second neighbors. - \param TeamOpTag Tag indicating a team parallel strategy over particle first + \note TeamOpTag Tag indicating a team parallel strategy over particle first neighbors and serial loops over second neighbors. \param reduce_val Scalar to be reduced across particles and neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to @@ -939,9 +939,9 @@ inline void neighbor_parallel_reduce( \param exec_policy The policy over which to execute the functor. \param functor The functor to execute in parallel \param list The neighbor list over which to execute the neighbor operations. - \param SecondNeighborsTag Tag indicating operations over particle first and + \note SecondNeighborsTag Tag indicating operations over particle first and second neighbors. - \param TeamVectorOpTag Tag indicating a team parallel strategy over particle + \note TeamVectorOpTag Tag indicating a team parallel strategy over particle first neighbors and vector loops over second neighbors. \param reduce_val Scalar to be reduced across particles and neighbors. \param str Optional name for the functor. Will be forwarded if non-empty to @@ -1028,7 +1028,7 @@ inline void neighbor_parallel_reduce( \param i Particle index. \param neighbor_functor The neighbor functor to execute in parallel. \param list The neighbor list over which to execute the neighbor operations. - \param FirstNeighborsTag Tag indicating operations over particle first + \note FirstNeighborsTag Tag indicating operations over particle first neighbors. A "functor" is a class containing the function to execute in parallel, data @@ -1079,7 +1079,7 @@ for_each_neighbor( const IndexType i, const FunctorType& neighbor_functor, \param team Kokkos team. \param neighbor_functor The neighbor functor to execute in parallel. \param list The neighbor list over which to execute the neighbor operations. - \param FirstNeighborsTag Tag indicating operations over particle first + \note FirstNeighborsTag Tag indicating operations over particle first neighbors. */ template void forwardImpl( const Array_t& x, const ScaleType ) @@ -586,7 +586,7 @@ class HeffteFastFourierTransform /*! \brief Do a reverse FFT. \param x The array on which to perform the reverse transform - \param ScaleType Method of scaling data. + \note ScaleType Method of scaling data. */ template void reverseImpl( const Array_t& x, const ScaleType )