Introduction
Users
Documentation
Developers
Availability
Download


Applications


materials


astrophysics



online hands-on
(gzipped tar file)
block cyclic distribution

ScaLAPACK

Introduction

ScaLAPACK is a library of high-performance linear algebra routines for distributed-memory message-passing MIMD computers and networks of workstations supporting PVM and/or MPI. It is a continuation of the LAPACK project, which designed and produced analogous software for workstations, vector supercomputers, and shared-memory parallel computers. 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).

The ScaLAPACK library contains routines for solving systems of linear equations, least squares, eigenvalue and singular value problems. They can also handle many associated computations such as matrix factorizations or estimation of condition numbers. The ScaLAPACK routines are based on block-partitioned algorithms in order to minimize the frequency of data movement. The fundamental building blocks of the ScaLAPACK library are distributed-memory versions of the Level 1, Level 2, and Level 3 BLAS, called the Parallel BLAS (PBLAS), and a set of Basic Linear Algebra Communication Subprograms (BLACS) for communication tasks that arise frequently in parallel linear algebra computations. In the ScaLAPACK routines, the majority of interprocessor communication occurs within the PBLAS, so the source code of the top software layer of ScaLAPACK looks similar to that of LAPACK.


The ScaLAPACK library is written in Fortran (with the exception of a few symmetric eigenproblem auxiliary routines written in C to exploit IEEE arithmetic) and in a SPMD style using explicit message passing for interprocessor communication. The PBLAS and the BLACS are written in C, but with Fortran interfaces. ScaLAPACK provides routines for (real and complex) dense and band matrices, but not sparse matrices. 

Users

ScaLAPACK is intended for use in large-scale applications that require numerical manipulation of large dense or band matrices. Within NERSC's user community, for example, we have seen various routines from ScaLAPACK being used. The applications using ScaLAPACK include material sciences, computational chemistry and astrophysics. Among many other uses, ScaLAPACK functionalities have also been incorporated in Parallel-R, which is the version of R, a language and environment for statistical computing and graphics.The images in the left panel come from applications that benefited from the use of ScaLAPACK. Click on the small icons to display the full image (a new window will open).

Documentation
Developers

ScaLAPACK was developed at the UTK Computer Science Department,
UC Berkeley Computer Science Division, and at the Computer Science & Mathematics Division of the Oak Ridge National Laboratory. The principal developers were L. S. Blackford, J. Choi, A. Cleary, E. D'Azevedo, J. Demmel, I. Dhillon, J. Dongarra, S. Hammarling, G. Henry, A. Petitet, K. Stanley, D. Walker, and R. C. Whaley.




Tools News Home