ScaLAPACK is a library of high-performance linear algebra routines
for distributed-memory message-passing MIMD computers
and networks of
workstations supporting PVM [68] and/or MPI [64, 110]. It is a
continuation
of the LAPACK [3] project, which designed and produced
analogous software
for workstations, vector supercomputers, and shared-memory parallel
computers. Both libraries contain routines for solving systems of
linear equations, least squares problems, and eigenvalue problems.
The goals of both projects are efficiency (to run as fast as
possible), scalability (as the problem size and number of
processors grow), reliability (including error bounds),
portability (across all important parallel machines),
flexibility (so users can construct new routines from
well-designed parts), and ease of use (by making the interface
to LAPACK and ScaLAPACK look as similar as possible). Many of these goals,
particularly portability, are aided by developing and promoting
*standards* , especially for low-level communication and
computation routines. We have been successful in attaining these
goals, limiting most machine dependencies to two standard
libraries called the BLAS, or Basic Linear Algebra Subprograms
[57, 59, 74, 93], and BLACS, or Basic Linear Algebra
Communication Subprograms [50, 54]. LAPACK will run
on any machine where the BLAS are available, and ScaLAPACK will run on
any machine where both the BLAS and the BLACS are available.

The library is currently written in Fortran 77 (with the exception of a few symmetric eigenproblem auxiliary routines written in C to exploit IEEE arithmetic) in a Single Program Multiple Data (SPMD) style using explicit message passing for interprocessor communication. The name ScaLAPACK is an acronym for Scalable Linear Algebra PACKage, or Scalable LAPACK.

Tue May 13 09:21:01 EDT 1997