Abstract
This chapter introduces widely used concepts about linear algebra in computer science, as well as information about the standard libraries that gather kernels for linear algebra operations, such as the basic linear algebra subprograms (BLAS) and the linear algebra package (LAPACK). The creation and evolution of these libraries is historically contextualized to help the reader understand their relevance and utility. Moreover, dense and sparse linear algebra are explained. The authors describe the levels of the BLAS library, the motivation behind the hierarchical structure of the BLAS library, and its connection with the LAPACK library. The authors also provide a detailed introduction on some of the most used and popular dense linear algebra kernels or routines, such as GEMM (matrix-matrix multiplication), TRSM (triangular solver), GETRF (LU factorization), and GESV (LU solve). Finally, the authors focus on the most important sparse linear algebra routines and the motivation behind the discussed approaches.
TopIntroduction To Basic Linear Algebra
Naturally, each of the linear algebra operations involved in today’s engineering applications have different computational requirements and complexities, and it is necessary to understand that before proceeding to analyze how the most common linear algebra operations in computer science can be optimized through task-parallelism.
In this section the authors present the basic linear algebra terms and operations to which they will refer in later chapters. Note that the authors will base all the definitions in Real numbers (R).
Key Terms in this Chapter
SpMV: Sparse Matrix Vector Multiplication. This is the name used by most popular Linear Algebra libraries to define the operation of multiplying a sparse matrix with a vector.
API: Application Programming Interface. It is a set of programming codes that enable data transmission between one software product and another.
BLAS: Basic Linear Algebra Subprograms. Reference dense linear algebra library that includes kernels to perform fundamental operations, such as the matrix-matrix product.
LAPACK: Linear Algebra PACKage. Reference dense linear algebra library that includes kernels to perform complex operations, such as the LU factorization.
GTSV: General Tridiagonal Solve. This is the name used by most popular Linear Algebra libraries to define the operation of solving linear systems of equations, Ax=b, where A has the shape of a tridiagonal matrix.