Skip to content

FEniCS Performance Test CI #840

FEniCS Performance Test CI

FEniCS Performance Test CI #840

Workflow file for this run

name: FEniCS Performance Test CI
on:
push:
branches:
- "**"
pull_request:
branches:
- main
schedule:
# * is a special character in YAML so you have to quote this string
- cron: "0 3 * * 0,3"
jobs:
build:
runs-on: ubuntu-latest
container: fenicsproject/test-env:current-openmpi
env:
PETSC_ARCH: linux-gnu-real64-64
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
steps:
- uses: actions/checkout@v4
- name: Get DOLFINx
uses: actions/checkout@v4
with:
path: ./dolfinx
repository: FEniCS/dolfinx
ref: main
- name: Install FEniCS Python components
run: |
apt-get -qq update
apt-get -y install libboost-program-options-dev
pip3 install pip --upgrade
pip3 install git+https://github.com/FEniCS/ufl.git
pip3 install git+https://github.com/FEniCS/basix.git
pip3 install git+https://github.com/FEniCS/ffcx
- name: Build dolfinx cpp
run: |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -B build -S dolfinx/cpp/
cmake --build build
cmake --install build
- name: Build performance test
run: |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -B build-dir -S src
cmake --build build-dir
cmake --install build-dir
- name: Run Poisson test (BoomerAMG, serial)
run: |
dolfinx-scaling-test \
--problem_type poisson \
--scaling_type weak \
--ndofs 50000 \
-log_view \
-ksp_view \
-ksp_type cg \
-ksp_rtol 1.0e-8 \
-pc_type hypre \
-pc_hypre_type boomeramg \
-pc_hypre_boomeramg_strong_threshold 0.7 \
-pc_hypre_boomeramg_agg_nl 4 \
-pc_hypre_boomeramg_agg_num_paths 2
- name: Run Poisson test (BoomerAMG, weak)
run: |
mpirun -np 2 dolfinx-scaling-test \
--problem_type poisson \
--scaling_type weak \
--ndofs 50000 \
-log_view \
-ksp_view \
-ksp_type cg \
-ksp_rtol 1.0e-8 \
-pc_type hypre \
-pc_hypre_type boomeramg \
-pc_hypre_boomeramg_strong_threshold 0.7 \
-pc_hypre_boomeramg_agg_nl 4 \
-pc_hypre_boomeramg_agg_num_paths 2
- name: Run Poisson test (BoomerAMG, 3rd order, weak)
run: |
mpirun -np 2 dolfinx-scaling-test \
--problem_type poisson \
--scaling_type weak \
--ndofs 50000 \
--order 3 \
-log_view \
-ksp_view \
-ksp_type cg \
-ksp_rtol 1.0e-8 \
-pc_type hypre \
-pc_hypre_type boomeramg \
-pc_hypre_boomeramg_strong_threshold 0.7 \
-pc_hypre_boomeramg_agg_nl 4 \
-pc_hypre_boomeramg_agg_num_paths 2
- name: Run Poisson test (BoomerAMG, weak, unstructured mesh)
run: |
mpirun -np 2 dolfinx-scaling-test \
--problem_type poisson \
--mesh_type unstructured \
--scaling_type weak \
--ndofs 50000 \
-log_view \
-ksp_view \
-ksp_type cg \
-ksp_rtol 1.0e-8 \
-pc_type hypre \
-pc_hypre_type boomeramg \
-pc_hypre_boomeramg_strong_threshold 0.7 \
-pc_hypre_boomeramg_agg_nl 4 \
-pc_hypre_boomeramg_agg_num_paths 2
- name: Run Poisson test (BoomerAMG, strong)
run: |
mpirun -np 2 dolfinx-scaling-test \
--problem_type poisson \
--scaling_type strong \
--ndofs 1000000 \
-log_view \
-ksp_view \
-ksp_type cg \
-ksp_rtol 1.0e-8 \
-pc_type hypre \
-pc_hypre_type boomeramg \
-pc_hypre_boomeramg_strong_threshold 0.7 \
-pc_hypre_boomeramg_agg_nl 4 \
-pc_hypre_boomeramg_agg_num_paths 2
- name: Run elasticity test (GAMG, serial)
run: |
dolfinx-scaling-test \
--problem_type elasticity \
--scaling_type weak \
--ndofs 100000 \
-log_view \
-ksp_view \
-ksp_type cg \
-ksp_rtol 1.0e-8 \
-pc_type gamg \
-pc_gamg_coarse_eq_limit 1000 \
-mg_levels_ksp_type chebyshev \
-mg_levels_pc_type jacobi \
-mg_levels_esteig_ksp_type cg \
-matptap_via scalable
- name: Run elasticity test (GAMG, weak)
run: |
mpirun -np 2 dolfinx-scaling-test \
--problem_type elasticity \
--scaling_type weak \
--ndofs 100000 \
-log_view \
-ksp_view \
-ksp_type cg \
-ksp_rtol 1.0e-8 \
-pc_type gamg \
-pc_gamg_coarse_eq_limit 1000 \
-mg_levels_ksp_type chebyshev \
-mg_levels_pc_type jacobi \
-mg_levels_esteig_ksp_type cg \
-matptap_via scalable
- name: Run elasticity test (GAMG, 3rd order, weak)
run: |
mpirun -np 2 dolfinx-scaling-test \
--problem_type elasticity \
--scaling_type weak \
--ndofs 100000 \
--order 3 \
-log_view \
-ksp_view \
-ksp_type cg \
-ksp_rtol 1.0e-8 \
-pc_type gamg \
-pc_gamg_coarse_eq_limit 1000 \
-mg_levels_ksp_type chebyshev \
-mg_levels_pc_type jacobi \
-mg_levels_esteig_ksp_type cg \
-matptap_via scalable
- name: Run elasticity test (GAMG, strong)
run: |
mpirun -np 2 dolfinx-scaling-test \
--problem_type elasticity \
--scaling_type strong \
--ndofs 500000 \
-log_view \
-ksp_view \
-ksp_type cg \
-ksp_rtol 1.0e-8 \
-pc_type gamg \
-pc_gamg_coarse_eq_limit 1000 \
-mg_levels_ksp_type chebyshev \
-mg_levels_pc_type jacobi \
-mg_levels_esteig_ksp_type cg \
-matptap_via scalable