You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
psblas3/docs/html/node2.html

172 lines
6.8 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2008 (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>Introduction</TITLE>
<META NAME="description" CONTENT="Introduction">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<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="tex2html204"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html200"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html194"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html202"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html205"
HREF="node3.html">General overview</A>
<B> Up:</B> <A NAME="tex2html201"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html195"
HREF="node1.html">Contents</A>
&nbsp; <B> <A NAME="tex2html203"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION00020000000000000000"></A><A NAME="sec:intro"></A>
<BR>
Introduction
</H1>
<P>
The PSBLAS library, developed with the aim to facilitate the
parallelization of computationally intensive scientific applications,
is designed to address parallel implementation of iterative solvers
for sparse linear systems through the distributed memory paradigm. It
includes routines for multiplying sparse matrices by dense matrices,
solving block diagonal systems with triangular diagonal entries,
preprocessing sparse matrices, and contains additional routines for
dense matrix operations. The current implementation of PSBLAS
addresses a distributed memory execution model operating with message
passing.
<P>
The PSBLAS library version 3 is implemented in
the Fortran&nbsp;2003&nbsp;[<A
HREF="node128.html#metcalf">17</A>] programming language, with reuse and/or
adaptation of existing Fortran&nbsp;77 and Fortran&nbsp;95 software, plus a
handful of C routines.
<P>
The use of Fortran&nbsp;2003 offers a number of advantages over Fortran&nbsp;95,
mostly in the handling of requirements for evolution and adaptation of
the library to new computing architectures and integration of
new algorithms.
For a detailed discussion of our design see&nbsp;[<A
HREF="node128.html#Sparse03">11</A>]; other
works discussing advanced programming in Fortran&nbsp;2003
include&nbsp;[<A
HREF="node128.html#DesPat:11">1</A>,<A
HREF="node128.html#RouXiaXu:11">18</A>]; sufficient support for
Fortran&nbsp;2003 is now available from many compilers, including the GNU
Fortran compiler from the Free Software Foundation (as of version 4.6).
<P>
Previous approaches have been based on mixing Fortran&nbsp;95, with its
support for object-based design, with other languages; these have
been advocated by a number of authors,
e.g.&nbsp;[<A
HREF="node128.html#machiels">16</A>]. Moreover, the Fortran&nbsp;95 facilities for dynamic
memory management and interface overloading greatly enhance the
usability of the PSBLAS
subroutines. In this way, the library can take care of runtime memory
requirements that are quite difficult or even impossible to predict at
implementation or compilation time.
<P>
The presentation of the
PSBLAS library follows the general structure of the proposal for
serial Sparse BLAS&nbsp;[<A
HREF="node128.html#sblas97">8</A>,<A
HREF="node128.html#sblas02">9</A>], which in its turn is based on the
proposal for BLAS on dense matrices&nbsp;[<A
HREF="node128.html#BLAS1">15</A>,<A
HREF="node128.html#BLAS2">5</A>,<A
HREF="node128.html#BLAS3">6</A>].
<P>
The applicability of sparse iterative solvers to many different areas
causes some terminology problems because the same concept may be
denoted through different names depending on the application area. The
PSBLAS features presented in this document will be discussed referring
to a finite difference discretization of a Partial Differential
Equation (PDE). However, the scope of the library is wider than
that: for example, it can be applied to finite element discretizations
of PDEs, and even to different classes of problems such as nonlinear
optimization, for example in optimal control problems.
<P>
The design of a solver for sparse linear systems is driven by many
conflicting objectives, such as limiting occupation of storage
resources, exploiting regularities in the input data, exploiting
hardware characteristics of the parallel platform. To achieve an
optimal communication to computation ratio on distributed memory
machines it is essential to keep the <EM>data locality</EM> as high as
possible; this can be done through an appropriate data allocation
strategy. The choice of the preconditioner is another very important
factor that affects efficiency of the implemented application. Optimal
data distribution requirements for a given preconditioner may conflict
with distribution requirements of the rest of the solver. Finding the
optimal trade-off may be very difficult because it is application
dependent. Possible solutions to these problems and other important
inputs to the development of the PSBLAS software package have come from
an established experience in applying the PSBLAS solvers to
computational fluid dynamics applications.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html204"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html200"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html194"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html202"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html205"
HREF="node3.html">General overview</A>
<B> Up:</B> <A NAME="tex2html201"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html195"
HREF="node1.html">Contents</A>
&nbsp; <B> <A NAME="tex2html203"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>