From f972cc115f76065afa089c0926c0cc77114d9abc Mon Sep 17 00:00:00 2001 From: Lars Bilke Date: Mon, 12 Aug 2024 11:38:26 +0200 Subject: [PATCH 1/2] [guix] Updated channel to build with cpardiso-support. --- scripts/ci/jobs/build-guix.yml | 4 +++- scripts/guix/channels.scm | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/ci/jobs/build-guix.yml b/scripts/ci/jobs/build-guix.yml index 415aa3d4b98..6cadbd66a98 100644 --- a/scripts/ci/jobs/build-guix.yml +++ b/scripts/ci/jobs/build-guix.yml @@ -25,9 +25,11 @@ build guix: if [[ "$CI_MERGE_REQUEST_LABELS" =~ .*ci::guix\ only.* ]]; then guix time-machine -C scripts/guix/channels.scm -- build ogs-serial --with-source=ogs-serial=$PWD guix time-machine -C scripts/guix/channels.scm -- build ogs-petsc --with-source=ogs-petsc=$PWD + guix time-machine -C scripts/guix/channels.scm -- build ogs-petsc-mkl --with-source=ogs-petsc-mkl=$PWD --with-commit=eigen=9000b3767770f6dd0f4cfb12f4e19c71921885a4 --without-tests=eigen --with-configure-flag=vtk=-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=OFF --with-source=vtk=https://www.vtk.org/files/release/9.3/VTK-9.3.1.tar.gz else guix time-machine -C scripts/guix/channels.scm -- build ogs-ssd --with-source=ogs-ssd=$PWD guix time-machine -C scripts/guix/channels.scm -- build ogs-petsc-ssd --with-source=ogs-petsc-ssd=$PWD + guix time-machine -C scripts/guix/channels.scm -- build ogs-petsc-mkl-ssd --with-source=ogs-petsc-mkl-ssd=$PWD --with-commit=eigen=9000b3767770f6dd0f4cfb12f4e19c71921885a4 --without-tests=eigen --with-configure-flag=vtk=-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=OFF --with-source=vtk=https://www.vtk.org/files/release/9.3/VTK-9.3.1.tar.gz fi deploy container: @@ -51,7 +53,7 @@ deploy container: # keep vtk source parameter: default vtk 9.3.0 download misses # ThirdParty/eigen/vtkeigen subdirectory. Use explicit download # from GitHub-tag. - GUIX_ARGS="--with-commit=eigen=9000b3767770f6dd0f4cfb12f4e19c71921885a4 --without-tests=eigen --with-configure-flag=vtk=-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=OFF --with-source=vtk=https://github.com/Kitware/VTK/archive/refs/tags/v9.3.0.tar.gz" + GUIX_ARGS="--with-commit=eigen=9000b3767770f6dd0f4cfb12f4e19c71921885a4 --without-tests=eigen --with-configure-flag=vtk=-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=OFF --with-source=vtk=https://www.vtk.org/files/release/9.3/VTK-9.3.1.tar.gz" fi # Add openmpi package for mpirun if [[ "$GUIX_PACKAGE" =~ .*petsc.* ]]; then diff --git a/scripts/guix/channels.scm b/scripts/guix/channels.scm index 03be40786cd..355541bc3c8 100644 --- a/scripts/guix/channels.scm +++ b/scripts/guix/channels.scm @@ -2,7 +2,7 @@ (name 'guix-ogs) (url "https://gitlab.opengeosys.org/ogs/inf/guix-ogs.git") (branch "master") - (commit "fd7a63510cac0ab7b93b174098e77e118de524cb")) + (commit "901d7522bfdb710814f26f7858fb55f57769371f")) (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") From 2b68ec861f8b7923c5e2f107b15275f1cffbbce5 Mon Sep 17 00:00:00 2001 From: Lars Bilke Date: Mon, 12 Aug 2024 11:44:40 +0200 Subject: [PATCH 2/2] [web] Docs on cpardiso-usage. --- Documentation/.vale/Vocab/ogs/accept.txt | 1 + .../docs/userguide/basics/container/index.md | 2 ++ .../docs/userguide/blocks/linear_solvers.md | 4 ++++ .../features/parallel_computing_mpi.md | 18 ++++++++++++++++++ 4 files changed, 25 insertions(+) diff --git a/Documentation/.vale/Vocab/ogs/accept.txt b/Documentation/.vale/Vocab/ogs/accept.txt index f5010cf78f7..e3fe091e5d3 100644 --- a/Documentation/.vale/Vocab/ogs/accept.txt +++ b/Documentation/.vale/Vocab/ogs/accept.txt @@ -125,6 +125,7 @@ pacman Palandri parameteri[zs]ation ParaView +Pardiso Parisio Parkhurst partmesh diff --git a/web/content/docs/userguide/basics/container/index.md b/web/content/docs/userguide/basics/container/index.md index 81781c4277f..2c872c9dcce 100644 --- a/web/content/docs/userguide/basics/container/index.md +++ b/web/content/docs/userguide/basics/container/index.md @@ -41,7 +41,9 @@ Simply download an image from the latest master-branch build: * [ogs-serial.squashfs](https://minio.ufz.de/ogs/public/container/ogs/master/ogs-serial.squashfs) +* [ogs-mkl.squashfs](https://minio.ufz.de/ogs/public/container/ogs/master/ogs-mkl.squashfs) (with and MKL Pardiso-support ) * [ogs-petsc.squashfs](https://minio.ufz.de/ogs/public/container/ogs/master/ogs-petsc.squashfs) (with PETSC-support) +* [ogs-petsc-mkl.squashfs](https://minio.ufz.de/ogs/public/container/ogs/master/ogs-petsc-mkl.squashfs) (with PETSC- and MKL Pardiso-support ) Please note that these images have `.squashfs` as the file ending. Usage is the same as with `.sif`-files. diff --git a/web/content/docs/userguide/blocks/linear_solvers.md b/web/content/docs/userguide/blocks/linear_solvers.md index 637de4fda69..49e22b00971 100644 --- a/web/content/docs/userguide/blocks/linear_solvers.md +++ b/web/content/docs/userguide/blocks/linear_solvers.md @@ -33,3 +33,7 @@ For most cases value below $10^{-10}$ is recommended. ## Eigen + +## PETSc + +See [Running OGS with MPI]({{< ref "parallel_computing_mpi">}})-page for details. diff --git a/web/content/docs/userguide/features/parallel_computing_mpi.md b/web/content/docs/userguide/features/parallel_computing_mpi.md index 5a55b08ba08..879c9827fff 100644 --- a/web/content/docs/userguide/features/parallel_computing_mpi.md +++ b/web/content/docs/userguide/features/parallel_computing_mpi.md @@ -99,6 +99,24 @@ An introduction and a list of PETSc KSP solvers and preconditioners can be found +
+ +#### PETSc with Pardiso solver + +If you have configured OGS (`OGS_USE_MKL=ON`) and PETSc (`--with-mkl_pardiso-dir=... --with-mkl_cpardiso-dir=...`) with MKL support then you can run the parallel Pardiso solver with .e.g.: + +```xml + + -mat_type mpiaij + -pc_type lu + -pc_factor_mat_solver_type mkl_cpardiso + +``` + +See the [PETSc docs](https://petsc.org/release/overview/linear_solve_table/#direct-solvers) for more info on the solver settings. The [prebuilt containers]({{< relref "container" >}}#get-a-container-image) support this configuration. + +
+ ### 2. Launch MPI OGS For MPI launcher, either `mpiexec` or `mpirun` can be used to run OGS.