Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,18 @@ jobs:
- name: install dependencies
run: |
.github/workflows/dependencies/nvcc11.sh
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-cuda-nvcc-${{ hashFiles('.github/workflows/cuda.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-cuda-nvcc-${{ hashFiles('.github/workflows/cuda.yml') }}-
ccache-cuda-nvcc-
- name: install openPMD-api
run: |
export CEI_SUDO="sudo"
cmake-easyinstall --prefix=/usr/local \
git+https://github.com/openPMD/[email protected] \
Expand Down Expand Up @@ -96,6 +108,16 @@ jobs:
- uses: actions/checkout@v2
- name: Dependencies
run: .github/workflows/dependencies/nvhpc.sh
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-cuda-nvhpc-${{ hashFiles('.github/workflows/cuda.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-cuda-nvhpc-${{ hashFiles('.github/workflows/cuda.yml') }}-
ccache-cuda-nvhpc-
- name: Build & Install
run: |
source /etc/profile.d/modules.sh
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dependencies/dpcpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ df -h
# https://github.com/ECP-WarpX/WarpX/pull/1566#issuecomment-790934878
sudo apt-get install -y --no-install-recommends \
build-essential \
ccache \
cmake \
intel-oneapi-dpcpp-cpp-compiler intel-oneapi-mkl-devel \
g++ gfortran \
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dependencies/gcc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ sudo apt-get -qqq update
sudo apt-get install -y \
build-essential \
ca-certificates \
ccache \
cmake \
gnupg \
ninja-build \
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dependencies/hip.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ sudo apt-get update
# other: rocm-dev rocm-utils
sudo apt-get install -y --no-install-recommends \
build-essential \
ccache \
gfortran \
libnuma-dev \
libopenmpi-dev \
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/dependencies/icc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ export DEBIAN_FRONTEND=noninteractive
sudo apt-get -qqq update
sudo apt-get install -y \
build-essential \
cmake \
ca-certificates \
ccache \
cmake \
gnupg \
pkg-config \
wget
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dependencies/nvcc11.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ sudo apt-get -qqq update
sudo apt-get install -y \
build-essential \
ca-certificates \
ccache \
cmake \
gnupg \
libopenmpi-dev \
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dependencies/nvhpc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ sudo apt-get -qqq update
sudo apt-get install -y \
build-essential \
ca-certificates \
ccache \
cmake \
environment-modules \
gnupg \
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/hip.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ jobs:
- name: install dependencies
shell: bash
run: .github/workflows/dependencies/hip.sh
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-hip-3dsp-${{ hashFiles('.github/workflows/hip.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-hip-3dsp-${{ hashFiles('.github/workflows/hip.yml') }}-
ccache-hip-3dsp-
- name: build WarpX
shell: bash
run: |
Expand Down Expand Up @@ -62,6 +72,16 @@ jobs:
- name: install dependencies
shell: bash
run: .github/workflows/dependencies/hip.sh
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-hip-2ddp-${{ hashFiles('.github/workflows/hip.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-hip-2ddp-${{ hashFiles('.github/workflows/hip.yml') }}-
ccache-hip-2ddp-
- name: build WarpX
shell: bash
run: |
Expand Down
30 changes: 30 additions & 0 deletions .github/workflows/intel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,16 @@ jobs:
- name: install dependencies
run: |
.github/workflows/dependencies/icc.sh
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-intel-icc-${{ hashFiles('.github/workflows/intel.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-intel-icc-${{ hashFiles('.github/workflows/intel.yml') }}-
ccache-intel-icc-
- name: build WarpX
run: |
set +eu
Expand Down Expand Up @@ -64,6 +74,16 @@ jobs:
shell: bash
run: |
.github/workflows/dependencies/dpcpp.sh
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-intel-icpx-${{ hashFiles('.github/workflows/intel.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-intel-icpx-${{ hashFiles('.github/workflows/intel.yml') }}-
ccache-intel-icpx-
- name: build WarpX
shell: bash
run: |
Expand Down Expand Up @@ -110,6 +130,16 @@ jobs:
shell: bash
run: |
.github/workflows/dependencies/dpcpp.sh
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-intel-dpcc-${{ hashFiles('.github/workflows/intel.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-intel-dpcc-${{ hashFiles('.github/workflows/intel.yml') }}-
ccache-intel-dpcc-
- name: build WarpX
shell: bash
run: |
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
set +e
rm -rf /usr/local/bin/2to3
brew update
brew install ccache
brew install fftw
brew install libomp
brew install ninja
Expand All @@ -34,6 +35,16 @@ jobs:
set -e
brew tap openpmd/openpmd
brew install openpmd-api
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-macos-appleclang-${{ hashFiles('.github/workflows/macos.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-macos-appleclang-${{ hashFiles('.github/workflows/macos.yml') }}-
ccache-macos-appleclang-
- name: build WarpX
run: |
cmake -S . -B build_dp \
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ jobs:
- name: install dependencies
run: |
.github/workflows/dependencies/gcc.sh
- name: CCache Cache
uses: actions/cache@v2
# - 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
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 \
Expand Down Expand Up @@ -47,6 +57,16 @@ jobs:
run: |
.github/workflows/dependencies/gcc.sh
sudo apt-get install -y libopenmpi-dev openmpi-bin
- name: CCache Cache
uses: actions/cache@v2
# - 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
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 \
Expand Down
32 changes: 23 additions & 9 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,20 @@ jobs:
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v2
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-windows-winmsvc-${{ hashFiles('.github/workflows/windows.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-windows-winmsvc-${{ hashFiles('.github/workflows/windows.yml') }}-
ccache-windows-winmsvc-
- name: Build & Install
run: |
cmake -S . -B build `
-DCMAKE_BUILD_TYPE=Debug `
-DCMAKE_CXX_STANDARD=17 `
-DCMAKE_VERBOSE_MAKEFILE=ON `
-DWarpX_COMPUTE=NOACC `
-DWarpX_OPENPMD=ON `
Expand All @@ -29,17 +38,26 @@ jobs:
$env:PYWARPX_LIB_DIR="$(Get-Location | Foreach-Object { $_.Path })\build\lib\Debug\"
python3 -m pip install . -vv --no-build-isolation

python3 Examples\Modules\gaussian_beam\PICMI_inputs_gaussian_beam.py --diagformat=openpmd

# -DCMAKE_CXX_STANDARD=17 is set due to https://github.com/openPMD/openPMD-api/pull/1121
# and can be removed with openPMD-api 0.14.3+
python3 Examples\Modules\gaussian_beam\PICMI_inputs_gaussian_beam.py
# JSON writes are currently very slow (50min) with MSVC
# --diagformat=openpmd

build_win_clang:
name: Clang C++17 w/ OMP w/o MPI
runs-on: windows-2019
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v2
- name: CCache Cache
uses: actions/cache@v2
# - 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
key: ccache-windows-winclang-${{ hashFiles('.github/workflows/windows.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}
restore-keys: |
ccache-windows-winclang-${{ hashFiles('.github/workflows/windows.yml') }}-
ccache-windows-winclang-
- uses: seanmiddleditch/gha-setup-ninja@master
- name: Build & Install
shell: cmd
Expand All @@ -49,7 +67,6 @@ jobs:
-G "Ninja" ^
-DCMAKE_C_COMPILER=clang-cl ^
-DCMAKE_CXX_COMPILER=clang-cl ^
-DCMAKE_CXX_STANDARD=17 ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_VERBOSE_MAKEFILE=ON ^
-DWarpX_COMPUTE=OMP ^
Expand All @@ -64,6 +81,3 @@ jobs:
python3 -m pip install . -vv --no-build-isolation

python3 Examples\Modules\gaussian_beam\PICMI_inputs_gaussian_beam.py --diagformat=openpmd

# -DCMAKE_CXX_STANDARD=17 is set due to https://github.com/openPMD/openPMD-api/pull/1121
# and can be removed with openPMD-api 0.14.3+