The ScaLAPACK software library provides routines that operate on three types of matrices: in-core dense matrices, in-core narrow band matrices and out-of-core dense matrices. On entry, these routines assume that the data has been distributed on the processors according to a specific data decomposition scheme. Conventional arrays are used to store locally the data when it resides in the processors' memory. The data layout information as well as the local storage scheme for these different matrix operands is conveyed to the routines via a simple array of integers called an array descriptor. The first entry of this array identifies the type of the descriptor, i.e., the data distribution scheme it describes. This chapter first presents the fundamental concepts of process grids, communication contexts and array descriptors. Then, for each of the three possible matrix operand mentioned above, the data distribution scheme and the corresponding descriptor array used by ScaLAPACK are discussed in detail. Finally, the software conventions common to all ScaLAPACK routines are presented.

- Basics
- Array Descriptors
- In-core Dense Matrices
- In-Core Narrow Band and Tridiagonal Matrices
- The Block Column and Row Distributions
- The Block Mapping
- Local Storage Scheme for Narrow Band Matrices
- Local Storage Schemes for Tridiagonal Matrices
- Array Descriptor for Narrow Band and Tridiagonal Matrices
- Array Descriptor for the Matrix of Right-Hand-Side Vectors
- Argument Descriptions for Band and Tridiagonal Routines
- Matrix Storage Conventions for Band and Tridiagonal Matrices

- Out-of-Core Matrices
- Design and Documentation of Argument Lists
- Extensions

Tue May 13 09:21:01 EDT 1997