Skip to main content

Unit 1.1.3 What you will learn

In this week, we not only review matrix-matrix multiplication, but we also start thinking about this operation in different ways.

Upon completion of this week, we will be able to

  • Map matrices to memory.

  • Apply conventions to describe how to index into arrays that store matrices.

  • Observe the effects of loop order on performance.

  • Recognize that simple implementations may not provide the performance that can be achieved.

  • Realize that compilers don't automagically do all the optimization.

  • Think about matrix-matrix multiplication in terms of matrix-vector multiplications and rank-1 updates.

  • Understand how matrix-matrix multiplication can be layered in terms of simpler operations with matrices and/or vectors.

  • Relate execution time of matrix-matrix multiplication to the rate of computation achieved by the implementation.

  • Plot performance data with Matlab.

The enrichments introduce us to

  • The Basic Linear Algebra Subprograms (BLAS), an interface widely used in the computational science.

  • The BLAS-like Library Instantiation Software (BLIS) framework for implementing the BLAS.

  • How to count floating point operations.