Changed docs to reflect version 2.1 and allocatables.

psblas3-type-indexed
Salvatore Filippone 18 years ago
parent 1fe3b2f9b4
commit 22fc6385d5

@ -46,7 +46,7 @@ sparse coefficient matrix.
current process (local); equivalent to the number of local columns in current process (local); equivalent to the number of local columns in
the sparse coefficient matrix. They include the halo. the sparse coefficient matrix. They include the halo.
\end{description} \end{description}
Specified as: a pointer to integer array of dimension 10. Specified as: an allocatable integer array of dimension \verb|psb_mdata_size_|.
\item[{\bf halo\_index}] A list of the halo and boundary elements for \item[{\bf halo\_index}] A list of the halo and boundary elements for
the current process to be exchanged with other processes; for each the current process to be exchanged with other processes; for each
processes with which it is necessary to communicate: processes with which it is necessary to communicate:
@ -59,7 +59,7 @@ processes with which it is necessary to communicate:
\end{enumerate} \end{enumerate}
The list may contain an arbitrary number of groups; its end is marked The list may contain an arbitrary number of groups; its end is marked
by a -1.\\ by a -1.\\
Specified as: a pointer to an integer array of rank one. Specified as: an allocatable integer array of rank one.
\item [{\bf ovrlap\_index}] A list of the overlap elements for the \item [{\bf ovrlap\_index}] A list of the overlap elements for the
current process, organized in groups like the previous vector: current process, organized in groups like the previous vector:
\begin{enumerate} \begin{enumerate}
@ -71,7 +71,7 @@ current process, organized in groups like the previous vector:
\end{enumerate} \end{enumerate}
The list may contain an arbitrary number of groups; its end is marked The list may contain an arbitrary number of groups; its end is marked
by a -1.\\ by a -1.\\
Specified as: a pointer to an integer array of rank one. Specified as: an allocatable integer array of rank one.
\item [{\bf ovrlap\_index}] For all overlap points belonging to th \item [{\bf ovrlap\_index}] For all overlap points belonging to th
ecurrent process: ecurrent process:
\begin{enumerate} \begin{enumerate}
@ -80,14 +80,14 @@ ecurrent process:
\end{enumerate} \end{enumerate}
The list may contain an arbitrary number of groups; its end is marked The list may contain an arbitrary number of groups; its end is marked
by a -1.\\ by a -1.\\
Specified as: a pointer to an integer array of rank one. Specified as: an allocatable integer array of rank one.
\item[{\bf loc\_to\_glob}] each element $i$ of this array contains \item[{\bf loc\_to\_glob}] each element $i$ of this array contains
global identifier of the local variable $i$.\\ global identifier of the local variable $i$.\\
Specified as: a pointer to an integer array of rank one. Specified as: an allocatable integer array of rank one.
\item[{\bf glob\_to\_loc}] if global variable $i$ is read by current \item[{\bf glob\_to\_loc}] if global variable $i$ is read by current
process then element $i$ contains local index correpondent to global variable $i$; process then element $i$ contains local index correpondent to global variable $i$;
else element $i$ contains -1 (NULL) value.\\ else element $i$ contains -1 (NULL) value.\\
Specified as: a pointer to an integer array of rank one. Specified as: an allocatabled integer array of rank one.
\end{description} \end{description}
The Fortran95 definition for \verb|psb_desc_type| structures is The Fortran95 definition for \verb|psb_desc_type| structures is
as follows: as follows:
@ -96,9 +96,9 @@ as follows:
\begin{minipage}[tl]{0.9\textwidth} \begin{minipage}[tl]{0.9\textwidth}
\begin{verbatim} \begin{verbatim}
type psb_desc_type type psb_desc_type
integer, pointer :: matrix_data(:)=>null(), halo_index(:)=>null() integer, allocatable :: matrix_data(:), halo_index(:)
integer, pointer :: overlap_elem(:)=>null(), overlap_index(:)=>null() integer, allocatable :: overlap_elem(:), overlap_index(:)
integer, pointer :: loc_to_glob(:)=>null(), glob_to_loc(:)=>null() integer, allocatable :: loc_to_glob(:), glob_to_loc(:)
end type psb_desc_type end type psb_desc_type
\end{verbatim} \end{verbatim}
\end{minipage} \end{minipage}
@ -157,27 +157,27 @@ choose, if he/she so whishes, a specific matrix storage mode. \\
\begin{description} \begin{description}
\item[{\bf aspk}] Contains values of the local distributed sparse \item[{\bf aspk}] Contains values of the local distributed sparse
matrix.\\ matrix.\\
Specified as: a pointer to an array of rank one of type corresponding Specified as: an allocatable array of rank one of type corresponding
to matrix entries type. to matrix entries type.
\item[{\bf ia1}] Holds integer information on distributed sparse \item[{\bf ia1}] Holds integer information on distributed sparse
matrix. Actual information will depend on data format used.\\ matrix. Actual information will depend on data format used.\\
Specified as: a pointer to an integer array of rank one. Specified as: an allocatable integer array of rank one.
\item[{\bf ia2}] Holds integer information on distributed sparse \item[{\bf ia2}] Holds integer information on distributed sparse
matrix. Actual information will depend on data format used.\\ matrix. Actual information will depend on data format used.\\
Specified as: a pointer to an integer array of rank one. Specified as: an allocatable integer array of rank one.
\item[{\bf infoa}] On entry can hold auxiliary information on distributed sparse \item[{\bf infoa}] On entry can hold auxiliary information on distributed sparse
matrix. Actual information will depend on data format used.\\ matrix. Actual information will depend on data format used.\\
Specified as: integer array of length \verb|psb_ifasize_|. Specified as: an integer array of length \verb|psb_ifasize_|.
\item[{\bf fida}] Defines the format of the distributed sparse matrix.\\ \item[{\bf fida}] Defines the format of the distributed sparse matrix.\\
Specified as: a string of length 5 Specified as: a string of length 5
\item[{\bf descra}] Describe the characteristic of the distributed sparse matrix.\\ \item[{\bf descra}] Describe the characteristic of the distributed sparse matrix.\\
Specified as: array of character of length 9. Specified as: array of character of length 9.
\item[{\bf pl}] Specifies the local row permutation of distributed sparse \item[{\bf pl}] Specifies the local row permutation of distributed sparse
matrix. If pl(1) is equal to 0, then there isn't row permutation.\\ matrix. If pl(1) is equal to 0, then there isn't row permutation.\\
Specified as: pointer to integer array of dimension equal to number of local row (matrix\_data[psb\_n\_row\_\hbox{]}) Specified as: an allocatable integer array of dimension equal to number of local row (matrix\_data[psb\_n\_row\_\hbox{]})
\item[{\bf pr}] Specifies the local column permutation of distributed sparse \item[{\bf pr}] Specifies the local column permutation of distributed sparse
matrix. If PR(1) is equal to 0, then there isn't columnm permutation.\\ matrix. If PR(1) is equal to 0, then there isn't columnm permutation.\\
Specified as: pointer to integer array of dimension equal to number of Specified as: an allocatable integer array of dimension equal to number of
local row (matrix\_data[psb\_n\_col\_\hbox{]}) local row (matrix\_data[psb\_n\_col\_\hbox{]})
\item[{\bf m}] Number of rows; if row indices are stored explicitly, \item[{\bf m}] Number of rows; if row indices are stored explicitly,
as in Coordinate Storage, should be greater than or equal to the as in Coordinate Storage, should be greater than or equal to the
@ -199,9 +199,9 @@ type psb_dspmat_type
character :: fida(5) character :: fida(5)
character :: descra(10) character :: descra(10)
integer :: infoa(psb_ifa_size_) integer :: infoa(psb_ifa_size_)
real(kind(1.d0)), pointer :: aspk(:)=>null() real(kind(1.d0)), allocatable :: aspk(:)
integer, pointer :: ia1(:)=>null(), ia2(:)=>null() integer, allocatable :: ia1(:), ia2(:)
integer, pointer :: pr(:)=>null(), pl(:)=>null() integer, allocatable :: pr(:), pl(:)
end type psb_dspmat_type end type psb_dspmat_type
\end{verbatim} \end{verbatim}
\end{minipage} \end{minipage}
@ -307,26 +307,27 @@ to be interpreted.
\begin{Sbox} \begin{Sbox}
\begin{minipage}[tl]{0.9\textwidth} \begin{minipage}[tl]{0.9\textwidth}
\begin{verbatim} \begin{verbatim}
type psb_base_prec
type(psb_spmat_type), pointer :: av(:) => null() type psb_dbaseprc_type
real(kind(1.d0)), pointer :: d(:) => null()
type(psb_desc_type), pointer :: desc_data => null() type(psb_dspmat_type), allocatable :: av(:)
integer, pointer :: iprcparm(:) => null() real(kind(1.d0)), allocatable :: d(:)
real(kind(1.d0)), pointer :: dprcparm(:) => null() type(psb_desc_type) :: desc_data , desc_ac
integer, pointer :: perm(:) => null() integer, allocatable :: iprcparm(:)
integer, pointer :: mlia(:) => null() real(kind(1.d0)), allocatable :: dprcparm(:)
integer, pointer :: invperm(:) => null() integer, allocatable :: perm(:), invperm(:)
integer, pointer :: nlaggr(:) => null() integer, allocatable :: mlia(:), nlaggr(:)
type(psb_spmat_type), pointer :: aorig => null() type(psb_dspmat_type), pointer :: base_a => null() !
real(kind(1.d0)), pointer :: dorig(:) => null() type(psb_desc_type), pointer :: base_desc => null() !
real(kind(1.d0)), allocatable :: dorig(:)
end type psb_base_prec
end type psb_dbaseprc_type
type psb_prec_type type psb_dprec_type
type(psb_base_prec), pointer :: baseprecv(:) => null() type(psb_dbaseprc_type), allocatable :: baseprecv(:)
integer :: prec, base_prec integer :: prec, base_prec
end type psb_prec_type end type psb_dprec_type
\end{verbatim} \end{verbatim}
\end{minipage} \end{minipage}
\end{Sbox} \end{Sbox}

@ -12,13 +12,21 @@ addresses a distributed memory execution model operating with message
passing. passing.
The PSBLAS library is internally implemented in a mixture of The PSBLAS library is internally implemented in a mixture of
Fortran~77 and Fortran~95~\cite{metcalf} programming languages. A Fortran~77 and Fortran~95~\cite{metcalf} programming languages.
similar approach has been advocated by a number of authors, A similar approach has been advocated by a number of authors,
e.g.~\cite{machiels}. Moreover, the Fortran~95 facilities for dynamic e.g.~\cite{machiels}. Moreover, the Fortran~95 facilities for dynamic
memory management and interface overloading greatly enhance the usability of the PSBLAS memory management and interface overloading greatly enhance the
usability of the PSBLAS
subroutines. In this way, the library can take care of runtime memory subroutines. In this way, the library can take care of runtime memory
requirements that are quite difficult or even impossible to predict at requirements that are quite difficult or even impossible to predict at
implementation or compilation time. The following presentation of the implementation or compilation time.
In the current release we rely on the availability of the so-called
allocatable extensions, specified in TR~15581. Strictly speaking they
are outside the Fortran~95 standard; however they have been included
in the Fortran~2003 language standard, and are available in
prctically all Fortran~95 compilers on the market, including the GCC
compiler from the Free Software Foundation (as of version 4.2).
The presentation of the
PSBLAS library follows the general structure of the proposal for PSBLAS library follows the general structure of the proposal for
serial Sparse BLAS~\cite{sblas97,sblas02}, which in its turn is based on the serial Sparse BLAS~\cite{sblas97,sblas02}, which in its turn is based on the
proposal for BLAS on dense matrices~\cite{BLAS1,BLAS2,BLAS3}. proposal for BLAS on dense matrices~\cite{BLAS1,BLAS2,BLAS3}.

@ -10,7 +10,7 @@ methods.
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subroutine{psb\_krylov \label{cg}}{Krylov Methods Driver Routine} \subroutine{psb\_krylov \label{krylov}}{Krylov Methods Driver Routine}
This subroutine is a driver that provides a general interface for all This subroutine is a driver that provides a general interface for all
the Krylov-Subspace family methods implemented in PSBLAS-2.0. The the Krylov-Subspace family methods implemented in PSBLAS-2.0. The

@ -823,7 +823,7 @@ $y$. %% This subroutine computes the location of the first element of
\\ \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required} \\ Type: {\bf required} \\
Specified as: a pointer to array of rank one or two Specified as: an array of rank one or two
containing numbers of type specified in containing numbers of type specified in
Table~\ref{tab:f90spsm}. Table~\ref{tab:f90spsm}.
\item[info] \item[info]

@ -15,7 +15,7 @@
\vspace*{\stretch{1}} \vspace*{\stretch{1}}
\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} \noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth}
\flushright \flushright
{\Huge\bfseries PSBLAS-2.0.2 User's guide {\Huge\bfseries PSBLAS-2.1 User's guide
} }
\noindent\rule[-1ex]{\textwidth}{5pt}\\[2.5ex] \noindent\rule[-1ex]{\textwidth}{5pt}\\[2.5ex]
\hfill\emph{\Large A reference guide for the Parallel Sparse BLAS library} \hfill\emph{\Large A reference guide for the Parallel Sparse BLAS library}

@ -613,7 +613,7 @@ rank-1 array.
\item[x] The dense matrix to be allocated.\\ \item[x] The dense matrix to be allocated.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a rank one or two array with the POINTER Specified as: a rank one or two array with the ALLOCATABLE
attribute, of type real, complex or integer.\\ attribute, of type real, complex or integer.\\
\item[info] Error code. \item[info] Error code.
Scope: {\bf local} \\ Scope: {\bf local} \\
@ -662,7 +662,7 @@ Specified as: integer, possible values: \verb|psb_dupl_ovwrt_|,
\item[x] the output dense matrix.\\ \item[x] the output dense matrix.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a rank one or two array with the POINTER Specified as: a rank one or two array with the ALLOCATABLE
attribute, of type real, complex or integer.\\ attribute, of type real, complex or integer.\\
\item[info] Error code. \item[info] Error code.
Scope: {\bf local} \\ Scope: {\bf local} \\
@ -698,7 +698,7 @@ Specified as: a variable of type \descdata.\\
\item[x] The dense matrix to be assembled.\\ \item[x] The dense matrix to be assembled.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a rank one or two array with the POINTER Specified as: a rank one or two array with the ALLOCATABLE
attribute, of type real, complex or integer.\\ attribute, of type real, complex or integer.\\
\item[info] Error code.\\ \item[info] Error code.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
@ -718,7 +718,7 @@ Specified as: Integer scalar.\\
be freed.\\ be freed.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a rank one or two array with the POINTER Specified as: a rank one or two array with the ALLOCATABLE
attribute, of type real, complex or integer.\\ attribute, of type real, complex or integer.\\
\item[desc\_a] The communication descriptor.\\ \item[desc\_a] The communication descriptor.\\
@ -883,7 +883,7 @@ rank-1 array.
\item[x] The dense matrix to be allocated.\\ \item[x] The dense matrix to be allocated.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a rank one or two array with the POINTER Specified as: a rank one or two array with the ALLOCATABLE
attribute, of type real, complex or integer.\\ attribute, of type real, complex or integer.\\
\item[info] Error code. \item[info] Error code.
Scope: {\bf local} \\ Scope: {\bf local} \\
@ -913,7 +913,7 @@ Specified as: a structured data of type \descdata.
local numbering.\\ local numbering.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a rank one array with the POINTER Specified as: a rank one array with the ALLOCATABLE
attribute, of type integer.\\ attribute, of type integer.\\
\item[info] Error code. \item[info] Error code.
Scope: {\bf local} \\ Scope: {\bf local} \\
@ -948,7 +948,7 @@ Specified as: a structured data of type \descdata.
local numbering.\\ local numbering.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a rank one array with the POINTER Specified as: a rank one array with the ALLOCATABLE
attribute, of type integer.\\ attribute, of type integer.\\
\item[info] Error code. \item[info] Error code.
Scope: {\bf local} \\ Scope: {\bf local} \\

@ -24,7 +24,7 @@
\relax \relax
\pdfcompresslevel=0 %-- 0 = none, 9 = best \pdfcompresslevel=0 %-- 0 = none, 9 = best
\pdfinfo{ %-- Info dictionary of PDF output /Author (Alfredo Buttari) \pdfinfo{ %-- Info dictionary of PDF output /Author (Alfredo Buttari)
/Title (Parallel Sparse BLAS V. 2.0.2) /Title (Parallel Sparse BLAS V. 2.1)
/Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Subject (Parallel Sparse Basic Linear Algebra Subroutines)
/Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners)
/Creator (pdfLaTeX) /Creator (pdfLaTeX)

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save