oneAPI compilers #3682
Workflow file for this run
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: oneAPI compilers | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- "main" | |
tags: | |
- "v*" | |
merge_group: | |
branches: | |
- main | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
container: fenicsproject/test-env:current-oneapi | |
env: | |
PETSC_ARCH: ${{ matrix.petsc_arch }} | |
strategy: | |
matrix: | |
petsc_arch: [linux-gnu-real32-32, linux-gnu-real64-32, linux-gnu-complex128-32] | |
name: oneAPI build and test (${{ matrix.petsc_arch }}) | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Basix | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pip install git+https://github.com/FEniCS/basix.git | |
- name: Clone FFCx | |
uses: actions/checkout@v4 | |
with: | |
path: ./ffcx | |
repository: FEniCS/ffcx | |
ref: main | |
- name: Install FFCx C interface | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake -B ufcx-build-dir -S ffcx/cmake/ | |
cmake --build ufcx-build-dir | |
cmake --install ufcx-build-dir | |
- name: Configure DOLFINx C++ | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -DDOLFINX_ENABLE_SCOTCH=on -DDOLFINX_ENABLE_KAHIP=on -DDOLFINX_UFCX_PYTHON=off -B build -S cpp/ | |
- name: Build and install DOLFINx C++ library | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake --build build | |
cmake --install build | |
- name: Install UFL and FFCx modules | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pip install git+https://github.com/FEniCS/ufl.git | |
pip install ffcx/ | |
- name: Build and run DOLFINx C++ unit tests (serial and MPI) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -B build/test/ -S cpp/test/ | |
cmake --build build/test | |
cd build/test | |
ctest --output-on-failure -R unittests | |
mpiexec -n 2 ctest --output-on-failure -R unittests | |
- name: Build and run DOLFINx C++ regression tests (serial and MPI (np=2)) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -B build/demo/ -S cpp/demo/ | |
cmake --build build/demo | |
cd build/demo | |
ctest -R demo -R serial | |
ctest -R demo -R mpi_2 | |
- name: Build DOLFINx Python interface | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pip -v install --check-build-dependencies --no-build-isolation python/ | |
- name: Set default DOLFINx JIT options | |
run: | | |
mkdir -p ~/.config/dolfinx | |
echo '{ "cffi_extra_compile_args": ["-g0", "-O0" ] }' > ~/.config/dolfinx/dolfinx_jit_options.json | |
- name: Run DOLFINx demos (Python, serial) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pytest -v -n=2 -m serial --durations=10 python/demo/test.py | |
- name: Run DOLFINx demos (Python, MPI (np=2)) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pytest -m mpi --num-proc=2 python/demo/test.py | |
- name: Run DOLFINx Python unit tests (serial) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pytest -n=auto --durations=50 python/test/unit | |
- name: Run DOLFINx Python unit tests (MPI, np=2) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
mpiexec -n 2 pytest python/test/unit |