cpp to MPI type mapping improvements #6453
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: | |
fenicsx-refs: | |
uses: ./.github/workflows/fenicsx-refs.yml | |
build: | |
runs-on: ubuntu-latest | |
needs: fenicsx-refs | |
container: ubuntu:24.04 | |
env: | |
CC: icx | |
CXX: icpx | |
MPICH_CC: icx | |
MPICH_CXX: icpx | |
I_MPI_OFI_LIBRARY_INTERNAL: 0 | |
OMP_NUM_THREADS: 1 | |
OPENBLAS_NUM_THREADS: 1 | |
name: oneAPI build and test | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- name: Install compiler dependencies | |
run: | | |
apt-get -y update | |
apt-get -y install binutils libstdc++-14-dev | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
activate-environment: oneapi-test-env | |
environment-file: python/conda-oneapi-test-env.yml | |
auto-activate-base: false | |
- run: | | |
conda info | |
conda list | |
- name: Install Basix | |
run: pip install --no-build-isolation git+https://github.com/FEniCS/basix.git@${{ needs.fenicsx-refs.outputs.basix_ref }} | |
- name: Clone FFCx | |
uses: actions/checkout@v4 | |
with: | |
path: ./ffcx | |
repository: FEniCS/ffcx | |
ref: ${{ needs.fenicsx-refs.outputs.ffcx_ref }} | |
- name: Install UFCx C interface | |
run: | | |
cmake -G Ninja -B ufcx-build-dir -S ffcx/cmake/ | |
cmake --build ufcx-build-dir | |
cmake --install ufcx-build-dir | |
- name: Configure DOLFINx C++ | |
run: | | |
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: | | |
cmake --build build | |
cmake --install build | |
- name: Install UFL and FFCx modules | |
run: | | |
pip install --no-build-isolation git+https://github.com/FEniCS/ufl.git@${{ needs.fenicsx-refs.outputs.ufl_ref }} | |
pip install --no-build-isolation ffcx/ | |
- name: Build and run DOLFINx C++ unit tests (serial and MPI) | |
run: | | |
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: | | |
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: pip -v install --check-build-dependencies --no-build-isolation --config-settings=cmake.build-type="Developer" python/ | |
- name: Run DOLFINx demos (Python, serial) | |
run: python -m pytest -v -n=2 -m serial --durations=10 python/demo/test.py | |
- name: Run DOLFINx demos (Python, MPI (np=2)) | |
run: pytest -m mpi --num-proc=2 python/demo/test.py | |
- name: Run DOLFINx Python unit tests (serial) | |
run: python -m pytest -m "not adios2" -n=auto --durations=50 python/test/unit | |
- name: Run DOLFINx Python unit tests (MPI, np=2) | |
run: mpiexec -n 2 python -m pytest -m "not adios2" python/test/unit |