1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--Converted with LaTeX2HTML 96.1-h (September 30, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds -->
<HTML>
<HEAD>
<TITLE>Levels of Routines</TITLE>
<META NAME="description" CONTENT="Levels of Routines">
<META NAME="keywords" CONTENT="slug">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<LINK REL=STYLESHEET HREF="slug.css">
</HEAD>
<BODY LANG="EN" >
<A NAME="tex2html2645" HREF="node41.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="http://www.netlib.org/utk/icons/next_motif.gif"></A> <A NAME="tex2html2643" HREF="node39.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="http://www.netlib.org/utk/icons/up_motif.gif"></A> <A NAME="tex2html2637" HREF="node39.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="http://www.netlib.org/utk/icons/previous_motif.gif"></A> <A NAME="tex2html2647" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="http://www.netlib.org/utk/icons/contents_motif.gif"></A> <A NAME="tex2html2648" HREF="node190.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="http://www.netlib.org/utk/icons/index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html2646" HREF="node41.html">Data Types and Precision</A>
<B>Up:</B> <A NAME="tex2html2644" HREF="node39.html">Structure of ScaLAPACK</A>
<B> Previous:</B> <A NAME="tex2html2638" HREF="node39.html">Structure of ScaLAPACK</A>
<BR> <P>
<H2><A NAME="SECTION04311000000000000000">Levels of Routines</A></H2>
<A NAME="subseclevels"> </A>
<P>
The routines in ScaLAPACK are classified into three broad categories:
<P>
<UL>
<LI> <B>Driver</B> routines<A NAME="854"> </A>, each of which solves a complete problem,
for example, solving a system of linear equations or computing the
eigenvalues of a real symmetric matrix.
Users are recommended to use a driver routine if one
meets their requirements. Driver routines are described in section <A HREF="node43.html#secdrivers">3.2</A>,
and a complete list of routine names can be found in Appendix <A HREF="node160.html#chapcomp">A.1</A>.
Global and local input error-checking are performed where possible
for these routines.
<LI> <B>Computational</B> routines<A NAME="858"> </A>, each of which performs a distinct
computational task, for example an <I>LU</I> factorization
or the reduction of a real symmetric matrix to tridiagonal form.
Each driver routine calls a
sequence of computational routines. Users (especially software developers)
may need to call
computational routines directly to perform tasks, or sequences of tasks,
that cannot conveniently
be performed by the driver routines. Computational routines are described in
section <A HREF="node50.html#seccomp">3.3</A> and a complete list of routine names can be found
in Appendix <A HREF="node160.html#chapcomp">A.1</A>.
Global and local input error-checking are performed for these routines.
<LI> <B>Auxiliary</B> routines<A NAME="862"> </A>, which in turn can be classified as follows:
<P>
<UL>
<LI> routines that perform subtasks of block-partitioned algorithms<A NAME="864"> </A> -- in
particular, routines that implement unblocked versions of the algorithms;
and
<LI> routines that perform some commonly required low-level
computations, for example, scaling a matrix, computing a matrix-norm,
or generating an elementary Householder matrix; some of
these may be of interest to numerical analysts or software developers and
could be considered for future additions to the PBLAS.
<P>
</UL></UL>
<P>
In general, no input error-checking is
performed in the auxiliary routines. The exception to this rule is
for the auxiliary routines that are Level 2 equivalents of
computational routines (e.g., PxGETF2, PxGEQR2, PxORMR2, PxORM2R).
For these routines, local input error-checking is performed.
<P>
Both driver routines and computational routines are fully described in
this users guide, but not the auxiliary routines.
A list of the auxiliary routines, with brief descriptions
of their functions, is given in Appendix <A HREF="node162.html#chapauxil">A.2</A>.
LAPACK auxiliary routines are also used whenever possible for local
computation. Refer to the LAPACK Users' Guide [<A HREF="node189.html#laug">3</A>] for details.
<P>
The PBLAS, BLAS, BLACS, and LAPACK are strictly-speaking not part of
the ScaLAPACK routines. However, the ScaLAPACK routines make frequent
calls to these packages.
<P>
ScaLAPACK also provides two matrix redistribution/copy routines for each data
type [<A HREF="node189.html#PT97">107</A>, <A HREF="node189.html#DPRT95">49</A>, <A HREF="node189.html#PT96a">106</A>]. These routines provide a truly
general copy from any block cyclicly distributed (sub)matrix to any
other block cyclicly distributed (sub)matrix. These routines are
the only ones in the entire ScaLAPACK library which provide
<EM>inter-context</EM> operations.
Because of the generality of these routines, they may be used for many
operations not usually associated with copy routines. For instance,
they may be used to a take a matrix on one process and distribute
it across a process grid, or the reverse. If a supercomputer is
grouped into a virtual parallel machine with a workstation, for instance,
this routine can be used to move the matrix from the workstation to the
supercomputer and back. In ScaLAPACK, these routines are called to
copy matrices from a two-dimensional process grid to a one-dimensional
process grid. They can be
used to redistribute matrices so that distributions providing maximal
performance can be used by various component libraries, as well. For
further details on these routines, refer to Appendix <A HREF="node164.html#redistribution">A.3</A>.
<P>
<HR><A NAME="tex2html2645" HREF="node41.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="http://www.netlib.org/utk/icons/next_motif.gif"></A> <A NAME="tex2html2643" HREF="node39.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="http://www.netlib.org/utk/icons/up_motif.gif"></A> <A NAME="tex2html2637" HREF="node39.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="http://www.netlib.org/utk/icons/previous_motif.gif"></A> <A NAME="tex2html2647" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="http://www.netlib.org/utk/icons/contents_motif.gif"></A> <A NAME="tex2html2648" HREF="node190.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="http://www.netlib.org/utk/icons/index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html2646" HREF="node41.html">Data Types and Precision</A>
<B>Up:</B> <A NAME="tex2html2644" HREF="node39.html">Structure of ScaLAPACK</A>
<B> Previous:</B> <A NAME="tex2html2638" HREF="node39.html">Structure of ScaLAPACK</A>
<P><ADDRESS>
<I>Susan Blackford <BR>
Tue May 13 09:21:01 EDT 1997</I>
</ADDRESS>
</BODY>
</HTML>
|