The Massively Parallel Hybrid Solver (Maphys) aims at solving large sparse linear systems using hybrid direct/iterative methods.


1 MaPHyS

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)

2 Installation

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 recommanded. Check section Installation.

Version Tarball Documentation
<l> Tarball Documentation-0.9.5 (recommended) Tarball Documentation-0.9.4 Tarball Documentation-0.9.4 Tarball Documentation-0.9.4
0.9.3 Tarball Documentation-0.9.3

4 Links

5 Git Flow model

6 Old README (deprecated)

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.

REQUIREMENTS ============

  • MPI-1 (as parallel library)
  • BLAS/LAPACK/SCALAPACK/BLACS (as basic scientific libraries)

at least:

  • Scotch (as graph partitioner) : http://scotch.gforge.inria.fr/

at least one of them :

  • MUMPS (as direct solver) : http://graal.ens-lyon.fr/MUMPS/index.php?page=home
  • 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 (This unecessary on 0.1-alpha)

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 <emmanuel.agullo@inria.fr> Luc Giraud <luc.giraud@inria.fr> Gilles Marait <gilles.marait@inria.fr> Matthieu Kuhn <matthieu.kuhn@inria.fr> Louis Poirel <louis.poirel@inria.fr>

For details see the README file in each corresponding directory.

INSTALL =======

We recommand to use our version of spack to install MaPHyS. See http://morse.gforge.inria.fr/spack/spack.html

Otherwise, compilation is make using CMAKE. You need to have all the above requirements loaded in your environment.

6.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.2 to cleanup

rm -rf ./build # Remove cmake build directory

6.3 to run the tests

(cd build && make test)

6.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