![]()
Applications
materials
astrophysics
|
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. 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). Developers ScaLAPACK was developed at the UTK
Computer
Science Department, |
|||||||||
|
||||||||||