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/userhtmlse1.html

97 lines
6.1 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Introduction</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse2.html" >next</a>] [<a
href="userhtmlli1.html" >prev</a>] [<a
href="userhtmlli1.html#tailuserhtmlli1.html" >prev-tail</a>] [<a
href="#tailuserhtmlse1.html">tail</a>] [<a
href="userhtml.html#userhtmlse1.html" >up</a>] </p></div>
<h3 class="sectionHead"><span class="titlemark">1 </span> <a
id="x3-20001"></a>Introduction</h3>
<!--l. 3--><p class="noindent" >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.
<!--l. 14--><p class="indent" > The PSBLAS library version 3 is implemented in the Fortran&#x00A0;2003&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#Xmetcalf">16</a>]</span>
programming language, with reuse and/or adaptation of existing Fortran&#x00A0;77 and
Fortran&#x00A0;95 software, plus a handful of C routines.
<!--l. 19--><p class="indent" > The use of Fortran&#x00A0;2003 offers a number of advantages over Fortran&#x00A0;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&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XSparse03">10</a>]</span>; other works discussing advanced programming in Fortran&#x00A0;2003
include&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XDesPat:11">20</a>,&#x00A0;<a
href="userhtmlli2.html#XRouXiaXu:11">18</a>]</span>; sufficient support for Fortran&#x00A0;2003 is now available from many
compilers, including the GNU Fortran compiler from the Free Software Foundation
(as of version 4.8).
<!--l. 30--><p class="indent" > Previous approaches have been based on mixing Fortran&#x00A0;95, with its support for
object-based design, with other languages; these have been advocated by a number of
authors, e.g.&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#Xmachiels">15</a>]</span>. Moreover, the Fortran&#x00A0;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.
<!--l. 40--><p class="indent" > The presentation of the PSBLAS library follows the general structure of the
proposal for serial Sparse BLAS&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#Xsblas97">7</a>,&#x00A0;<a
href="userhtmlli2.html#Xsblas02">8</a>]</span>, which in its turn is based on the proposal for
BLAS on dense matrices&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XBLAS1">14</a>,&#x00A0;<a
href="userhtmlli2.html#XBLAS2">4</a>,&#x00A0;<a
href="userhtmlli2.html#XBLAS3">5</a>]</span>.
<!--l. 45--><p class="indent" > 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.
<!--l. 55--><p class="indent" > 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 <span
class="cmti-10">data locality </span>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.
<!--l. 72--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse2.html" >next</a>] [<a
href="userhtmlli1.html" >prev</a>] [<a
href="userhtmlli1.html#tailuserhtmlli1.html" >prev-tail</a>] [<a
href="userhtmlse1.html" >front</a>] [<a
href="userhtml.html#userhtmlse1.html" >up</a>] </p></div>
<!--l. 72--><p class="indent" > <a
id="tailuserhtmlse1.html"></a>
</body></html>