FEniCS Performance Test CI #991
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: FEniCS Performance Test CI | |
on: | |
push: | |
branches: | |
- "**" | |
pull_request: | |
branches: | |
- main | |
merge_group: | |
branches: | |
- main | |
workflow_dispatch: | |
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 --break-system-packages pip --upgrade | |
pip3 install --break-system-packages git+https://github.com/FEniCS/ufl.git | |
pip3 install --break-system-packages git+https://github.com/FEniCS/basix.git | |
pip3 install --break-system-packages 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 |