Skip to content

New Implicit Solver interface with options to select Picard or Newton (JFNK) for the nonlinear solver. #13460

New Implicit Solver interface with options to select Picard or Newton (JFNK) for the nonlinear solver.

New Implicit Solver interface with options to select Picard or Newton (JFNK) for the nonlinear solver. #13460

Workflow file for this run

name: 🐧 Intel
on: [push, pull_request]
concurrency:
group: ${{ github.ref }}-${{ github.head_ref }}-intel
cancel-in-progress: true
jobs:
# Ref.: https://github.com/rscohn2/oneapi-ci
# intel-basekit intel-hpckit are too large in size
build_icc:
name: oneAPI ICC SP&DP
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
# For oneAPI, Ninja is slower than the default:
#env:
# CMAKE_GENERATOR: Ninja
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: |
.github/workflows/dependencies/icc.sh
- name: CCache Cache
uses: actions/cache@v4
with:
path: ~/.cache/ccache
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }}
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: build WarpX
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=200M
export CCACHE_DEPEND=1
ccache -z
set +eu
source /opt/intel/oneapi/setvars.sh
set -eu
export CXX=$(which icpc)
export CC=$(which icc)
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade build packaging setuptools wheel
cmake -S . -B build_dp \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DpyAMReX_IPO=OFF \
-DWarpX_PYTHON=ON \
-DWarpX_PYTHON_IPO=OFF \
-DWarpX_MPI=OFF \
-DWarpX_OPENPMD=ON \
-DWarpX_openpmd_internal=OFF
cmake --build build_dp -j 4
cmake -S . -B build_sp \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DpyAMReX_IPO=OFF \
-DWarpX_PYTHON=ON \
-DWarpX_PYTHON_IPO=OFF \
-DWarpX_MPI=OFF \
-DWarpX_OPENPMD=ON \
-DWarpX_openpmd_internal=OFF \
-DWarpX_PRECISION=SINGLE
cmake --build build_sp -j 4
cmake --build build_sp --target pip_install
ccache -s
du -hs ~/.cache/ccache
build_icpx:
name: oneAPI ICX SP
runs-on: ubuntu-20.04
# Since 2021.4.0, AMReX_GpuUtility.H: error: comparison with NaN always evaluates to false in fast floating point modes
# oneAPI 2022.2.0 hangs for -O2 and higher:
# https://github.com/ECP-WarpX/WarpX/issues/3442
env:
CXXFLAGS: "-Werror -Wno-error=pass-failed -Wno-tautological-constant-compare"
# For oneAPI, Ninja is slower than the default:
# CMAKE_GENERATOR: Ninja
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
- name: install dependencies
shell: bash
run: |
.github/workflows/dependencies/dpcpp.sh
- name: CCache Cache
uses: actions/cache@v4
with:
path: ~/.cache/ccache
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }}
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: build WarpX
shell: bash
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=100M
export CCACHE_DEPEND=1
ccache -z
set +e
source /opt/intel/oneapi/setvars.sh
set -e
export CXX=$(which icpx)
export CC=$(which icx)
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade build packaging setuptools wheel
cmake -S . -B build_sp \
-DCMAKE_CXX_FLAGS_RELEASE="-O1 -DNDEBUG" \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DWarpX_EB=ON \
-DWarpX_PYTHON=ON \
-DWarpX_MPI=OFF \
-DWarpX_OPENPMD=ON \
-DWarpX_PRECISION=SINGLE
cmake --build build_sp -j 4
cmake --build build_sp --target pip_install
ccache -s
du -hs ~/.cache/ccache
- name: run pywarpx
run: |
set +e
source /opt/intel/oneapi/setvars.sh
set -e
export OMP_NUM_THREADS=2
Examples/Physics_applications/laser_acceleration/PICMI_inputs_3d.py
build_dpcc:
name: oneAPI DPC++ SP
runs-on: ubuntu-20.04
# Since 2021.4.0, AMReX_GpuUtility.H: error: comparison with NaN always evaluates to false in fast floating point modes
# oneAPI 2022.2.0 hangs for -O2 and higher:
# https://github.com/ECP-WarpX/WarpX/issues/3442
env:
CXXFLAGS: "-Werror -Wno-tautological-constant-compare"
# For oneAPI, Ninja is slower than the default:
# CMAKE_GENERATOR: Ninja
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
- name: install dependencies
shell: bash
run: |
.github/workflows/dependencies/dpcpp.sh
- name: CCache Cache
uses: actions/cache@v4
with:
path: ~/.cache/ccache
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }}
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: build WarpX
shell: bash
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=100M
export CCACHE_DEPEND=1
ccache -z
set +e
source /opt/intel/oneapi/setvars.sh
set -e
export CXX=$(which icpx)
export CC=$(which icx)
export CXXFLAGS="-fsycl ${CXXFLAGS}"
cmake -S . -B build_sp \
-DCMAKE_CXX_FLAGS_RELEASE="-O1 -DNDEBUG" \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DWarpX_COMPUTE=SYCL \
-DWarpX_EB=ON \
-DWarpX_PYTHON=ON \
-DWarpX_MPI=OFF \
-DWarpX_OPENPMD=ON \
-DWarpX_PRECISION=SINGLE
cmake --build build_sp -j 4
ccache -s
du -hs ~/.cache/ccache
# Skip this as it will copy the binary artifacts and we are tight on disk space
# python3 -m pip install --upgrade pip
# python3 -m pip install --upgrade build packaging setuptools wheel
# PYWARPX_LIB_DIR=$PWD/build_sp/lib/site-packages/pywarpx/ python3 -m pip wheel .
# python3 -m pip install *.whl
save_pr_number:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Save PR number
env:
PR_NUMBER: ${{ github.event.number }}
run: |
echo $PR_NUMBER > pr_number.txt
- uses: actions/upload-artifact@v4
with:
name: pr_number
path: pr_number.txt
retention-days: 1