2.2 Library contents
The PSBLAS library consists of various classes of subroutines:
-
Computational routines
- comprising:
- Sparse matrix by dense matrix product;
- Sparse triangular systems solution for block diagonal matrices;
- Vector and matrix norms;
- Dense matrix sums;
- Dot products.
-
Communication routines
- handling halo and overlap communications;
-
Data management and auxiliary routines
- including:
- Parallel environment management
- Communication descriptors allocation;
- Dense and sparse matrix allocation;
- Dense and sparse matrix build and update;
- Sparse matrix and data distribution preprocessing.
-
Preconditioner routines
-
-
Iterative methods
- a subset of Krylov subspace iterative methods
The following naming scheme has been adopted for all the symbols internally defined in
the PSBLAS software package:
- all symbols (i.e. subroutine names, data types...) are prefixed by psb_
- all data type names are suffixed by _type
- all constants are suffixed by _
- all top-level subroutine names follow the rule psb_xxname where xx can be
either:
- ge: the routine is related to dense data,
- sp: the routine is related to sparse data,
- cd: the routine is related to communication descriptor (see 3).
For example the psb_geins, psb_spins and psb_cdins perform the same
action (see 6) on dense matrices, sparse matrices and communication
descriptors respectively. Interface overloading allows the usage of the same
subroutine names for both real and complex data.
In the description of the subroutines, arguments or argument entries are classified
as:
-
global
- For input arguments, the value must be the same on all processes
participating in the subroutine call; for output arguments the value is
guaranteed to be the same.
-
local
- Each process has its own value(s) independently.
To finish our general description, we define a version string with the constant
whose current value is 3.7.0