Skip to content

Added dtfft_get_pencil #45

Added dtfft_get_pencil

Added dtfft_get_pencil #45

Workflow file for this run

name: dtfft workflow
on: [push]
jobs:
open_mpi:
name: Open MPI with Coverage
runs-on: ubuntu-latest
steps:
- name: Get Requirements
run: |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get -q update
sudo apt-get -y install gfortran-14
sudo apt-get install libopenmpi-dev openmpi-bin
sudo apt-get install libfftw3-dev
- name: Checkout
uses: actions/checkout@v4
- name: Create Build Directory
run: mkdir build
- name: Build
working-directory: ./build
run: |
cmake -DCMAKE_C_COMPILER=gcc-14 \
-DCMAKE_CXX_COMPILER=g++-14 \
-DCMAKE_Fortran_COMPILER=gfortran-14 \
-DCMAKE_BUILD_TYPE=Debug \
-DDTFFT_RUNNING_CICD=on \
-DDTFFT_WITH_FFTW=on \
-DDTFFT_MPI_VENDOR=openmpi \
-DDTFFT_BUILD_C_CXX_API=on ..
make
- name: Test
working-directory: ./build
run: DTFFT_ENABLE_LOG=1 CTEST_OUTPUT_ON_FAILURE=1 make coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
mpich:
name: MPICH with persistent communications
runs-on: ubuntu-22.04
steps:
- name: Get Requirements
run: |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get -q update
sudo apt-get -y install gfortran-12
sudo apt-get install mpich libmpich-dev
sudo apt-get install libfftw3-dev
- name: Checkout
uses: actions/checkout@v4
- name: Create Build Directory
run: mkdir build
- name: Build
working-directory: ./build
run: |
ls -lah /usr/lib/x86_64-linux-gnu/
cmake -DCMAKE_C_COMPILER=gcc-12 \
-DCMAKE_CXX_COMPILER=g++-12 \
-DCMAKE_Fortran_COMPILER=gfortran-12 \
-DCMAKE_BUILD_TYPE=Debug \
-DDTFFT_RUNNING_CICD=on \
-DDTFFT_WITH_FFTW=on \
-DDTFFT_ENABLE_PERSISTENT_COMM=on \
-DDTFFT_BUILD_SHARED=off \
-DDTFFT_BUILD_C_CXX_API=on ..
make
- name: Test
working-directory: ./build
run: DTFFT_ENABLE_LOG=1 make test
mpich_macos:
name: macOS MPICH with persistent communications
runs-on: macos-latest
steps:
- name: Get Requirements
run: |
brew install mpich
- name: Checkout
uses: actions/checkout@v4
- name: Create Build Directory
run: mkdir build
- name: Build
working-directory: ./build
run: |
cmake -DCMAKE_C_COMPILER=gcc-12 \
-DCMAKE_CXX_COMPILER=g++-12 \
-DCMAKE_Fortran_COMPILER=gfortran-12 \
-DCMAKE_BUILD_TYPE=Debug \
-DDTFFT_RUNNING_CICD=on \
-DDTFFT_ENABLE_PERSISTENT_COMM=on \
-DDTFFT_BUILD_SHARED=on \
-DDTFFT_BUILD_C_CXX_API=on ..
make
- name: Test
working-directory: ./build
run: DTFFT_ENABLE_LOG=1 CTEST_OUTPUT_ON_FAILURE=1 make test
nvidia:
name: CUDA build with HPC-SDK
runs-on: ubuntu-latest
steps:
- name: Get Requirements
run: |
echo 'deb [trusted=yes] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list
sudo apt-get update -y
sudo apt-get install nvhpc-24-11
- name: Checkout
uses: actions/checkout@v4
- name: Create Build Directories
run: |
mkdir build_shared
mkdir build_static
- name: Build shared
working-directory: ./build_shared
run: |
PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.11/comm_libs/mpi/bin:${PATH}
PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.11/compilers/bin:${PATH}
PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.11/cuda/12.6/bin:${PATH}
export PATH
cmake -DCMAKE_C_COMPILER=nvc \
-DCMAKE_CXX_COMPILER=nvc++ \
-DCMAKE_Fortran_COMPILER=nvfortran \
-DCMAKE_BUILD_TYPE=Release \
-DDTFFT_BUILD_TESTS=on \
-DDTFFT_ENABLE_PERSISTENT_COMM=on \
-DDTFFT_BUILD_SHARED=on \
-DDTFFT_BUILD_C_CXX_API=on \
-DDTFFT_WITH_PROFILER=on \
-DDTFFT_WITH_CUDA=on \
-DDTFFT_WITH_CUFFT=on ..
make
- name: Build static
working-directory: ./build_static
run: |
PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.11/comm_libs/mpi/bin:${PATH}
PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.11/compilers/bin:${PATH}
PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.11/cuda/12.6/bin:${PATH}
export PATH
cmake -DCMAKE_C_COMPILER=nvc \
-DCMAKE_CXX_COMPILER=nvc++ \
-DCMAKE_Fortran_COMPILER=nvfortran \
-DCMAKE_BUILD_TYPE=Release \
-DDTFFT_BUILD_TESTS=on \
-DDTFFT_ENABLE_PERSISTENT_COMM=on \
-DDTFFT_BUILD_SHARED=off \
-DDTFFT_BUILD_C_CXX_API=on \
-DDTFFT_WITH_PROFILER=on \
-DDTFFT_WITH_CUDA=on \
-DDTFFT_WITH_CUFFT=on ..
make
intel:
name: Intel OneAPI build
runs-on: ubuntu-latest
steps:
- name: Get Requirements
run: |
sudo echo "deb [trusted=yes] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update -y
sudo apt install intel-oneapi-base-toolkit intel-oneapi-hpc-toolkit
- name: Checkout
uses: actions/checkout@v4
- name: Create Build Directory
run: |
mkdir build
- name: Build
working-directory: ./build
run: |
source /opt/intel/oneapi/setvars.sh
cmake -DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx \
-DCMAKE_Fortran_COMPILER=ifx \
-DCMAKE_BUILD_TYPE=Debug \
-DDTFFT_BUILD_TESTS=on \
-DDTFFT_ENABLE_PERSISTENT_COMM=on \
-DDTFFT_BUILD_SHARED=on \
-DDTFFT_WITH_MKL=on \
-DDTFFT_USE_MPI=on \
-DDTFFT_BUILD_C_CXX_API=on ..
make
- name: Test
working-directory: ./build
run: |
source /opt/intel/oneapi/setvars.sh
DTFFT_ENABLE_LOG=1 CTEST_OUTPUT_ON_FAILURE=1 make test