IMUB UB
 


Survey and description of the most useful packages/libraries available for Numerical Linear Algebra

Julien Langou

This course will describe widely used numerical linear algebra libraries. After a classification of the different class of problem, we will provide demonstration of use of the following libraries:

  1. BLAS, LAPACK (dense linear algebra, serial or SMP)
  2. ScaLAPACK (dense linear algebra, distributed) 
  3. PETSc (solving linear system of equations, sparse iterative methods, distributed)
  4. MUMPS (solving linear system of equations, sparse direct methods, distributed)
See below for more details.

For each library, we will see:

As side notes, we will use also mentionned other alternative packages:


Target Audience: This class is geared toward researchers (mathematicians, physicists, engineers) who, due to their need of doing medium and large scale computations, would benefit from an up-to-date knowledge of the existing Numerical Linear Algebra resources.

1- BLAS/LAPACK - The BLAS (Basic Linear Algebra Subprograms) are high quality "building block" routines for performing basic vector and matrix operations. They sequential or threaded routines Level 1 BLAS do vector-vector operations, Level 2 BLAS do matrix-vector operations, and Level 3 BLAS do matrix-matrix operations. Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of high quality linear algebra software.  LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.  Optimized vendor versions of the BLAS and LAPACK exist on most platform.

2- 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. In particular, during this class, we will explain in details how a user can set its matrices for ScaLAPACK.

3- PETSc - PETSc is a relatively large software package that solves PDE's and ODE's in parallel. Specific usage scenarios will be given that will illustrate operations on matrices and vectors, available linear solvers and their numerous variants as well as nonlinear solvers.  Important aspects of PETSc like storage formats and matrix assembly will also be discussed. An example of use of HYPRE preconditioners through PETSc will be given. Interface from an already existing user application-code to PETSc will be given.

4- MUMPS - MUMPS is a package LU factorization for sparse matrices. Two flavors of the package will be discussed: sequential and parallel. Each of the versions has different performance and functionality characteristics. Also, an important process of sparse LU factorization will be discussed, namely ordering.




Ingenio - Mathematica
MEC - CI 2010


 
IMUB
Institut de Matemàtica 
Gran Via de les Corts Catalanes 585,
08007 Barcelona, Spain
Email: imub@imub.ub.es
URL: www.imub.ub.es
Phone: (+34) 93 402 13 85
Fax:  (+34) 93 403 59 63

Last modified: March 12, 2007