Loop Tiling

  • PDF / 1,885,280 Bytes
  • 83 Pages / 565.087 x 755.008 pts Page_size
  • 89 Downloads / 193 Views

DOWNLOAD

REPORT


Languages Programming Languages

LAPACK Jack Dongarra, Piotr Luszczek University of Tennessee, Knoxville, TN, USA

Definition LAPACK is a library of Fortran  subroutines for solving most commonly occurring problems in dense matrix computations. It has been designed to be efficient on a wide range of modern high-performance computers. The name LAPACK is an acronym for Linear Algebra PACKage. LAPACK can solve systems of linear equations, linear least squares problems, eigenvalue problems, and singular value problems. LAPACK can also handle many associated computations such as matrix factorizations or estimating condition numbers.

Discussion LAPACK contains driver routines for solving standard types of problems, computational routines to perform a distinct computational task, and auxiliary routines to perform a certain subtask or common low-level computation. Each driver routine typically calls a sequence of computational routines. Taken as a whole, the computational routines can perform a wider range of tasks than are covered by the driver routines. Many of the auxiliary routines may be of use to numerical analysts or software

developers, so the Fortran source for these routines has been documented with the same level of detail used for the LAPACK routines and driver routines. LAPACK is designed to give high efficiency performance on vector processors, high-performance “super-scalar” workstations, and shared memory multiprocessors. It can also be used satisfactorily on all types of scalar machines (PCs, workstations, and mainframes). A distributed memory version of LAPACK, ScaLAPACK [], has been developed for other types of parallel architectures (e.g., massively parallel SIMD machines, or distributed memory machines). LAPACK has been designed to supersede LINPACK [] and EISPACK [, ] principally by restructuring the software to achieve much greater efficiency, where possible, on modern high-performance computers, and also by adding extra functionality, by using some new or improved algorithms, and by integrating the two sets of algorithms into a unified package. LAPACK routines are written so that as much as possible of the computation is performed by calls to the Basic Linear Algebra Subprograms (BLAS) [–]. Highly efficient machine-specific implementations of the BLAS are available for many modern high-performance computers. The BLAS enable LAPACK routines to achieve high performance with portable code. The complete LAPACK package or individual routines from LAPACK are freely available on Netlib [] and can be obtained via the World Wide Web or anonymous ftp. The LAPACK homepage can be accessed via the following URL address: http://www.netlib.org/ lapack/. LAPACK is a Fortran  interface to the Fortran  LAPACK library. LAPACK++ is an object-oriented C++ extension to the LAPACK library. The CLAPACK library was built using a Fortran to C conversion utility called fc []. The JLAPACK project provides the LAPACK and BLAS numerical subroutines translated

David Padua (ed.), Encyclopedia of Parallel Comput