Massively Parallel Hybrid Solver
MaPHyS (Massively Parallel Hybrid Solver) is a software package whose prototype was initially developed in the framework of the PhD thesis of Azzam Haidar (CERFACS) and further consolidated thanks to the ANR-CIS Solstice funding. This parallel linear solver couples direct and iterative approaches. The underlying idea is to apply to general unstructured linear systems domain decomposition ideas developed for the solution of linear systems arising from PDEs. The interface problem, associated with the so called Schur complement system, is solved using a block preconditioner with overlap between the blocks that is referred to as Algebraic Additive Schwarz. To cope with the possible lack of coarse grid mechanism that enables one to keep constant the number of iterations when the number of blocks is increased, the solver exploits two levels of parallelism (between the blocks and within the treatment of the blocks). This enables us to exploit a large number of processors with a moderate number of blocks which ensures a reasonable convergence behaviour. The current prototype code will be further consolidated to end-up with a high performance software package to be made freely available to the scientific community.
(extracted from HiePaCS’ Proposal, a joint Project-Team with University of Bordeaux and CNRS (LaBRI UMR 5800) and Research Action between INRIA and CERFACS)
MaPHyS has many dependencies. We strongly recommand to use our version of SPACK to install MaPHyS and its dependencies easily: here.
If you want to install MaPHyS on a cluster, you should take a look at this page.
3 Maphys versions and documentations
Warning: installation of MaPHyS from the tarball is possible but not recommended.
- Documentation (0.9.4)
- Old repository
- Install MaPHyS with spack
- Install MaPHyS on a cluster
- Towards an exhaustive test case list for MaPHyS
5 Git Flow model
6.1 MAPHYS - Massively Parallel Hybrid Solver
This is MAPHYS, the Massively Parallel Hybrid Solver, a High performance solver for large linear algebra problems coupling direct and iterative approaches.
- MPI-1 (as parallel library)
- BLAS/LAPACK/SCALAPACK/BLACS (as basic scientific libraries)
- Scotch (as graph partitioner) : http://scotch.gforge.inria.fr/
at least one of them :
- MUMPS (as direct solver) : http://mumps.enseeiht.fr/index.php
- PaSTiX (as direct solver) : http://pastix.gforge.inria.fr/files/README-txt.html
and optionally :
- hwloc (to improve parallel efficiency on clusters) : http://www.open-mpi.org/projects/hwloc
Moreover for convenience, some sets of functions are shipped directly within this package. As far as we understood, this doesn’t violate their License.
- gmres (as iterative solver) : http://www.cerfacs.fr/algor/Softs/GMRES/index.html
- cg (as iterative solver) : http://www.cerfacs.fr/algor/Softs/CG/index.html
- slatec (as scientific library) : http://www.netlib.org/slatec/ to sort matrices elements, used while assembling the matrix.
If you think this is an issue, please contact one of us :
- Emmanuel Agullo email@example.com
- Luc Giraud firstname.lastname@example.org
- Matthieu Kuhn email@example.com
- Gilles Marait firstname.lastname@example.org
- Louis Poirel email@example.com
We recommand to use our version of spack to install MaPHyS. See http://morse.gforge.inria.fr/spack/spack.html
Otherwise, compilation is done using CMAKE. You need to have all the above requirements loaded in your environment.
6.3.1 to compile and install
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/where/to/install .. make make install # (optional: put the name of the build directory in the Makefile)
6.3.2 to cleanup
rm -rf ./build # Remove cmake build directory
6.3.3 to run the tests
(cd build && make test)
6.3.4 to use pkg-config to link MaPHyS
export PKG_CONFIG_PATH=/maphys/install_dir/lib/pkgconfig:$PKG_CONFIG_PATH #Then you can use: pkg-config --cflags maphys pkg-config --libs maphys