Merge pull request #117 from ajnonaka/nvidia-setup #770
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 🐧 OpenMP | |
on: [push, pull_request] | |
concurrency: | |
group: ${{ github.ref }}-${{ github.head_ref }}-ubuntu | |
cancel-in-progress: true | |
jobs: | |
build_cxxminimal: | |
name: GCC Minimal w/o MPI | |
runs-on: ubuntu-20.04 | |
if: github.event.pull_request.draft == false | |
env: | |
CXXFLAGS: "-Werror" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
.github/workflows/dependencies/gcc.sh | |
- name: CCache Cache | |
uses: actions/cache@v3 | |
# - once stored under a key, they become immutable (even if local cache path content changes) | |
# - for a refresh the key has to change, e.g., hash of a tracked file in the key | |
with: | |
path: | | |
~/.ccache | |
~/.cache/ccache | |
key: ccache-openmp-cxxminimal-${{ hashFiles('.github/workflows/ubuntu.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }} | |
restore-keys: | | |
ccache-openmp-cxxminimal-${{ hashFiles('.github/workflows/ubuntu.yml') }}- | |
ccache-openmp-cxxminimal- | |
- name: build WarpX | |
run: | | |
cmake -S . -B build_3D \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_EB=OFF \ | |
-DWarpX_MPI=OFF \ | |
-DWarpX_QED=OFF | |
cmake --build build_3D -j 2 | |
cmake -S . -B build_3D_EM \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_EB=OFF \ | |
-DWarpX_MPI=OFF \ | |
-DWarpX_QED=OFF \ | |
-DWarpX_MAG_LLG=OFF | |
cmake --build build_3D_EM -j 2 | |
build_1D_2D: | |
name: GCC 1D & 2D w/ MPI | |
runs-on: ubuntu-22.04 | |
if: github.event.pull_request.draft == false | |
env: | |
CXXFLAGS: "-Werror" | |
CXX: "g++-12" | |
CC: "gcc-12" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
.github/workflows/dependencies/gcc12.sh | |
- name: CCache Cache | |
uses: actions/cache@v3 | |
# - once stored under a key, they become immutable (even if local cache path content changes) | |
# - for a refresh the key has to change, e.g., hash of a tracked file in the key | |
with: | |
path: | | |
~/.ccache | |
~/.cache/ccache | |
key: ccache-openmp-1D-2D-${{ hashFiles('.github/workflows/ubuntu.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }} | |
restore-keys: | | |
ccache-openmp-1D-2D-${{ hashFiles('.github/workflows/ubuntu.yml') }}- | |
ccache-openmp-1D-2D- | |
- name: build WarpX | |
run: | | |
cmake -S . -B build_1D \ | |
-GNinja \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_DIMS=1 \ | |
-DWarpX_EB=OFF \ | |
-DWarpX_MAG_LLG=OFF \ | |
-DWarpX_PSATD=ON \ | |
-DWarpX_QED_TABLE_GEN=ON | |
cmake --build build_1D -j 2 | |
cmake -S . -B build_2D \ | |
-GNinja \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_DIMS=2 \ | |
-DWarpX_EB=OFF \ | |
-DWarpX_MAG_LLG=OFF \ | |
-DWarpX_PSATD=ON \ | |
-DWarpX_QED_TABLE_GEN=ON | |
cmake --build build_2D -j 2 | |
build_gcc_ablastr: | |
name: GCC ABLASTR w/o MPI | |
runs-on: ubuntu-20.04 | |
if: github.event.pull_request.draft == false | |
env: | |
CMAKE_GENERATOR: Ninja | |
CXXFLAGS: "-Werror" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
.github/workflows/dependencies/gcc.sh | |
sudo apt-get install -y libopenmpi-dev openmpi-bin | |
- name: CCache Cache | |
uses: actions/cache@v3 | |
# - once stored under a key, they become immutable (even if local cache path content changes) | |
# - for a refresh the key has to change, e.g., hash of a tracked file in the key | |
with: | |
path: | | |
~/.ccache | |
~/.cache/ccache | |
key: ccache-openmp-gccablastr-${{ hashFiles('.github/workflows/ubuntu.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }} | |
restore-keys: | | |
ccache-openmp-gccablastr-${{ hashFiles('.github/workflows/ubuntu.yml') }}- | |
ccache-openmp-gccablastr- | |
- name: build WarpX | |
run: | | |
cmake -S . -B build \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_APP=OFF \ | |
-DWarpX_LIB=OFF | |
cmake --build build -j 2 | |
build_pyfull: | |
name: Clang pywarpx | |
runs-on: ubuntu-20.04 | |
if: github.event.pull_request.draft == false | |
env: | |
# On CI for this test, Ninja is slower than the default: | |
#CMAKE_GENERATOR: Ninja | |
# setuptools/mp4py work-around, see | |
# https://github.com/mpi4py/mpi4py/pull/159 | |
# https://github.com/mpi4py/mpi4py/issues/157#issuecomment-1001022274 | |
SETUPTOOLS_USE_DISTUTILS: stdlib | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
.github/workflows/dependencies/pyfull.sh | |
- name: CCache Cache | |
uses: actions/cache@v3 | |
# - once stored under a key, they become immutable (even if local cache path content changes) | |
# - for a refresh the key has to change, e.g., hash of a tracked file in the key | |
with: | |
path: | | |
~/.ccache | |
~/.cache/ccache | |
key: ccache-openmp-pyfull-${{ hashFiles('.github/workflows/ubuntu.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }} | |
restore-keys: | | |
ccache-openmp-pyfull-${{ hashFiles('.github/workflows/ubuntu.yml') }}- | |
ccache-openmp-pyfull- | |
- name: build WarpX | |
run: | | |
python3 -m pip install --upgrade pip setuptools wheel | |
export WARPX_MPI=ON | |
export WARPX_OPENPMD=ON | |
export WARPX_PSATD=ON | |
export WARPX_QED_TABLE_GEN=ON | |
export CC=$(which clang) | |
export CXX=$(which clang++) | |
export CXXFLAGS="-Werror -Wno-error=pass-failed" | |
python3 -m pip install -v . |