Numerous recent federal and academic reports comment on the inadequacy of software support for High Performance Computing. Among other deficiencies, much of the software designed for HPC, such as numerical libraries that encapsulate complicated and widely used algorithms, is considered too hard to use, too inefficient (too low a fraction of peak and/or not scalable), or both. However, the linear algebra libraries LAPACK and ScaLAPACK are frequently mentioned as positive examples whose success in this area should be emulated.

This work involves the maintenance, enhancement, hardening, and modernizing of the LAPACK and ScaLAPACK libraries in the context of the ongoing revolution in processor architecture and system design. These libraries are widely used: there were over 160 million web hits (excluding bots) from 2004-2009, and they have been adopted by many vendors as the basis of their own libraries: Intel, Cray, IBM, HP, Fujitsu, NEC, NAG, IMSL, and the Mathworks (producers of Matlab). There is every reason to believe, therefore, that improving these stalwart components of the HPC software stack will have a very large impact.

Project Report

For this project, the University of Tennessee’s Innovative Computing Laboratory, the University of Colorado Denver, and the University of California, Berkeley were responsible for the improvement and maintenance of the LAPACK and ScaLAPACK software libraries. LAPACK is an open-source library for solving dense numerical linear algebra problems. It is designed to run efficiently on modern processors by making extensive use of Level-3 BLAS. ScaLAPACK provides most of the functionalities of LAPACK but for distributed memory parallel systems. The goals of the Sca/LAPACK projects are to provide efficiency, portability, scalability, flexibility, reliability, ease of maintenance, and ease of use software for computational science problems. Sca/LAPACK is used by most computational simulation codes to provide efficient, easy to use, and reliable numerical dense linear algebra methods. Many users do not realize that they are using Sca/LAPACK since LAPACK is embedded beneath environments like Matlab, Numeric Python, or R. Sca/LAPACK is used for a number of applications in science and engineering in areas such as quantum chemistry and physics, electromechanics, geophysics and seismology, plasma physics, nonlinear mechanics, chemically reactive flows, helicopter flight control, atomic structure calculation, cardio-magnetism, radar cross-sections, and two-dimensional elastodynamics. The package is used on dense matrices ranging in size from 2 to 50,000 for LAPACK, and ScaLAPACK is now successfully used on thousands of processors. The maintenance and improvement of LAPACK, ScaLAPACK, PLASMA, and MAGMA enable other researchers from our field (high performance computing [HPC] and numerical linear algebra) to have rapid access to state-of-the-art implementations and algorithms in dense linear algebra. Our software is open source and is used as a starting point for whoever wants to start research in the field, and acts as a catalyst to enable the acceleration of research. These libraries have been adopted and/or supported by a large community of users, computing centers, and HPC vendors, including Intel, AMD, NVIDIA, Cray, IBM, HP, Fujitsu, NEC, Sun (now Oracle), SGI, NAG, MathWorks (producers of MATLAB), and Rogue Wave. No other numerical libraries can claim this breadth of integration within the community. Our software, as a present community standard, serves as a challenging point of reference for others who tried to improve upon it.

Agency
National Science Foundation (NSF)
Institute
Division of Advanced CyberInfrastructure (ACI)
Type
Standard Grant (Standard)
Application #
1032861
Program Officer
Daniel Katz
Project Start
Project End
Budget Start
2010-09-01
Budget End
2014-08-31
Support Year
Fiscal Year
2010
Total Cost
$400,000
Indirect Cost
Name
University of Colorado at Denver-Downtown Campus
Department
Type
DUNS #
City
Aurora
State
CO
Country
United States
Zip Code
80045