mld2p4-2:

Docs updates.
This commit is contained in:
Salvatore Filippone
2017-04-21 13:29:28 +00:00
parent f47513eb80
commit 05ab5f4d55
79 changed files with 6788 additions and 8368 deletions
+13 -15
View File
@@ -1,22 +1,20 @@
\section*{Abstract}
\addcontentsline{toc}{section}{Abstract}
\textsc{MLD2P4 (Multi-Level Domain Decomposition Parallel Preconditioners Package based on
PSBLAS}) is a package of parallel algebraic multi-level preconditioners.
The first release made available various versions of
one-level additive and multi-level additive
and hybrid Schwarz preconditioners.
The package has been extended to include further multi-level cycles and smoothers widely used in
multigrid methods.
In the multi-level case, a purely algebraic approach
is applied to generate coarse-level corrections, so that no geometric background is needed
concerning the matrix to be preconditioned. The matrix is assumed to be square, real
or complex.
\textsc{MLD2P4 (Multi-Level Domain Decomposition Parallel Preconditioners Package
based on PSBLAS}) is a package of parallel algebraic multi-level preconditioners.
The first release of MLD2P4 made available multi-level additive and hybrid Schwarz
preconditioners, as well as one-level additive Schwarz preconditioners. The package
has been extended to include further multi-level cycles and smoothers widely used in
multigrid methods. In the multi-level case, a purely algebraic approach is applied to
generate coarse-level corrections, so that no geometric background is needed
concerning the matrix to be preconditioned. The matrix is assumed to be square,
real or complex.
MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in the
context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms)
MLD2P4 has been designed to provide scalable and easy-to-use preconditioners
in the context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms)
computational framework and can be used in conjuction with the Krylov solvers
available in this framework. MLD2P4 enables the user to easily specify different features
of an algebraic multi-level preconditioner, thus allowing to search
available in this framework. MLD2P4 enables the user to easily specify different
features of an algebraic multi-level preconditioner, thus allowing to search
for the ``best'' preconditioner for the problem at hand.
The package employs object-oriented design techniques in
+1 -349
View File
File diff suppressed because one or more lines are too long
+169 -229
View File
@@ -1,229 +1,169 @@
%\section{Bibliography\label{sec:bib}}
\begin{thebibliography}{99}
\addcontentsline{toc}{section}{\refname}
\markboth{\textsc{MLD2P4 User's and Reference Guide}}
{\textsc{References}}
%\let\refname\relax
%
%\bibitem{PARA04FOREST}
%G.~Bella, S.~Filippone, A.~De Maio, A., Testa, M.:
%A Simulation Model for Forest Fires.
%In: Dongarra, J., Madsen, K., Wasniewski, J. (eds.):
%Proceedings of PARA~04 Workshop on State of the Art
%in Scientific Computing. Lecture Notes in Computer Science, 3732. Berlin:
%Springer, 2005
%
\bibitem{BREZINA_VANEK}
M.~Brezina, P.~Van{\v e}k,
{\em A Black-Box Iterative Solver Based on a Two-Level Schwarz Method},
Computing, 63, 1999, 233--263.
%
\bibitem{para_04}
A.~Buttari, P.~D'Ambra, D.~di Serafino, S.~Filippone,
{\em Extending PSBLAS to Build Parallel Schwarz Preconditioners},
in , J.~Dongarra, K.~Madsen, J.~Wasniewski, editors,
Proceedings of PARA~04 Workshop on State of the Art
in Scientific Computing, Lecture Notes in Computer Science,
Springer, 2005, 593--602.
%
\bibitem{aaecc_07}
A.~Buttari, P.~D'Ambra, D.~di~Serafino, S.~Filippone,
{\em 2LEV-D2P4: a package of high-performance preconditioners
for scientific and engineering applications},
Applicable Algebra in Engineering, Communications and Computing,
18, 3, 2007, 223--239.
%Published online: 13 February 2007, {\tt http://dx.doi.org/10.1007/s00200-007-0035-z}
%
\bibitem{apnum_07} P.~D'Ambra, S.~Filippone, D.~di~Serafino,
{\em On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners},
Applied Numerical Mathematics, Elsevier Science,
57, 11-12, 2007, 1181-1196.
%published online 3 February 2007, {\tt
% http://dx.doi.org/10.1016/j.apnum.2007.01.006}
%% \bibitem{DOUGLAS}
%% R.E.~Bank and C.C.~Douglas,
%% {\em SMMP: Sparse Matrix Multiplication Package},
%% Advances in Computational Mathematics, 1993, 1, 127-137.
%% (See also {\tt http://www.mgnet.org/~douglas/ccd-codes.html})
%
%
%% \bibitem{CAI_SAAD}
%% X.~C.~Cai and Y.~Saad,
%% {\em Overlapping Domain Decomposition Algorithms for General Sparse Matrices},
%% Numerical Linear Algebra with Applications, 3(3), pp.~221--237, 1996.
%
\bibitem{CAI_SARKIS}
X.~C.~Cai, M.~Sarkis,
{\em A Restricted Additive Schwarz Preconditioner for General Sparse Linear Systems},
SIAM Journal on Scientific Computing, 21, 2, 1999, 792--797.
%
\bibitem{Cai_Widlund_92}
X.~C.~Cai, O.~B.~Widlund,
{\em Domain Decomposition Algorithms for Indefinite Elliptic Problems},
SIAM Journal on Scientific and Statistical Computing, 13, 1, 1992, 243--258.
%
\bibitem{dd1_94}
T.~Chan and T.~Mathew,
{\em Domain Decomposition Algorithms},
in A.~Iserles, editor, Acta Numerica 1994, 61--143.
Cambridge University Press.
%
\bibitem{MLD2P4_TOMS}
P.~D'Ambra, D.~di~Serafino, S.~Filippone,
\emph{MLD2P4: a Package of Parallel Multilevel
Algebraic Domain Decomposition Preconditioners
in Fortran 95}, ACM Trans. Math. Softw., 37(3), 2010.
%
\bibitem{UMFPACK}
T.A.~Davis,
{\em Algorithm 832: UMFPACK - an Unsymmetric-pattern Multifrontal
Method with a Column Pre-ordering Strategy},
ACM Transactions on Mathematical Software, 30, 2004, 196--199.
(See also {\tt http://www.cise.ufl.edu/~davis/})
%
\bibitem{MUMPS}
P.R.~Amestoy, C.~Ashcraft, O.~Boiteau, A.~Buttari, J.~L'Excellent, C.~Weisbecker
{\em Improving multifrontal methods by means of block low-rank representations},
SIAM SISC, volume 37, number 3, pages A1452-A1474.
(See also {\tt http://mumps.enseeiht.fr})
%
\bibitem{SUPERLU}
J.W.~Demmel, S.C.~Eisenstat, J.R.~Gilbert, X.S.~Li and J.W.H.~Liu,
A supernodal approach to sparse partial pivoting,
SIAM Journal on Matrix Analysis and Applications, 20, 3, 1999, 720--755.
%
\bibitem{blas3}
J.~J.~Dongarra, J.~Du Croz, I.~S.~Duff, S.~Hammarling,
\emph{A set of Level 3 Basic Linear Algebra Subprograms},
ACM Transactions on Mathematical Software, 16, 1990, 1--17.
%
\bibitem{blas2}
J.~J.~Dongarra, J.~Du Croz, S.~Hammarling, R.~J.~Hanson,
\emph{An extended set of FORTRAN Basic Linear Algebra Subprograms},
ACM Transactions on Mathematical Software, 14, 1988, 1--17.
%
\bibitem{BLACS}
J.~J.~Dongarra and R.~C.~Whaley,
{\em A User's Guide to the BLACS v.~1.1},
Lapack Working Note 94, Tech.\ Rep.\ UT-CS-95-281, University of
Tennessee, March 1995 (updated May 1997).
%
%\bibitem{sblas_97}
%I.~Duff, M.~Marrone, G.~Radicati and C.~Vittoli,
%{\em Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
%a User Level Interface},
%ACM Transactions on Mathematical Software, 23(3), pp.~379--401, 1997.
%
%\bibitem{sblas_02}
%I.~Duff, M.~Heroux and R.~Pozo,
%{\em An Overview of the Sparse Basic Linear
%Algebra Subprograms: the New Standard from the BLAS Technical Forum},
%ACM Transactions on Mathematical Software, 28(2), pp.~239--267, 2002.
%
\bibitem{EFSTATHIOU}
E.~Efstathiou, J.~G.~Gander,
{\em Why Restricted Additive Schwarz Converges Faster than Additive Schwarz},
BIT Numerical Mathematics, 43, 2003, 945--959.
%
\bibitem{PSBLASGUIDE}
S.~Filippone, A.~Buttari,
{\em PSBLAS-3.0 User's Guide. A Reference Guide for the Parallel Sparse BLAS Library}, 2012,
available from \texttt{http://www.ce.uniroma2.it/psblas/}.
\bibitem{PSBLAS3}
Salvatore Filippone and Alfredo Buttari.
{\em {Object-Oriented Techniques for Sparse Matrix Computations in Fortran
2003}.}
ACM Trans. on Math Software, 38(4), 2012.
%
\bibitem{psblas_00}
S.~Filippone, M.~Colajanni,
{\em PSBLAS: A Library for Parallel Linear Algebra
Computation on Sparse Matrices},
ACM Transactions on Mathematical Software, 26, 4, 2000, 527--550.
%
\bibitem{MPI2}
W.~Gropp, S.~Huss-Lederman, A.~Lumsdaine, E.~Lusk, B.~Nitzberg, W.~Saphir, M.~Snir,
{\em MPI: The Complete Reference. Volume 2 - The MPI-2 Extensions},
MIT Press, 1998.
%
\bibitem{blas1}
C.~L.~Lawson, R.~J.~Hanson, D.~Kincaid, F.~T.~Krogh,
\emph{Basic Linear Algebra Subprograms for FORTRAN usage},
ACM Transactions on Mathematical Software, 5, 1979, 308--323.
%
\bibitem{SUPERLUDIST}
X.~S.~Li, J.~W.~Demmel, {\em SuperLU\_DIST: A Scalable Distributed-memory
Sparse Direct Solver for Unsymmetric Linear Systems},
ACM Transactions on Mathematical Software, 29, 2, 2003, 110--140.
%
%\bibitem{KIVA3PSBLAS}
%S.~Filippone, P.~D'Ambra, M.~Colajanni,
%{\em Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
%Applications Code on Linux Clusters},
%in G.~Joubert, A.~Murli, F.~Peters, M.~Vanneschi, editors,
%Parallel Computing - Advances \& Current Issues,
%pp.~441--448, Imperial College Press, 2002.
%
%\bibitem{METIS}
%Karypis, G. and Kumar, V.,
%{\em {METIS}: Unstructured Graph Partitioning and Sparse Matrix
% Ordering System}.
%Minneapolis, MN 55455: University of Minnesota, Department of
% Computer Science, 1995.
%Internet Address: {\verb|http://www.cs.umn.edu/~karypis|}.
%\bibitem{BLAS1}
%Lawson, C., Hanson, R., Kincaid, D. and Krogh, F.,
% Basic {L}inear {A}lgebra {S}ubprograms for {F}ortran usage,
%{ACM Trans. Math. Softw.} vol.~{5}, 38--329, 1979.
%
%\bibitem{machiels}
%{Machiels, L. and Deville, M.}
%{\em Fortran 90: An entry to object-oriented programming for the solution
% of partial differential equations.}
%{ACM Trans. Math. Softw.} vol.~{23}, 32--49.
%\bibitem{metcalf}
%{Metcalf, M., Reid, J. and Cohen, M.}
%{\em Fortran 95/2003 explained.}
%{Oxford University Press}, 2004.
%
\bibitem{Saad_book}
Y.~Saad,
\emph{Iterative methods for sparse linear systems}, 2nd edition,
SIAM, 2003
\bibitem{dd2_96}
B.~Smith, P.~Bjorstad, W.~Gropp,
{\em Domain Decomposition: Parallel Multilevel Methods for Elliptic
Partial Differential Equations},
Cambridge University Press, 1996.
%
\bibitem{MPI1}
M.~Snir, S.~Otto, S.~Huss-Lederman, D.~Walker, J.~Dongarra,
{\em MPI: The Complete Reference. Volume 1 - The MPI Core}, second edition,
MIT Press, 1998.
%%
\bibitem{Stuben_01}
K.~St\"{u}ben,
{\em An Introduction to Algebraic Multigrid},
in A.~Sch\"{u}ller, U.~Trottenberg, C.~Oosterlee, Multigrid,
Academic Press, 2001.
%
\bibitem{TUMINARO_TONG}
R.~S.~Tuminaro, C.~Tong,
{\em Parallel Smoothed Aggregation Multigrid: Aggregation Strategies on Massively Parallel Machines},
in J. Donnelley, editor, Proceedings of SuperComputing 2000, Dallas, 2000.
%
\bibitem{VANEK_MANDEL_BREZINA}
P.~Van{\v e}k, J.~Mandel and M.~Brezina,
{\em Algebraic Multigrid by Smoothed Aggregation for Second and Fourth Order Elliptic Problems},
Computing, 56, 1996, 179-196.
%
\end{thebibliography}
%\section{Bibliography\label{sec:bib}}
\begin{thebibliography}{99}
\addcontentsline{toc}{section}{\refname}
\markboth{\textsc{MLD2P4 User's and Reference Guide}}
{\textsc{References}}
%\let\refname\relax
%
\bibitem{BREZINA_VANEK}
M.~Brezina, P.~Van{\v e}k,
{\em A Black-Box Iterative Solver Based on a Two-Level Schwarz Method},
Computing, 63, 1999, 233--263.
%
\bibitem{Briggs2000}
W.~L.~Briggs, V.~E.~Henson, S.~F.~ McCormick,
{\em A Multigrid Tutorial, Second Edition},
SIAM, 2000.
%
\bibitem{para_04}
A.~Buttari, P.~D'Ambra, D.~di Serafino, S.~Filippone,
{\em Extending PSBLAS to Build Parallel Schwarz Preconditioners},
in J.~Dongarra, K.~Madsen, J.~Wasniewski, editors,
Proceedings of PARA~04 Workshop on State of the Art
in Scientific Computing, Lecture Notes in Computer Science,
Springer, 2005, 593--602.
%
\bibitem{aaecc_07}
A.~Buttari, P.~D'Ambra, D.~di~Serafino, S.~Filippone,
{\em 2LEV-D2P4: a package of high-performance preconditioners
for scientific and engineering applications},
Applicable Algebra in Engineering, Communications and Computing,
18 (3) 2007, 223--239.
%Published online: 13 February 2007, {\tt http://dx.doi.org/10.1007/s00200-007-0035-z}
%
\bibitem{apnum_07} P.~D'Ambra, S.~Filippone, D.~di~Serafino,
{\em On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners},
Applied Numerical Mathematics, Elsevier Science,
57 (11-12), 2007, 1181-1196.
%published online 3 February 2007, {\tt
% http://dx.doi.org/10.1016/j.apnum.2007.01.006}
%
\bibitem{CAI_SARKIS}
X.~C.~Cai, M.~Sarkis,
{\em A Restricted Additive Schwarz Preconditioner for General Sparse Linear Systems},
SIAM Journal on Scientific Computing, 21 (2), 1999, 792--797.
%
\bibitem{Cai_Widlund_92}
X.~C.~Cai, O.~B.~Widlund,
{\em Domain Decomposition Algorithms for Indefinite Elliptic Problems},
SIAM Journal on Scientific and Statistical Computing, 13 (1), 1992, 243--258.
%
\bibitem{dd1_94}
T.~Chan and T.~Mathew,
{\em Domain Decomposition Algorithms},
in A.~Iserles, editor, Acta Numerica 1994, 61--143.
Cambridge University Press.
%
\bibitem{MLD2P4_TOMS}
P.~D'Ambra, D.~di~Serafino, S.~Filippone,
\emph{MLD2P4: a Package of Parallel Multilevel
Algebraic Domain Decomposition Preconditioners
in Fortran 95}, ACM Trans. Math. Softw., 37(3), 2010, art. 30.
%
\bibitem{UMFPACK}
T.A.~Davis,
{\em Algorithm 832: UMFPACK - an Unsymmetric-pattern Multifrontal
Method with a Column Pre-ordering Strategy},
ACM Transactions on Mathematical Software, 30, 2004, 196--199.
(See also {\tt http://www.cise.ufl.edu/~davis/})
%
\bibitem{MUMPS}
P.R.~Amestoy, C.~Ashcraft, O.~Boiteau, A.~Buttari, J.~L'Excellent, C.~Weisbecker
{\em Improving multifrontal methods by means of block low-rank representations},
SIAM Journal on Scientific Computing, volume 37 (3), 2015, A1452--A1474.
See also {\tt http://mumps.enseeiht.fr}.
%
\bibitem{SUPERLU}
J.W.~Demmel, S.C.~Eisenstat, J.R.~Gilbert, X.S.~Li and J.W.H.~Liu,
A supernodal approach to sparse partial pivoting,
SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 720--755.
%
\bibitem{blas3}
J.~J.~Dongarra, J.~Du Croz, I.~S.~Duff, S.~Hammarling,
\emph{A set of Level 3 Basic Linear Algebra Subprograms},
ACM Transactions on Mathematical Software, 16 (1) 1990, 1--17.
%
\bibitem{blas2}
J.~J.~Dongarra, J.~Du Croz, S.~Hammarling, R.~J.~Hanson,
\emph{An extended set of FORTRAN Basic Linear Algebra Subprograms},
ACM Transactions on Mathematical Software, 14 (1) 1988, 1--17.
%
\bibitem{BLACS}
J.~J.~Dongarra and R.~C.~Whaley,
{\em A User's Guide to the BLACS v.~1.1},
Lapack Working Note 94, Tech.\ Rep.\ UT-CS-95-281, University of
Tennessee, March 1995 (updated May 1997).
%
\bibitem{EFSTATHIOU}
E.~Efstathiou, J.~G.~Gander,
{\em Why Restricted Additive Schwarz Converges Faster than Additive Schwarz},
BIT Numerical Mathematics, 43 (5), 2003, 945--959.
%
\bibitem{PSBLASGUIDE}
S.~Filippone, A.~Buttari,
{\em PSBLAS-3.0 User's Guide. A Reference Guide for the Parallel Sparse BLAS Library}, 2012,
available from \texttt{http://www.ce.uniroma2.it/psblas/}.
%
\bibitem{PSBLAS3}
Salvatore Filippone and Alfredo Buttari.
{\em Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003}.
ACM Transactions on on Mathematical Software, 38 (4), 2012, art. 23.
%
\bibitem{psblas_00}
S.~Filippone, M.~Colajanni,
{\em PSBLAS: A Library for Parallel Linear Algebra
Computation on Sparse Matrices},
ACM Transactions on Mathematical Software, 26 (4), 2000, 527--550.
%
\bibitem{MPI2}
W.~Gropp, S.~Huss-Lederman, A.~Lumsdaine, E.~Lusk, B.~Nitzberg, W.~Saphir, M.~Snir,
{\em MPI: The Complete Reference. Volume 2 - The MPI-2 Extensions},
MIT Press, 1998.
%
\bibitem{blas1}
C.~L.~Lawson, R.~J.~Hanson, D.~Kincaid, F.~T.~Krogh,
\emph{Basic Linear Algebra Subprograms for FORTRAN usage},
ACM Transactions on Mathematical Software, 5 (3), 1979, 308--323.
%
\bibitem{SUPERLUDIST}
X.~S.~Li, J.~W.~Demmel, {\em SuperLU\_DIST: A Scalable Distributed-memory
Sparse Direct Solver for Unsymmetric Linear Systems},
ACM Transactions on Mathematical Software, 29 (2), 2003, 110--140.
%
\bibitem{Notay2008}
Y.~Notay, P.~S.~Vassilevski, {\em Recursive Krylov-based multigrid cycles},
Numerical Linear Algebra with Applications, 15 (5), 2008, 473--487.
%
\bibitem{Saad_book}
Y.~Saad,
{\em Iterative methods for sparse linear systems}, 2nd edition, SIAM, 2003.
%
\bibitem{dd2_96}
B.~Smith, P.~Bjorstad, W.~Gropp,
{\em Domain Decomposition: Parallel Multilevel Methods for Elliptic
Partial Differential Equations},
Cambridge University Press, 1996.
%
\bibitem{MPI1}
M.~Snir, S.~Otto, S.~Huss-Lederman, D.~Walker, J.~Dongarra,
{\em MPI: The Complete Reference. Volume 1 - The MPI Core}, second edition,
MIT Press, 1998.
%%
\bibitem{Stuben_01}
K.~St\"{u}ben,
{\em An Introduction to Algebraic Multigrid},
in A.~Sch\"{u}ller, U.~Trottenberg, C.~Oosterlee, Multigrid,
Academic Press, 2001.
%
\bibitem{TUMINARO_TONG}
R.~S.~Tuminaro, C.~Tong,
{\em Parallel Smoothed Aggregation Multigrid: Aggregation Strategies on Massively Parallel Machines}, in J. Donnelley, editor, Proceedings of SuperComputing 2000, Dallas, 2000.
%
\bibitem{VANEK_MANDEL_BREZINA}
P.~Van{\v e}k, J.~Mandel and M.~Brezina,
{\em Algebraic Multigrid by Smoothed Aggregation for Second and Fourth Order Elliptic Problems},
Computing, 56 (3) 1996, 179--196.
%
\end{thebibliography}
+66 -37
View File
@@ -2,7 +2,7 @@
\markboth{\textsc{MLD2P4 User's and Reference Guide}}
{\textsc{\ref{sec:building} Configuring and Building MLD2P4}}
In order to build MLD2P4 it is necessary to set up a Makefile with appropriate
values for your system; this is done by means of the \verb|configure|
system-dependent variables; this is done by means of the \verb|configure|
script. The distribution also includes the autoconf and automake
sources employed to generate the script, but usually this is not needed
to build the software.
@@ -24,7 +24,7 @@ The following base libraries are needed:
\item[BLAS] \cite{blas3,blas2,blas1} Many vendors provide optimized versions
of BLAS; if no vendor version is
available for a given platform, the ATLAS software
(\url{math-atlas.sourceforge.net/})
(\url{math-atlas.sourceforge.net})
may be employed. The reference BLAS from Netlib
(\url{www.netlib.org/blas}) are meant to define the standard
behaviour of the BLAS interface, so they are not optimized for any
@@ -35,14 +35,14 @@ The following base libraries are needed:
libraries. Note that UMFPACK requires a full LAPACK library; our
experience is that configuring ATLAS for building full LAPACK does not
work in the correct way. Our advice is first to download the LAPACK tarfile from
\url{www.netlib.org/lapac} and install it independently of ATLAS. In this case,
\url{www.netlib.org/lapack} and install it independently of ATLAS. In this case,
you need to modify the OPTS and NOOPT definitions for including -fPIC compilation option
in the make.inc file of the LAPACK library.
\item[MPI] \cite{MPI2,MPI1} A version of MPI is available on most
high-performance computing systems.
\item[PSBLAS] \cite{PSBLASGUIDE,psblas_00} Parallel Sparse BLAS (PSBLAS) is
available from \url{www.ce.uniroma2.it/psblas}; version
3.4.0 (or later) is required. Indeed, all the prerequisites
3.5.0 (or later) is required. Indeed, all the prerequisites
listed so far are also prerequisites of PSBLAS.
\end{description}
Please note that the four previous libraries must have Fortran
@@ -50,7 +50,7 @@ interfaces compatible with MLD2P4;
usually this means that they should all be built with the same
compiler as MLD2P4.
\subsection{Optional third party libraries}
\subsection{Optional third party libraries\label{sec:third_party}}
We provide interfaces to the following third-party software libraries;
note that these are optional, but if you enable them some defaults
@@ -61,11 +61,11 @@ for multi-level preconditioners may change to reflect their presence.
A sparse LU factorization package included in the SuiteSparse library, available from
\url{faculty.cse.tamu.edu/davis/suitesparse.html};
it provides sequential factorization and triangular system solution for double
precision real and complex data. We tested
version 4.5.4. Note that for configuring SuiteSparse you should provide the right
path to the BLAS and LAPACK libraries in the \verb|SuiteSparse_config/SuiteSparse_config.mk| file.
precision real and complex data. We tested version 4.5.4 of SuiteSparse.
Note that for configuring SuiteSparse you should provide the right path to the BLAS
and LAPACK libraries in the \verb|SuiteSparse_config/SuiteSparse_config.mk| file.
\item[MUMPS] \cite{MUMPS}
A sparse LU factorization package available from \url{mumps.enseeiht.fr/};
A sparse LU factorization package available from \url{mumps.enseeiht.fr};
it provides sequential and parallel factorizations and triangular system solution
for single and double precision, real and complex data.
We tested versions 4.10.0 and version 5.0.1.
@@ -74,25 +74,24 @@ path to the BLAS and LAPACK libraries in the \verb|SuiteSparse_config/SuiteSpars
\url{crd.lbl.gov/~xiaoye/SuperLU/}; it provides sequential
factorization and triangular system solution for single and double precision,
real and complex data. We tested version 4.3 and 5.0. If you installed BLAS from
ATLAS, remember to define the BLASLIB variable in the make.inc file.
ATLAS, remember to define the BLASLIB variable in the make.inc file.
\item[SuperLU\_Dist] \cite{SUPERLUDIST}
A sparse LU factorization package available
from the same site as SuperLU; it provides parallel factorization and
triangular system solution for double precision real and complex data.
We tested version 3.3 and 4.2. If you installed BLAS from
ATLAS, remember to define the BLASLIB variable in the make.inc file and
to add the \verb|-std=c99| option to the C compiler options.
Note that this library requires the ParMETIS
library for parallel graph partitioning and fill-reducing matrix ordering available from
\url{glaros.dtc.umn.edu/gkhome/metis/parmetis/overview}.
ATLAS, remember to define the BLASLIB variable in the make.inc file and
to add the \verb|-std=c99| option to the C compiler options.
Note that this library requires the ParMETIS
library for parallel graph partitioning and fill-reducing matrix ordering, available from
\url{glaros.dtc.umn.edu/gkhome/metis/parmetis/overview}.
\end{description}
\subsection{Configuration options}
{\bf CONTROLLARE HELP DEL CONFIGURE: Versione MLD2P4, Versione PSBLAS, Influential Environmental Variables???}
To build MLD2P4 the first step is to use the \verb|configure| script
in the main directory to generate the necessary makefile(s).
In order to build MLD2P4, the first step is to use the \verb|configure| script
in the main directory to generate the necessary makefile.
%\textbf{Sono necessarie le parentesi intorno a s?}
As a minimal example consider the following:
\begin{verbatim}
@@ -105,7 +104,7 @@ be specified with an {\em absolute} path).
The full set of options may be looked at by issuing the command
\verb|./configure --help|, which produces:
\begin{verbatim}
`configure' configures MLD2P4 2.0 to adapt to many kinds of systems.
`configure' configures MLD2P4 2.1 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
@@ -159,27 +158,55 @@ Fine tuning of the installation directories:
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-serial Specify whether to enable a fake mpi library to run
in serial mode.
--enable-long-integers Specify usage of 64 bits integers.
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-psblas=DIR The install directory for PSBLAS, for example,
--with-psblas=/opt/packages/psblas-3.3
--with-psblas=/opt/packages/psblas-3.5
--with-psblas-incdir=DIR
Specify the directory for PSBLAS includes.
--with-psblas-libdir=DIR
Specify the directory for PSBLAS library.
--with-ccopt additional CCOPT flags to be added: will prepend
to CCOPT
--with-fcopt additional FCOPT flags to be added: will prepend
to FCOPT
--with-libs List additional link flags here. For example,
--with-libs=-lspecial_system_lib or
--with-libs=-L/path/to/libs
--with-clibs additional CLIBS flags to be added: will prepend
to CLIBS
--with-flibs additional FLIBS flags to be added: will prepend
to FLIBS
--with-library-path additional LIBRARYPATH flags to be added: will
prepend to LIBRARYPATH
--with-include-path additional INCLUDEPATH flags to be added: will
prepend to INCLUDEPATH
--with-module-path additional MODULE_PATH flags to be added: will
prepend to MODULE_PATH
--with-extra-libs List additional link flags here. For example,
--with-extra-libs=-lspecial_system_lib or
--with-extra-libs=-L/path/to/libs
--with-mumps=LIBNAME Specify the libname for MUMPS. Default: "-lsmumps
-ldmumps -lcmumps -lzmumps -lmumps_common -lpord"
--with-blas=<lib> use BLAS library <lib>
--with-blasdir=<dir> search for BLAS library in <dir>
--with-lapack=<lib> use LAPACK library <lib>
--with-mumps=LIBNAME Specify the libname for MUMPS. Default: autodetect
with minimum "-lmumps_common -lpord"
--with-mumpsdir=DIR Specify the directory for MUMPS library and
includes. Note: you will need to add auxiliary
libraries with --extra-libs; this depends on how
@@ -225,24 +252,22 @@ Some influential environment variables:
CFLAGS C compiler flags
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
MPICC MPI C compiler command
F77 Fortran 77 compiler command
FFLAGS Fortran 77 compiler flags
MPIF77 MPI Fortran 77 compiler command
MPIFC MPI Fortran compiler command
CPP C preprocessor
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <bugreport@mld2p4.it>.
\end{verbatim}
For instance, if a user has built and installed PSBLAS 3.4 under the
For instance, if a user has built and installed PSBLAS 3.5 under the
\verb|/opt| directory and is
using the SuiteSparse package (which includes UMFPACK), then MLD2P4
might be configured with:
\begin{verbatim}
./configure --with-psblas=/opt/psblas-3.4/ \
./configure --with-psblas=/opt/psblas-3.5/ \
--with-umfpackincdir=/usr/include/suitesparse/
\end{verbatim}
Once the configure script has completed execution, it will have
@@ -253,7 +278,9 @@ install directory under the name \verb|Make.inc.MLD2P4|.
To use the MUMPS solver package,
the user has to add the appropriate options to the configure script;
by default we are looking for the libraries
\verb|-ldmumps -lsmumps| \verb|-lzmumps -lzmumps -mumps_common -lpord|.
\verb|-ldmumps -lsmumps| \verb|-lzmumps -mumps_common -lpord|.
\textbf{Pasqua, c'era due volte lzmumps. L'ho eliminato, ma poi mi e' venuto
il dubbio che il secondo lzmumps dovesse essere modificato.}
MUMPS often uses additional packages such as ScaLAPACK, ParMETIS,
SCOTCH, as well as enabling OpenMP; in such cases it is necessary to
add linker options with the \verb|--with-extra-libs| configure option.
@@ -267,7 +294,7 @@ followed (optionally) by
make install
\end{verbatim}
\subsection{Bug reporting}
If you find any bugs in our codes, please let us know at (DECIDERE A CHI FARE IL BUG REPORTING)
If you find any bugs in our codes, please let us know at
\begin{rawhtml}
<a href="mailto:bugreport@mld2p4.it">
\end{rawhtml}
@@ -277,7 +304,8 @@ If you find any bugs in our codes, please let us know at (DECIDERE A CHI FARE IL
\end{rawhtml}
; be aware that
the amount of information needed to reproduce a problem in a parallel
program may vary quite a lot.
program may vary quite a lot. \textbf{A chi va fatto il bug reporting? La
mail inviata a questo indirizzo non viene mai letta.}
\subsection{Example and test programs\label{sec:ex_and_test}}
The package contains the \verb|examples| and \verb|tests| directories;
both of them are further divided into \verb|fileread| and
@@ -286,13 +314,14 @@ both of them are further divided into \verb|fileread| and
\item[\tt examples] contains a set of simple example programs with a
predefined choice of preconditioners, selectable via integer
values. These are intended to get an acquaintance with the
multilevel preconditioners.
multi-level preconditioners available in MLD2P4.
\item[\tt tests] contains a set of more sophisticated examples that
will allow the user, via the input files in the \verb|runs|
subdirectories, to experiment with the full range of preconditioners
implemented in the library.
implemented in the package.
\end{description}
The \verb|fileread| directories contain sample programs that read
sparse matrices from files, according to the Matrix Market or the
Harwell-Boeing storage format; the \verb|pdegen| instead generate
matrices in full parallel mode from the discretization of a sample PDE.
Harwell-Boeing storage format; the \verb|pdegen| programs generate
matrices in full parallel mode from the discretization of a sample partial
differential equation.
+9 -9
View File
@@ -41,9 +41,9 @@ The following steps are required:
is multi-level, then two steps must be performed, as specified next.
\begin{enumerate}
\item[4.1] \emph{Build the aggregation hierarchy for a given matrix.} This is
performed by the routine \verb|hierarchy_bld|.
performed by the routine \verb|hierarchy_build|.
\item[4.2] \emph{Build the preconditioner for a given matrix.} This is performed
by the routine \verb|smoothers_bld|.
by the routine \verb|smoothers_build|.
\end{enumerate}
If the selected preconditioner is one-level, it is built in a single step,
performed by the routine \verb|bld|.
@@ -118,7 +118,7 @@ on parallel computers.
The code reported in Figure~\ref{fig:ex1} shows how to set and apply the default
multi-level preconditioner available in the real double precision version
of MLD2P4 (see Table~\ref{tab:precinit}). This preconditioner is chosen
by simply specifying \verb|'ML'| as second argument of \verb|P%init|
by simply specifying \verb|'ML'| as the second argument of \verb|P%init|
(a call to \verb|P%set| is not needed) and is applied with the CG
solver provided by PSBLAS (the matrix of the system to be solved is
assumed to be positive definite). As previously observed, the modules
@@ -179,8 +179,8 @@ the corresponding codes are available in \verb|examples/fileread/|.
call P%init(P,'ML',info)
!
! build the preconditioner
call P%hierarchy_bld(A,desc_A,P,info)
call P%smoothers_bld(A,desc_A,P,info)
call P%hierarchy_build(A,desc_A,P,info)
call P%smoothers_build(A,desc_A,P,info)
!
! set the solver parameters and the initial guess
@@ -264,8 +264,8 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
call_P%set(P,'SMOOTHER_TYPE','BJAC',info)
call P%set(P,'COARSE_SOLVE','BJAC',info)
call P%set(P,'COARSE_SWEEPS',8,info)
call P%hierarchy_bld(A,desc_A,P,info)
call P%smoothers_bld(A,desc_A,P,info)
call P%hierarchy_build(A,desc_A,P,info)
call P%smoothers_build(A,desc_A,P,info)
... ...
\end{verbatim}
}
@@ -291,8 +291,8 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
call P%set('SMOOTHER_SWEEPS',2,info,pos='POST')
call P%set('COARSE_SOLVE','MUMPS',info)
call P%set('COARSE_MAT','DIST',info)
call P%hierarchy_bld(A,desc_A,P,info)
call P%smoothers_bld(A,desc_A,P,info)
call P%hierarchy_build(A,desc_A,P,info)
call P%smoothers_build(A,desc_A,P,info)
... ...
! solve Ax=b with preconditioned CG
call psb_krylov('BICGSTAB',A,P,b,x,tol,desc_A,info)
+5 -6
View File
@@ -13,13 +13,12 @@ terms: {\small
(C) Copyright 2008, 2010, 2012, 2017
Salvatore Filippone Cranfield University
Ambra Abdullahi Hassan University of Rome Tor Vergata
Alfredo Buttari CNRS-IRIT, Toulouse
Pasqua D'Ambra ICAR-CNR, Naples
Daniela di Serafino Second University of Naples
Salvatore Filippone Cranfield University, Cranfield, UK
Ambra Abdullahi Hassan University of Rome Tor Vergata, Rome, IT
Alfredo Buttari CNRS-IRIT, Toulouse, FR
Pasqua D'Ambra IAC-CNR, Naples, IT
Daniela di Serafino University of Campania L. Vanvitelli, Caserta, IT
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
+61 -50
View File
@@ -3,10 +3,9 @@
{\textsc{\ref{sec:overview} General Overview}}
The \textsc{Multi-Level Domain Decomposition Parallel Preconditioners Package based on
PSBLAS (MLD2P4}) provides parallel Algebraic MultiGrid (AMG) and domain decomposition
preconditioners, designed to provide scalable and easy-to-use preconditioners
multi-level Schwarz preconditioners~\cite{Stuben_01,dd2_96},
to be used in the iterative solutions of sparse linear systems:
PSBLAS (MLD2P4}) provides parallel Algebraic MultiGrid (AMG) and Domain
Decomposition preconditioners (see, e.g., \cite{Briggs2000,Stuben_01,dd2_96}),
to be used in the iterative solution of linear systems,
\begin{equation}
Ax=b,
\label{system1}
@@ -17,22 +16,34 @@ where $A$ is a square, real or complex, sparse matrix.
%Dovremmo implementare uno smoothed prolongator
%adeguato e fare qualcosa di consistente anche con 1-lev Schwarz.}
%
Multi-level preconditioners can be obtained by combining several AMG cycles (V, W, K) with
different smoothers (Jacobi, hybrid forward/backward Gauss-Seidel, block-Jacobi, additive Schwarz methods).
An algebraic approach is used to
generate a hierarchy of coarse-level matrices and operators, without
explicitly using any information on the geometry of the original problem, e.g.,
the discretization of a PDE. The smoothed aggregation technique is applied
as algebraic coarsening strategy~\cite{BREZINA_VANEK,VANEK_MANDEL_BREZINA}.
Either exact or approximate solvers are available to solve the coarsest-level system. Specifically,
different versions of sparse LU factorizations from external packages, and native incomplete
LU factorizations and iterative block-Jacobi solvers can be used.
All smoothers can be also exploited as one-level preconditioners.
The name of the package comes from its original implementation, containing
multi-level additive and hybrid Schwarz preconditioners, as well as one-level additive
Schwarz preconditioners. The current version extends the original plan by including
multi-level cycles and smoothers widely used in multigrid methods.
The multi-level preconditioners implemented in MLD2P4 are obtained by combining
AMG cycles with smoothers and coarsest-level solvers. The V-, W-, and
K-cycles~\cite{Briggs2000,Notay2008} are available, which allow to define
almost all the preconditioners in the package, including the multi-level hybrid
Schwarz ones; a specific cycle is implemented to obained multi-level additive
Schwarz preconditioners. The Jacobi, hybrid
%\footnote{see Note 2 in Table~\ref{tab:p_coarse}, p.~28.}
forward/backward Gauss-Seidel, block-Jacobi, and additive Schwarz methods
are available as smoothers. An algebraic approach is used to generate a hierarchy of
coarse-level matrices and operators, without explicitly using any information on the
geometry of the original problem, e.g., the discretization of a PDE. To this end,
the smoothed aggregation technique~\cite{BREZINA_VANEK,VANEK_MANDEL_BREZINA}
is applied. Either exact or approximate solvers can be used on the coarsest-level
system. Specifically, different sparse LU factorizations from external
packages, and native incomplete LU factorizations and Jacobi, hybrid Gauss-Seidel,
and block-Jacobi solvers are available. All smoothers can be also exploited as one-level
preconditioners.
MLD2P4 is written in Fortran~2003, following an
object-oriented design through the exploitation of features
such as abstract data type creation, functional overloading, and
dynamic memory management.
such as abstract data type creation, type extension, functional overloading, and
dynamic memory management. % \textbf{Va bene cos\'{i} o \`e meglio
% fare riferimento alle classi?}
The parallel implementation is based on a Single Program Multiple Data
(SPMD) paradigm. Single and
double precision implementations of MLD2P4 are available for both the
@@ -40,53 +51,53 @@ real and the complex case, which can be used through a single
interface.
MLD2P4 has been designed to implement scalable and easy-to-use
multilevel preconditioners in the context of the PSBLAS
(Parallel Sparse BLAS) computational framework~\cite{psblas_00,PSBLAS3}.
PSBLAS provides basic linear algebra
multilevel preconditioners in the context of the PSBLAS (Parallel Sparse BLAS)
computational framework~\cite{psblas_00,PSBLAS3}. PSBLAS provides basic linear algebra
operators and data management facilities for distributed sparse matrices,
as well as parallel Krylov solvers which can be coupled with the MLD2P4 preconditioners.
as well as parallel Krylov solvers which can be used with the MLD2P4 preconditioners.
The choice of PSBLAS has been mainly motivated by the need of having
a portable and efficient software infrastructure implementing ``de facto'' standard
parallel sparse linear algebra kernels, to pursue goals such as performance,
portability, modularity ed extensibility in the development of the preconditioner
package. On the other hand, the implementation of MLD2P4 has led to some
revisions and extentions of the original PSBLAS kernels.
The inter-process comunication required
by MLD2P4 is encapsulated into the PSBLAS routines, except few cases where
MPI~\cite{MPI1} is explicitly called \textbf{\'E ancora cosi???}. Therefore, MLD2P4 can be run on any parallel
machine where PSBLAS and MPI implementations are available.
The inter-process comunication required by MLD2P4 is encapsulated
in the PSBLAS routines;% , except few cases where MPI~\cite{MPI1} is explicitly called.
% \textbf{E' ancora cos\'{i} o adesso \`e tutto incapsulato in PSBLAS?}
therefore, MLD2P4 can be run on any parallel machine where PSBLAS
implementations are available.
MLD2P4 has a layered and modular software architecture where three main layers can be identified.
The lower layer consists of the PSBLAS kernels, the middle one implements
MLD2P4 has a layered and modular software architecture where three main layers can be
identified. The lower layer consists of the PSBLAS kernels, the middle one implements
the construction and application phases of the preconditioners, and the upper one
provides a uniform interface to all the preconditioners.
This architecture allows for different levels of use of the package:
few black-box routines at the upper layer allow non-expert users to easily
build any preconditioner available in MLD2P4 and to apply it within a PSBLAS Krylov solver;
{\bf facilities are also available that allow more expert users to extend the set of smoothers
and solvers for building new versions of preconditioners.}
few black-box routines at the upper layer allow all users to easily
build and apply any preconditioner available in MLD2P4;
facilities are also available allowing expert users to extend the set of smoothers
and solvers for building new versions of the preconditioners (see
Section~\ref{sec:adding}).
We note that the user interface of MLD2P4 2.1 ({\bf Perche 2.1 e non 2.0???...Ricordarsi di cambiare il configure})
has been extended with respect to the previous versions
in order to separate the construction
of the multi-level hierarchy from the construction of the smoothers and solvers, and to allow for more flexibility
at each level.
The software architecture described in~\cite{MLD2P4_TOMS} has significantly evolved too, in order to fully exploit the
Fortran~2003 features implemented in PSBLAS 3.
We note that the user interface of MLD2P4 2.1 has been extended with respect to the
previous versions in order to separate the construction of the multi-level hierarchy from
the construction of the smoothers and solvers, and to allow for more flexibility
at each level. The software architecture described in~\cite{MLD2P4_TOMS} has significantly
evolved too, in order to fully exploit the Fortran~2003 features implemented in PSBLAS 3.
However, compatibility with previous versions has been preserved.
This guide is organized as follows. General information on the distribution of the source code
is reported in Section~\ref{sec:distribution}, while details on the configuration
and installation of the package are given in Section~\ref{sec:building}. A short description of
the preconditioners implemented in MLD2P4 is provided
in Section~\ref{sec:background}, to help the users in choosing among them.
The basics for building and applying the preconditioners
with the Krylov solvers implemented in PSBLAS are reported in Section~\ref{sec:started}, where the
Fortran codes of a few sample programs are also shown. A reference guide for
the upper-layer routines of MLD2P4, that are the user interface, is provided
in Section~\ref{sec:userinterface}. The error handling mechanism used by the package is briefly described
in Section~\ref{sec:errors}. The copyright terms concerning the distribution and modification
of MLD2P4 are reported in Appendix~\ref{sec:license}.
This guide is organized as follows. General information on the distribution of the source
code is reported in Section~\ref{sec:distribution}, while details on the configuration
and installation of the package are given in Section~\ref{sec:building}. A short description
of the preconditioners implemented in MLD2P4 is provided in Section~\ref{sec:background},
to help the users in choosing among them. The basics for building and applying the
preconditioners with the Krylov solvers implemented in PSBLAS are reported
in~Section~\ref{sec:started}, where the Fortran codes of a few sample programs
are also shown. A reference guide for the user interface routines is provided
in Section~\ref{sec:userinterface}. Information on the extension of the package
through the addition of new smoothers and solvers is reported in Section~\ref{sec:adding}.
The error handling mechanism used by the package
is briefly described in Section~\ref{sec:errors}. The copyright terms concerning the
distribution and modification of MLD2P4 are reported in Appendix~\ref{sec:license}.
%%% Local Variables:
%%% mode: latex
+1 -2
View File
@@ -154,7 +154,6 @@ based on PSBLAS}
\include{overview}
\include{distribution}
\include{building}
\include{background}
\include{gettingstarted}
\include{userinterface}
@@ -162,7 +161,7 @@ based on PSBLAS}
\clearpage
\appendix
\include{license}
\cleardoublepage
\clearpage
\include{bibliography}
\end{document}
+29 -33
View File
@@ -4,7 +4,7 @@
The basic user interface of MLD2P4 consists of eight routines. The six
routines \verb|init|, \verb|set|,
\verb|hierarchy_bld|, \verb|smoothers_bld|,
\verb|hierarchy_build|, \verb|smoothers_build|,
\verb|bld|, and \verb|apply| encapsulate all the
functionalities for the setup and the application of any multi-level and one-level
preconditioner implemented in the package.
@@ -199,10 +199,9 @@ coarsest-level solvers, and shortcuts are available
in this case too (see Table~\ref{tab:p_coarse}). \\
\textbf{Remark 3.} In general, a coarsest-level solver cannot be used with
both the replicated and distributed coarsest-matrix layout, and vice versa;
therefore, setting the solver after the layout may change the layout, and setting
the layout after the solver may change the solver, if the choices of the two
parameters do not agree.
both the replicated and distributed coarsest-matrix layout;
therefore, setting the solver after the layout may change the layout.
Similarly, setting the layout after the solver may change the solver.
More precisely, UMFPACK and SuperLU require the coarsest-level
matrix to be replicated, while SuperLU\_Dist requires it to be distributed.
@@ -368,7 +367,9 @@ of levels. } \\
& How the damping parameter $\omega$ in the
smoothed aggregation is obtained:
either via an estimate of the spectral radius of
$D^{-1}A$, or explicily
$D^{-1}A$, where $A$ is the matrix at the current
level and $D$ is the diagonal matrix with
the same diagonal entires as $A$, or explicily
specified by the user. \\ \hline
\verb|mld_aggr_eig_| \par \verb|AGGR_EIG| & \verb|character(len=*)|
& \texttt{'A\_NORMI'}
@@ -420,13 +421,13 @@ the parameter \texttt{ilev}.} \\
& \texttt{'MUMPS'} \par \texttt{'UMF'} \par
\texttt{'SLU'} \par \texttt{'SLUDIST'} \par
\texttt{'JACOBI'} \par \texttt{'GS'} \par \texttt{'BJAC'}
& See~Note~1
& See~Note.
& Solver used at the coarsest level: sequential
LU from MUMPS, UMFPACK, or SuperLU
(plus tri\-an\-gular solve);
distributed LU from MUMPS or SuperLU\_Dist
(plus triangular solve);
point-Jacobi, hybrid Gauss-Seidel (see Note~2) or block-Jacobi. \par
point-Jacobi, hybrid Gauss-Seidel or block-Jacobi. \par
Note that \texttt{UMF} and \texttt{SLU} require the coarsest
matrix to be replicated, \texttt{SLUDIST}, \texttt{JACOBI},
\texttt{GS} and \texttt{BJAC} require it to be
@@ -440,7 +441,7 @@ the parameter \texttt{ilev}.} \\
\verb|mld_coarse_subsolve_| \par \verb|COARSE_SUBSOLVE| & \verb|character(len=*)|
& \texttt{'ILU'} \par \texttt{'ILUT'} \par \texttt{'MILU'} \par
\texttt{'MUMPS'} \par \texttt{'SLU'} \par \texttt{'UMF'}
& See~Note~1
& See~Note.
& Solver for the diagonal blocks of the coarse matrix,
in case the block Jacobi solver
is chosen as coarsest-level solver: ILU($p$), ILU($p,t$),
@@ -449,7 +450,7 @@ the parameter \texttt{ilev}.} \\
Note that UMFPACK and SuperLU\_Dist
are available only in double precision. \\
\hline
\multicolumn{5}{|l|}{{\bfseries Note 1.} Defaults for \texttt{mld\_coarse\_solve\_} and
\multicolumn{5}{|l|}{{\bfseries Note.} Defaults for \texttt{mld\_coarse\_solve\_} and
\texttt{mld\_coarse\_subsolve\_} are chosen in the following order:} \\
\multicolumn{5}{|l|}{single precision version -- \texttt{MUMPS} if installed,
then \texttt{SLU} if installed,
@@ -457,11 +458,6 @@ the parameter \texttt{ilev}.} \\
\multicolumn{5}{|l|}{double precision version -- \texttt{UMF} if installed,
then \texttt{MUMPS} if installed, then \texttt{SLU} if
installed, \texttt{ILU} otherwise.}\\
\multicolumn{5}{|l|}{{\bfseries Note 2.} The hybrid Gauss-Seidel method is
between the Gauss-Seidel and Jacobi methods: at each iteration, the process-} \\
\multicolumn{5}{|l|}{es use the most recent values of their own local variables, and the values of
the non-local variables computed at the previ-}\\
\multicolumn{5}{|l|}{ous iteration.}\\
\hline
\end{tabular}
\end{center}
@@ -512,7 +508,7 @@ level (continued).\label{tab:p_coarse_1}}
& Type of smoother used in the multi-level preconditioner:
point-Jacobi, hybrid (forward) Gauss-Seidel,
hybrid backward Gauss-Seidel, block-Jacobi, and
Additive Schwarz. See Note for details on hybrix Gauss-Seidel.\par
Additive Schwarz. \par
It is ignored by one-level preconditioners. \\ \hline
\verb|mld_sub_solve_| \par \verb|SUB_SOLVE| & \verb|character(len=*)|
& \texttt{'JACOBI'} \par
@@ -541,11 +537,7 @@ level (continued).\label{tab:p_coarse_1}}
\verb|mld_sub_ovr_| \par \verb|SUB_OVR| & \verb|integer|
& Any integer \par number~$\ge 0$
& 1
& Number of overlap layers, for Additive Schwarz only. \\ \hline
\multicolumn{5}{|l|}{{\bfseries Note.} The hybrid Gauss-Seidel method is
between the Gauss-Seidel and Jacobi methods: at each iteration, the processes use the} \\
\multicolumn{5}{|l|}{most recent values of their own local variables, and the values of
the non-local variables computed at the previous iteration.}\\
& Number of overlap layers, for Additive Schwarz only. \\
\hline
\end{tabular}
\end{center}
@@ -565,13 +557,17 @@ the non-local variables computed at the previous iteration.}\\
& \texttt{'HALO'}
& Type of restriction operator, for Additive Schwarz only:
\texttt{HALO} for taking into account the overlap, \texttt{NONE}
for neglecting it. \\ \hline
for neglecting it. \par
Note that \texttt{HALO} must be chosen for
the classical Addditive Schwarz smoother and its RAS variant.\\ \hline
\verb|mld_sub_prol_| \par \verb|SUB_PROL| & \verb|character(len=*)|
& \texttt{'SUM'} \par \texttt{'NONE'}
& \texttt{'NONE'}
& Type of prolongation operator, for Additive Schwarz only:
\texttt{SUM} for adding the contributions from the overlap, \texttt{NONE}
for neglecting them. \\ \hline
for neglecting them. \par
Note that \texttt{SUM} must be chosen for the classical Additive
Schwarz smoother, and \texttt{NONE} for its RAS variant. \\ \hline
\verb|mld_sub_fillin_| \par \verb|SUB_FILLIN| & \verb|integer|
& Any integer \par number~$\ge 0$
& 0
@@ -601,16 +597,16 @@ the non-local variables computed at the previous iteration.}\\
\clearpage
\subsection{Subroutine bld\label{sec:precbld}}
\subsection{Subroutine build\label{sec:precbld}}
\begin{center}
\verb|call p%bld(a,desc_a,info)|\\
\verb|call p%build(a,desc_a,info)|\\
\end{center}
\noindent
This routine builds the one-level preconditioner \verb|p| according to the requirements
made by the user through the routines \verb|init| and \verb|set|
(see Sections~\ref{sec:hier_bld} and~\ref{sec:smoothers_bld} for multi-level preconditioners).
(see Sections~\ref{sec:hier_bld} and~\ref{sec:smooth_bld} for multi-level preconditioners).
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
@@ -643,10 +639,10 @@ In this case, the routine can be used to build multi-level preconditioners too.
\clearpage
\subsection{Subroutine hierarchy\_bld\label{sec:hier_bld}}
\subsection{Subroutine hierarchy\_build\label{sec:hier_bld}}
\begin{center}
\verb|call p%hierarchy_bld(a,desc_a,info)|\\
\verb|call p%hierarchy_build(a,desc_a,info)|\\
\end{center}
\noindent
@@ -676,18 +672,18 @@ single/double precision version of MLD2P4 under use.
\clearpage
\subsection{Subroutine smoothers\_bld\label{sec:smoothers_bld}}
\subsection{Subroutine smoothers\_build\label{sec:smooth_bld}}
\begin{center}
\verb|call p%smoothers_bld(a,desc_a,p,info)|\\
\verb|call p%smoothers_build(a,desc_a,p,info)|\\
\end{center}
\noindent
This routine builds the smoothers and the coarsest-level solvers for the
multi-level preconditioner \verb|p|, according to the requirements made by
the user through the routines \verb|init| and \verb|set|, and based on the aggregation
hierarchy produced by a previous call to \verb|hierarchy_bld|
hierarchy produced by a previous call to \verb|hierarchy_build|
(see Section~\ref{sec:hier_bld}).
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
@@ -804,8 +800,8 @@ as follows:
\noindent
This routine prints a description of the preconditioner \verb|p| to the standard output or
to a file. It must be called after \verb|hierachy_bld| and \verb|smoothers_bld|,
or \verb|bld|, have been called.
to a file. It must be called after \verb|hierachy_build| and \verb|smoothers_build|,
or \verb|build|, have been called.
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip