English

LAW: A Tool for Improved Productivity with High-Performance Linear Algebra Codes. Design and Applications

Computational Physics 2007-10-26 v1

Abstract

LAPACK and ScaLAPACK are arguably the defacto standard libraries among the scientific community for solving linear algebra problems on sequential, shared-memory and distributed-memory architectures. While ease of use was a major design goal for the ScaLAPACK project; with respect to its predecessor LAPACK; it is still a non-trivial exercise to develop a new code or modify an existing LAPACK code to exploit processor grids, distributed-array descriptors and the associated distributed-memory ScaLAPACK/PBLAS routines. In this paper, we introduce what we believe will be an invaluable development tool for the scientific code developer, which exploits ad-hoc polymorphism, derived-types, optional arguments, overloaded operators and conditional compilation in Fortran 95, to provide wrappers to a subset of common linear algebra kernels. These wrappers are introduced to facilitate the abstraction of low-level details which are irrelevant to the science being performed, such as target platform and execution model. By exploiting this high-level library interface, only a single code source is required with mapping onto a diverse range of execution models performed at link-time with no user modification. We conclude with a case study whereby we describe application of the LAW library in the implementation of the well-known Chebyshev Matrix Exponentiation algorithm for Hermitian matrices.

Keywords

Cite

@article{arxiv.0710.4896,
  title  = {LAW: A Tool for Improved Productivity with High-Performance Linear Algebra Codes. Design and Applications},
  author = {Timothy Stitt and Graham Kells and Jiri Vala},
  journal= {arXiv preprint arXiv:0710.4896},
  year   = {2007}
}

Comments

39 pages, 4 figures. To be submitted to Computer Physics Communications Journal

R2 v1 2026-06-21T09:36:29.482Z