Next: Basics Up: Guide Previous: Algorithmic Differences between LAPACK

# Data Distributions and Software Conventions

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
  - Process Grid
  - Contexts
  - Scoped Operations
- Array Descriptors
- In-core Dense Matrices
  - The Two-dimensional Block-Cyclic Distribution
  - Local Storage Scheme and Block-Cyclic Mapping
  - Array Descriptor for In-core Dense Matrices
  - Example
  - Submatrix Argument Descriptions
  - Matrix and Vector Storage Conventions
- 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
  - Array Descriptor for Out-core Dense Matrices
- Design and Documentation of Argument Lists
  - Structure of the Documentation
  - Order of Arguments
  - Option Arguments
  - Problem Dimensions
  - Workspace Issues
    - WORK Arrays
    - LWORK Query
    - LWORK WORK(1)
  - Error Handling and the Diagnostic Argument INFO
  - Alignment Restrictions
- Extensions