Home Wiki > openSUSE:Science Linear algebra libraries
Sign up | Login

openSUSE:Science Linear algebra libraries

tagline: From openSUSE


BLAS (Basic Linear Algebra Subprograms) are a set of low-level kernel subroutines that perform common linear algebra operations such as copying, vector scaling, vector dot products, linear combinations, and matrix multiplication.

LAPACK (Linear Algebra Package) is a software library for numerical linear algebra. It provides routines for solving systems of linear equations and linear least squares, eigenvalue problems, and singular value decomposition. It also includes routines to implement the associated matrix factorizations such as LU, QR, Cholesky and Schur decomposition.

Implementations of BLAS

  • BLAS - reference implementation
  • ATLAS - Automatically Tuned Linear Algebra Software
  • OpenBLAS - optimized BLAS library based on GotoBLAS2

Implementations of LAPACK

  • LAPACK - reference implementation
  • ATLAS - provides an optimized subset of LAPACK
  • OpenBLAS - provides LAPACK with some optimizations

openSUSE specific configurations


OpenBLAS packages support multiple architectures. All specific optimizations are included in the library and dynamically switched at run time.
There are three variants of library:

  • Serial library (libopenblas_serial0)
  • With OpenMP support (libopenblas_openmp0 or libopenblaso0)
  • With threading support (libopenblas_pthreads0 or libopenblasp0)

Switching between implementation

openSUSE uses reference BLAS and LAPACK implementations by default, but ATLAS or OpenBLAS are usually much faster. You can switch it by update-alternatives mechanism:

/usr/sbin/update-alternatives --config libblas.so.3


There are 4 choices for the alternative libblas.so.3 (providing /usr/lib64/libblas.so.3).

  Selection    Path                             Priority   Status
* 0            /usr/lib64/libblas.so.3.4.2       50        auto mode
  1            /usr/lib64/atlas/libsatlas.so.3   20        manual mode
  2            /usr/lib64/atlas/libtatlas.so.3   20        manual mode
  3            /usr/lib64/libblas.so.3.4.2       50        manual mode
  4            /usr/lib64/libopenblas.so.0       20        manual mode
/usr/sbin/update-alternatives --config liblapack.so.3


There are 3 choices for the alternative liblapack.so.3 (providing /usr/lib64/liblapack.so.3).

  Selection    Path                             Priority   Status
* 0            /usr/lib64/liblapack.so.3.4.2     50        auto mode
  1            /usr/lib64/atlas/libsatlas.so.3   20        manual mode
  2            /usr/lib64/atlas/libtatlas.so.3   20        manual mode
  3            /usr/lib64/liblapack.so.3.4.2     50        manual mode