ScaLAPACK

The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines redesigned for distributed memory MIMD parallel computers. It is currently written in a Single-Program-Multiple-Data style using explicit message passing for interprocessor communication. It assumes matrices are laid out in a two-dimensional block cyclic decomposition.[1][2][3]

ScaLAPACK is designed for heterogeneous computing and is portable on any computer that supports MPI or PVM.

ScaLAPACK depends on PBLAS operations in the same way LAPACK depends on BLAS.

As of version 2.0 the code base directly includes PBLAS and BLACS and has dropped support for PVM.

After two decades of operation, a new library was created to replace ScaLAPACK, which was not suitable for modern accelerated architectures. Slate is written in C++ and was designed primarily to serve as a dense linear algebra library to the United States Department of Energy and to the high-performance computing community at large.[4][5]

  1. ^ J. Dongarra and D. Walker. "The Design of Linear Algebra Libraries for High Performance Computers". {{cite journal}}: Cite journal requires |journal= (help)
  2. ^ J. Demmel, M. Heath, and H. van der Vorst. "Parallel Numerical Linear Algebra". {{cite journal}}: Cite journal requires |journal= (help)CS1 maint: multiple names: authors list (link)
  3. ^ "2d block-cyclic data layout".
  4. ^ "SLATE". icl.utk.edu. Retrieved 2024-02-02.
  5. ^ Gates, Mark; Kurzak, Jakub; Charara, Ali; YarKhan, Asim; Dongarra, Jack (2019-11-17). "SLATE: Design of a modern distributed and accelerated linear algebra library". Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. SC '19. New York, NY, USA: Association for Computing Machinery. pp. 1–18. doi:10.1145/3295500.3356223. ISBN 978-1-4503-6229-0.