ScaLAPACK is a library of routines for solving linear algebra problems on multiprocessor systems with distributed memory. It is designed to be easily portable, and has been implemented on message-passing systems, including PVM, MPI, the Intel series NX, the IBM SP series, the Thinking Machines CM-5, and the Cray T3 series.
ScaLAPACK is an extension of LAPACK in which the algorithms are based on block partitions of the associated matrices so that the computation can be done using vector-matrix or matrix-matrix operations. In ScaLAPACK the latter operations are done using modified versions of the Basic Linear Algebra routines (level 3), which the authors refer to as Parallel Basic Linear Algebra Subprograms (PBLAS). The PBLAS, in turn, use system-dependent routines called the Basic Linear Algebra Communication Subroutines (BLACS) for communication tasks. The BLACS are the only part of the package that must be system-dependent, although performance can be enhanced with platform-specific implementations of the PBLAS. The PBLAS and BLACS routines are written in C, while the remainder of the package is in Fortran 77. ScaLAPACK is available on the Internet or can be purchased on a CD-ROM. These files contain all the source as well as prebuilt versions of the BLACS for various platforms.
This user’s guide provides an overview of the package. The first three chapters present details of the algorithms used for each of the problems. Chapter 4 explains concepts particular to the multiprocessor environment: process grids, contexts, scoped operations, and data descriptors. Details are provided for in-core dense and banded matrices as well as for out-of-core dense matrices. The final chapters deal with the performance, accuracy, and stability of the package and provide advice on troubleshooting. There is a complete bibliography as well as a keyword index.