Numerical Libraries – Linear Algebra

This page will be sequentially updated.

The linear algebraic operations, such as solving systems of linear equations and matrix multiplication, often appear in the field of machine learning, computational fluid dynamics, computer graphics, and so on. As the dimensions of systems or matrices will be bigger, these operations will become more time consuming and complicated.

There are many optimized open-source numerical libraries for linear algebra, such as LAPACK and Eigen, so we can use them to get better performance even when our matrices are very large.

For example, an open source CFD software SU2 uses BLAS and LAPACK, and moreover the performance of NumPy can be improved with the use of these optimized linear algebra libraries.

In this page, I try to succinctly summarize what we need to know at a minimum about open-source numerical libraries.

BLAS (Basic Linear Algebra Subprograms)
  • [URL]
  • BLAS libraries provide standard building blocks for performing basic vector and matrix operations
    • Level 1: scalar, vector and vector-vector operations
    • Level 2: matrix-vector operations
    • Level 3: matrix-matrix operations
BLACS (Basic Linear Algebra Communication Subprograms)
LAPACK (Linear Algebra PACKage)
ScaLAPACK (Scalable Linear Algebra PACKage)