HPC - Algorithms and Applications - Winter 15

From Sccswiki
Jump to navigation Jump to search
Winter 15/16
Prof. Dr. Michael Bader
Time and Place
Mon, 14.00-15.30, and Wed, 12.15-13.45, in room MI 02.07.023 (first lecture on Oct 19);
lectures and tutorials will alternate on Wednesdays; as Michael Bader is on research semester, some slots on Mon/Wed will be skipped
Elective topic in Informatics Bachelor/Master: students in mathematics or in any science or engineering discipline are welcome!
Alexander Pöppl, M.Sc.
repeat exam on April 7th, 15:30-17:15 in MI 02.07.023
Semesterwochenstunden / ECTS Credits
3 SWS (2V + 1Ü) / 4 ECTS


Remaining Exercises

  • Exercise on Dec 9th
  • No exercise on Dec 16th
  • No exercise on Dec 23th
  • Exercise on Jan 13th
  • No exercise on Jan 20th
  • Q&A session on Jan 27th


The lecture will have a focus on parallel algorithms and implementation techniques in the field of numerical simulation and high performance computing, such as:

  • linear algebra problems on dense and sparse matrices
  • simulation on structured and unstructured meshes
  • particle-based simulations (with long-range and short-range interactions)
  • spectral methods (parallel FFT and related algorithms)
  • Monte Carlo and statistical methods

(a.k.a. the seven dwarfs of HPC).

The accompanying tutorials will include practical assignments, and will concentrate on the programming of GPU and accelerator platforms.

Lecture Material

Lecture slides will be published here after the lessons: See also the lecture from winter term 2014/15.


Roughly every second week a two hour tutorial will take place (details at page top; days and time will be announced in TUMonline and in the lectures). The assignments and their solutions will be gradually posted here.

Date Slides Worksheet Source Source (solution)
Oct 21th Organizational remarks - - -
Oct 28th Introduction to CUDA Worksheet 1 Exercise 1 included in Exercise 2
Nov 11th Further details on Dense LA in CUDA Worksheet 2 Exercise 2 Solution 2
Nov 18th Sparse LA in CUDA Worksheet 3 Template for Lecture Template for Homework Memory accesses, Code included in Exercise 4
Dec 2nd Solving the heat equation with CUDA Worksheet 4 Homework template (revised) Solution 4
Dec 9th The Shallow Water Equations and CUDA Worksheet 5 Exercise 5 included in Exercise 6
Jan 13th Further topics on SWE and CUDA Worksheet 6 Exercise 6 -


Repeat Exam

  • the same rules as for the written exam will apply (see below)
  • if less than 10 participants register for the exam, it will be executed as a series of oral exams (announcement with details will follow by email)
  • written exam on Thu, Apr 7, 2016, from 15.30 (room MI 02.07.023)
  • In case of a written exam, please try to be in front of the room by 15:15 as the working time will start at 15.30. Announcements will be made prior to 15:30.
  • Helping material: One sheet of A4 paper (two-sided) with hand-written notes on it.
  • the exam will extend over all topics discussed in the lectures and tutorials:
    • approx. 30% of the questions will deal with questions related to the tutorials; basic knowledge about GPU programming with CUDA is thus required

Exam Preparation

  • in the last lecture and in the last tutorial, there will be the oportunity to ask questions on lecture topics and exercises, respectively
  • the following worksheet contains some example questions (with solutions) from previous exams:
    • exam questions with example solutions
    • note that this collection of exercises does not reflect the extent of assignements in the exam
    • note that the contents of the leture may have slightly changed compared to previous years, such that exercises can have a slightly different focus (this year, we did not cover the topics of exercises 2a and 2b, e.g.)

Literature and Online Material

(all available as ebooks from TUM library)

Books on CUDA

(both available as ebooks from TUM library)


Helpful, but not strictly required is knowledge in:

  • basics of numerical methods (e.g.: lecture IN0019 Numerical Programming or similar)
  • basics of parallel programming (lecture Parallel Programming, HPC - Programming Paradigms and Scalability, or similar)

Most important is a certain interest in problems from scientific computing and numerical simulation!