mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-18 11:52:12 +00:00
mld2p4-2:
docs/html/userhtml.html docs/mld2p4-2.1-guide.pdf docs/src/abstract.tex docs/src/background.tex docs/src/bibliography.tex docs/src/building.tex docs/src/distribution.tex docs/src/gettingstarted.tex docs/src/overview.tex docs/src/userguide.tex docs/src/userinterface.tex mlprec/impl/mld_ccprecset.F90 mlprec/impl/mld_cprecset.F90 mlprec/impl/mld_csp_renum.f90 mlprec/impl/mld_dcprecset.F90 mlprec/impl/mld_dprecset.F90 mlprec/impl/mld_dsp_renum.f90 mlprec/impl/mld_scprecset.F90 mlprec/impl/mld_sprecset.F90 mlprec/impl/mld_ssp_renum.f90 mlprec/impl/mld_z_onelev_impl.f90 mlprec/impl/mld_zcprecset.F90 mlprec/impl/mld_zprecset.F90 mlprec/impl/mld_zsp_renum.f90 mlprec/mld_base_prec_type.F90 Take out SUB_REN. Update docs.
This commit is contained in:
+70
-72
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html102"
|
||||
<A NAME="tex2html113"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html98"
|
||||
<A NAME="tex2html109"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html92"
|
||||
<A NAME="tex2html103"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html100"
|
||||
<A NAME="tex2html111"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html103"
|
||||
<B> Next:</B> <A NAME="tex2html114"
|
||||
HREF="node4.html">Code Distribution</A>
|
||||
<B> Up:</B> <A NAME="tex2html99"
|
||||
<B> Up:</B> <A NAME="tex2html110"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html93"
|
||||
<B> Previous:</B> <A NAME="tex2html104"
|
||||
HREF="node2.html">Contents</A>
|
||||
<B> <A NAME="tex2html101"
|
||||
<B> <A NAME="tex2html112"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
@@ -58,8 +58,11 @@ General Overview
|
||||
|
||||
<P>
|
||||
The M<SMALL>ULTI-</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE BASED ON
|
||||
</SMALL>PSBLAS (MLD2P4) provides <I>multi-level Schwarz preconditioners</I> [<A
|
||||
HREF="node27.html#dd2_96">23</A>],
|
||||
</SMALL>PSBLAS (MLD2P4) provides parallel Algebraic MultiGrid (AMG) and domain decomposition
|
||||
preconditioners, designed to provide scalable and easy-to-use preconditioners
|
||||
multi-level Schwarz preconditioners [<A
|
||||
HREF="node28.html#Stuben_01">25</A>,<A
|
||||
HREF="node28.html#dd2_96">23</A>],
|
||||
to be used in the iterative solutions of sparse linear systems:
|
||||
<BR>
|
||||
<DIV ALIGN="RIGHT">
|
||||
@@ -83,116 +86,111 @@ Ax=b,
|
||||
where <IMG
|
||||
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img2.png"
|
||||
ALT="$A$"> is a square, real or complex, sparse matrix with a symmetric
|
||||
sparsity pattern. These preconditioners have the following general features:
|
||||
|
||||
<UL>
|
||||
<LI>both <I>additive and hybrid multilevel</I> variants are implemented,
|
||||
i.e. variants that are additive among the levels and inside each level, and variants
|
||||
that are multiplicative among the levels and additive inside each level;
|
||||
the basic Additive Schwarz (AS) preconditioners are obtained by considering only one level;
|
||||
</LI>
|
||||
<LI>a <I>purely algebraic</I> approach is used to
|
||||
generate a sequence of coarse-level corrections to a basic AS preconditioner, without
|
||||
explicitly using any information on the geometry of the original problem (e.g. the
|
||||
discretization of a PDE). The <I>smoothed aggregation</I> technique is applied
|
||||
ALT="$A$"> is a square, real or complex, sparse matrix. 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 [<A
|
||||
HREF="node27.html#BREZINA_VANEK">1</A>,<A
|
||||
HREF="node27.html#VANEK_MANDEL_BREZINA">27</A>].
|
||||
</LI>
|
||||
</UL>
|
||||
HREF="node28.html#BREZINA_VANEK">1</A>,<A
|
||||
HREF="node28.html#VANEK_MANDEL_BREZINA">27</A>].
|
||||
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.
|
||||
|
||||
<P>
|
||||
Version 2.1 of the package is written in <I>Fortran 2003</I>, following an
|
||||
<I>object-oriented design</I> through the exploitation of features
|
||||
such as abstract data type creation, functional overloading and
|
||||
dynamic memory management. The parallel implementation is based on a Single Program Multiple Data
|
||||
(SPMD) paradigm for distributed-memory architectures. Single and
|
||||
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.
|
||||
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
|
||||
real and the complex case, that can be used through a single
|
||||
real and the complex case, which can be used through a single
|
||||
interface.
|
||||
|
||||
<P>
|
||||
MLD2P4 has been designed to implement scalable and easy-to-use
|
||||
multilevel preconditioners in the context of the <I>PSBLAS
|
||||
(Parallel Sparse BLAS) computational framework</I> [<A
|
||||
HREF="node27.html#psblas_00">18</A>,<A
|
||||
HREF="node27.html#PSBLAS3">17</A>].
|
||||
PSBLAS is a library originally developed to address the parallel implementation of
|
||||
iterative solvers for sparse linear system, by providing basic linear algebra
|
||||
operators and data management facilities for distributed sparse matrices; it
|
||||
also includes parallel Krylov solvers, built on the top of the basic PSBLAS kernels.
|
||||
The preconditioners available in MLD2P4 can be used with these Krylov solvers.
|
||||
multilevel preconditioners in the context of the PSBLAS
|
||||
(Parallel Sparse BLAS) computational framework [<A
|
||||
HREF="node28.html#psblas_00">18</A>,<A
|
||||
HREF="node28.html#PSBLAS3">17</A>].
|
||||
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.
|
||||
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 PSBLAS kernels, leading to the
|
||||
PSBLAS 2.0 version [<A
|
||||
HREF="node27.html#PSBLASGUIDE">16</A>]. The inter-process comunication required
|
||||
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 [<A
|
||||
HREF="node27.html#MPI1">24</A>] is explicitly called. Therefore, MLD2P4 can be run on any parallel
|
||||
HREF="node28.html#MPI1">24</A>] is explicitly called <B>É ancora cosi???</B>. Therefore, MLD2P4 can be run on any parallel
|
||||
machine where PSBLAS and MPI implementations are available.
|
||||
|
||||
<P>
|
||||
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 and easy-to-use interface to all the preconditioners.
|
||||
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.
|
||||
On the other hand, the routines of the middle and lower layer can be used and extended
|
||||
by expert users to build new versions of multi-level Schwarz preconditioners.
|
||||
We provide here a description of the upper-layer routines, but not of the
|
||||
medium-layer ones.
|
||||
build any preconditioner available in MLD2P4 and to apply it within a PSBLAS Krylov solver;
|
||||
<B>facilities are also available that allow more expert users to extend the set of smoothers
|
||||
and solvers for building new versions of preconditioners.</B>
|
||||
|
||||
<P>
|
||||
The user interface of version 2.1 is essentially identical (except for
|
||||
the support of additional solvers) to that of
|
||||
version 1.1. The internal implementation however has been changed
|
||||
significantly; as a result, it has become much easier to extend the library by
|
||||
adding new smoothers and/or solvers, thanks to the Fortran 2003 features
|
||||
exploited in the design of PSBLAS 3.
|
||||
We note that the user interface of MLD2P4 2.1 (<B>Perche 2.1 e non 2.0???...Ricordarsi di cambiare il configure</B>)
|
||||
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 [<A
|
||||
HREF="node28.html#MLD2P4_TOMS">8</A>] 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.
|
||||
|
||||
<P>
|
||||
This guide is organized as follows. General information on the distribution of the source code
|
||||
is reported in Section <A HREF="node4.html#sec:distribution">2</A>, while details on the configuration
|
||||
and installation of the package are given in Section <A HREF="node5.html#sec:building">3</A>. A description of
|
||||
multi-level Schwarz preconditioners based on smoothed aggregation is provided
|
||||
in Section <A HREF="node11.html#sec:background">4</A>, to help the users in choosing among the different preconditioners
|
||||
implemented in MLD2P4. The basics for building and applying the preconditioners
|
||||
and installation of the package are given in Section <A HREF="node5.html#sec:building">3</A>. A short description of
|
||||
the preconditioners implemented in MLD2P4 is provided
|
||||
in Section <A HREF="node11.html#sec:background">4</A>, 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 <A HREF="node14.html#sec:started">5</A>, 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 <A HREF="node16.html#sec:userinterface">6</A>. The error handling mechanism used by the package is briefly described
|
||||
in Section <A HREF="node25.html#sec:errors">7</A>. The copyright terms concerning the distribution and modification
|
||||
of MLD2P4 are reported in Appendix <A HREF="node26.html#sec:license">A</A>.
|
||||
in Section <A HREF="node26.html#sec:errors">8</A>. The copyright terms concerning the distribution and modification
|
||||
of MLD2P4 are reported in Appendix <A HREF="node27.html#sec:license">A</A>.
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html102"
|
||||
<A NAME="tex2html113"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html98"
|
||||
<A NAME="tex2html109"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html92"
|
||||
<A NAME="tex2html103"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html100"
|
||||
<A NAME="tex2html111"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html103"
|
||||
<B> Next:</B> <A NAME="tex2html114"
|
||||
HREF="node4.html">Code Distribution</A>
|
||||
<B> Up:</B> <A NAME="tex2html99"
|
||||
<B> Up:</B> <A NAME="tex2html110"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html93"
|
||||
<B> Previous:</B> <A NAME="tex2html104"
|
||||
HREF="node2.html">Contents</A>
|
||||
<B> <A NAME="tex2html101"
|
||||
<B> <A NAME="tex2html112"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user