High-Performance Matrix Computations --- 2018

When: Summer semester 2018

CAMPUS #: 18ss-24886

Contact: Prof. Paolo Bientinesi



Prerequisites

Basic knowledge of numerical linear algebra.
Principles of algorithms and programming.
Familiarity with Matlab and C.


Overview

The course centers around the idea of developing efficient numerical algorithms through a synergy between mathematics and architectures.


Tentative syllabus

  • processor architecture (cpu, memory system, interconnect)
  • floating point operations
  • roofline model
  • vectorization
  • matrix-matrix product, BLAS
  • factorizations
  • method of relatively robust representations (MR3)
  • blocked algorithms
  • algorithms by block
  • dynamic scheduling
  • data parallelism
  • shared memory vs. distributed memory paradigm
  • synchronization vs. communication

Lectures & Exercises

  • Tuesday, 16:15-17:45pm (lecture)
  • Wednesday, 12:15-13:45pm (lecture + exercise)

Where: 1090|334 (klPhys)

Start: Wednesday, 11.04


Office hours

  • Tuesdays, 11am-1pm, by appointment.
    AICES R432 (Rogowski Building - Schinkelstrasse 2)

Schedule

  • Wednesday, 11.04 Intro [PDF][script]
    GER [PDF][Mathematica notebook]
  • Wednesday, 18.04 [script]
    Performance [PDF]
  • Tuesday, 24.04 [script]
    [a * 0][A + B]
  • Wednesday, 25.04 [script]
    [PDF to come]
  • Tuesday, 08.05 [script]
    Computational intensity, Roofline model [Paper]
    LAMP - part 1 [PDF]
  • Wednesday, 09.05 [script]
    LAMP - part 2 [PDF]
  • Tuesday, 15.05 [script]
    Generation of algorithms
  • Wednesday, 16.05 [script]
    Recursive, unblocked, blocked algorithms [LU diary]
  • Tuesday, 29.05 [script+refs] [PDF]
    Wednesday, 30.05 From PME to algorithms [Sec 4.5] [Figs 4.1 & 4.4]
  • Tuesday, 05.06 Linnea compiler [script]
    Wednesday, 06.06
  • Tuesday, 12.06 Road to high-performance DGEMM [script]
  • Wednesday, 13.06 Project assignment [Projects]
  • Tuesday, 19.06 Extra Lecture: "Optimal Performance Numerical Code: Challenges and Solutions" by Prof. Markus Pueschel. 10:30-12:00 + 13:30-15:00, Room 115. [html]
  • Tuesday, 19.06 Regular Lecture: Algorithms by blocks

Exams

  • 24.07.2018, 17:00-20:00, 1070|113 (Phil)