mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-07 07:04:59 +00:00
configure.ac configure docs/html docs/html/WARNINGS docs/html/images.aux docs/html/images.log docs/html/images.out docs/html/images.pl docs/html/images.tex docs/html/img1.png docs/html/img10.png docs/html/img100.png docs/html/img11.png docs/html/img12.png docs/html/img13.png docs/html/img14.png docs/html/img15.png docs/html/img16.png docs/html/img17.png docs/html/img18.png docs/html/img19.png docs/html/img2.png docs/html/img20.png docs/html/img21.png docs/html/img22.png docs/html/img23.png docs/html/img24.png docs/html/img25.png docs/html/img26.png docs/html/img27.png docs/html/img28.png docs/html/img29.png docs/html/img3.png docs/html/img30.png docs/html/img31.png docs/html/img32.png docs/html/img33.png docs/html/img34.png docs/html/img35.png docs/html/img36.png docs/html/img37.png docs/html/img38.png docs/html/img39.png docs/html/img4.png docs/html/img40.png docs/html/img41.png docs/html/img42.png docs/html/img43.png docs/html/img44.png docs/html/img45.png docs/html/img46.png docs/html/img47.png docs/html/img48.png docs/html/img49.png docs/html/img5.png docs/html/img50.png docs/html/img51.png docs/html/img52.png docs/html/img53.png docs/html/img54.png docs/html/img55.png docs/html/img56.png docs/html/img57.png docs/html/img58.png docs/html/img59.png docs/html/img6.png docs/html/img60.png docs/html/img61.png docs/html/img62.png docs/html/img63.png docs/html/img64.png docs/html/img65.png docs/html/img66.png docs/html/img67.png docs/html/img68.png docs/html/img69.png docs/html/img7.png docs/html/img70.png docs/html/img71.png docs/html/img72.png docs/html/img73.png docs/html/img74.png docs/html/img75.png docs/html/img76.png docs/html/img77.png docs/html/img78.png docs/html/img79.png docs/html/img8.png docs/html/img80.png docs/html/img81.png docs/html/img82.png docs/html/img83.png docs/html/img84.png docs/html/img85.png docs/html/img86.png docs/html/img87.png docs/html/img88.png docs/html/img89.png docs/html/img9.png docs/html/img90.png docs/html/img91.png docs/html/img92.png docs/html/img93.png docs/html/img94.png docs/html/img95.png docs/html/img96.png docs/html/img97.png docs/html/img98.png docs/html/img99.png docs/html/index.html docs/html/internals.pl docs/html/labels.pl docs/html/node1.html docs/html/node10.html docs/html/node11.html docs/html/node12.html docs/html/node13.html docs/html/node14.html docs/html/node15.html docs/html/node16.html docs/html/node17.html docs/html/node18.html docs/html/node19.html docs/html/node2.html docs/html/node20.html docs/html/node21.html docs/html/node22.html docs/html/node23.html docs/html/node24.html docs/html/node25.html docs/html/node26.html docs/html/node27.html docs/html/node28.html docs/html/node29.html docs/html/node3.html docs/html/node30.html docs/html/node31.html docs/html/node4.html docs/html/node5.html docs/html/node6.html docs/html/node7.html docs/html/node8.html docs/html/node9.html docs/html/userhtml.css docs/html/userhtml.html docs/pdf/building.tex docs/userguide.pdf examples/fileread/mld_cexample_1lev.f90 examples/fileread/mld_cexample_ml.f90 examples/fileread/mld_dexample_1lev.f90 examples/fileread/mld_dexample_ml.f90 examples/fileread/mld_sexample_1lev.f90 examples/fileread/mld_sexample_ml.f90 examples/fileread/mld_zexample_1lev.f90 examples/fileread/mld_zexample_ml.f90 mlprec/mld_cprecset.f90 mlprec/mld_dprecset.f90 mlprec/mld_sprecset.f90 mlprec/mld_zprecset.f90 test/fileread/cf_sample.f90 test/fileread/df_sample.f90 test/fileread/runs/cfs.inp test/fileread/runs/dfs.inp test/fileread/runs/sfs.inp test/fileread/runs/zfs.inp test/fileread/sf_sample.f90 test/fileread/zf_sample.f90 Fixed I/O for fileread samples. Fixed precset typo. Updated documentation for building. Included HTML pages.
214 lines
9.6 KiB
HTML
214 lines
9.6 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
|
|
<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
|
|
original version by: Nikos Drakos, CBLU, University of Leeds
|
|
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
|
* with significant contributions from:
|
|
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>General Overview</TITLE>
|
|
<META NAME="description" CONTENT="General Overview">
|
|
<META NAME="keywords" CONTENT="userhtml">
|
|
<META NAME="resource-type" CONTENT="document">
|
|
<META NAME="distribution" CONTENT="global">
|
|
|
|
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
|
|
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
|
|
|
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
|
|
|
<LINK REL="next" HREF="node3.html">
|
|
<LINK REL="previous" HREF="node1.html">
|
|
<LINK REL="up" HREF="userhtml.html">
|
|
<LINK REL="next" HREF="node3.html">
|
|
</HEAD>
|
|
|
|
<BODY >
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html89"
|
|
HREF="node3.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
|
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
|
<A NAME="tex2html85"
|
|
HREF="userhtml.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
|
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
|
<A NAME="tex2html79"
|
|
HREF="node1.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
|
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
|
<A NAME="tex2html87"
|
|
HREF="node1.html">
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
|
SRC="file:/usr/share/latex2html/icons/contents.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html90"
|
|
HREF="node3.html">Notational Conventions</A>
|
|
<B> Up:</B> <A NAME="tex2html86"
|
|
HREF="userhtml.html">userhtml</A>
|
|
<B> Previous:</B> <A NAME="tex2html80"
|
|
HREF="node1.html">Contents</A>
|
|
<B> <A NAME="tex2html88"
|
|
HREF="node1.html">Contents</A></B>
|
|
<BR>
|
|
<BR>
|
|
<!--End of Navigation Panel-->
|
|
|
|
<H1><A NAME="SECTION00020000000000000000"></A><A NAME="sec:overview"></A>
|
|
<BR>
|
|
General Overview
|
|
</H1>
|
|
|
|
<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="node30.html#dd2_96">15</A>],
|
|
to be used in the iterative solutions of sparse linear systems:
|
|
<BR>
|
|
<DIV ALIGN="RIGHT">
|
|
|
|
<!-- MATH
|
|
\begin{equation}
|
|
Ax=b,
|
|
\end{equation}
|
|
-->
|
|
<TABLE WIDTH="100%" ALIGN="CENTER">
|
|
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="system1"></A><IMG
|
|
WIDTH="57" HEIGHT="30" BORDER="0"
|
|
SRC="img1.png"
|
|
ALT="\begin{displaymath}
|
|
Ax=b,
|
|
\end{displaymath}"></TD>
|
|
<TD WIDTH=10 ALIGN="RIGHT">
|
|
(1)</TD></TR>
|
|
</TABLE>
|
|
<BR CLEAR="ALL"></DIV><P></P>
|
|
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
|
|
as algebraic coarsening strategy [<A
|
|
HREF="node30.html#BREZINA_VANEK">1</A>,<A
|
|
HREF="node30.html#VANEK_MANDEL_BREZINA">19</A>].
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>
|
|
The package is written in <I>Fortran 95</I>, following an
|
|
<I>object-oriented approach</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 double precision implementations of MLD2P4 are available for both the
|
|
real and the complex case, that 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="node30.html#psblas_00">12</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.
|
|
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
|
|
recent PSBLAS 2.0 version [<A
|
|
HREF="node30.html#PSBLASGUIDE">11</A>]. The inter-process comunication required
|
|
by MLD2P4 is encapsulated into the PSBLAS routines, except few cases where
|
|
MPI [<A
|
|
HREF="node30.html#MPI1">16</A>] is explicitly called. 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.
|
|
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.
|
|
|
|
<P>
|
|
This guide is organized as follows. The notational conventions used in
|
|
the guide and in the naming of the MLD2P4 routines are reported in
|
|
Section <A HREF="node3.html#sec:conventions"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
|
|
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>. Information on the distribution of the source code and the
|
|
related license is given in Section <A HREF="node4.html#sec:distribution"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
|
|
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>, while details on the configuration
|
|
and installation of package are given in Section <A HREF="node5.html#sec:building"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
|
|
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>. A description of
|
|
multi-level Schwarz preconditioners based on smoothed aggregation is provided
|
|
in Section <A HREF="node10.html#sec:background"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
|
|
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>, to help the users in choosing among the different preconditioners
|
|
implemented in MLD2P4. The basics for building and applying the preconditioners
|
|
with the Krylov solvers implemented in PSBLAS are reported in Section <A HREF="node13.html#sec:started"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
|
|
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>, where the
|
|
Fortran 95 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="node15.html#sec:userinterface"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
|
|
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>. The error handling mechanism used by the package is briefly described
|
|
in Section <A HREF="node28.html#sec:errors"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
|
|
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>. The copyright terms concerning the distribution and modification
|
|
of MLD2P4 are reported in Appendix <A HREF="node29.html#sec:license"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
|
|
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>.
|
|
|
|
<P>
|
|
<HR>
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html89"
|
|
HREF="node3.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
|
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
|
<A NAME="tex2html85"
|
|
HREF="userhtml.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
|
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
|
<A NAME="tex2html79"
|
|
HREF="node1.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
|
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
|
<A NAME="tex2html87"
|
|
HREF="node1.html">
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
|
SRC="file:/usr/share/latex2html/icons/contents.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html90"
|
|
HREF="node3.html">Notational Conventions</A>
|
|
<B> Up:</B> <A NAME="tex2html86"
|
|
HREF="userhtml.html">userhtml</A>
|
|
<B> Previous:</B> <A NAME="tex2html80"
|
|
HREF="node1.html">Contents</A>
|
|
<B> <A NAME="tex2html88"
|
|
HREF="node1.html">Contents</A></B>
|
|
<!--End of Navigation Panel-->
|
|
<ADDRESS>
|
|
Salvatore Filippone
|
|
2008-07-22
|
|
</ADDRESS>
|
|
</BODY>
|
|
</HTML>
|