Course material

Lectures are available as reveal.js presentations. In case you prefer pdf-files, you can print the presentation to pdf-file in your browser (works with Chromium and Falkon, but does not seem to function correctly with Firefox). Click one of the links to access them. The material will be continuously updated as the lecture advances. Slides of the previous course in 2018 are also available.

Here is a rough overview of how I have schedules various topics and how they align with the assignments’ deadlines. Notes that actual dates might be shifted compared to the planned ones.

Lecture Topic Number of lecture slots Planned Dates Corresponding assignment deadline
Introduction 1 ½ Sept. 3,4  
Development Environment 1 ½ Sept. 4,10 Mo, Sept. 16
Hardware Architecture 2 Sept. 11,17  
Optimization 2 ½ Sept. 18, 25, 26 Mo, Sept. 30
Parallel Computing 2 ½ Sept. 26, Oct. 1,2 Mo, Oct. 14
OpenMP 1 ⅔ Oct. 8,9 Fr, Oct. 25
OpenCL 1 ⅔ Oct. 9, 15 Fr, Oct. 25 (bonus assignment)
MPI 1 ⅔ Oct. 15, 16 Fr, Oct. 25 (bonus assignment)
free content 1 Oct. 22, 23  

Literature

An overview of the subject is available in

One essential part of your training is that you learn how to solve specific problems using web resources, because this is how problems are commonly used in real programmer’s life. In fact, it is a common job interview question where you find solutions to unprecedented problems. The two most important sources for your project work are therefore

Introduction

These lectures

You can find an introduction to the Linux Shell on the Canvas course.

To get an impression of HPC news you can consult, for example, insideHPC or HPCwire. Both are focused on the USA. The HPC policy of the European Commission is based on the EuroHPC declaration. An overview by countries is presented on Wikipedia.

Development Environment

These lectures

Hardware Architecture

These lectures

I recommend to have a look at conference talks by Scott Meyer and Mike Acton on hardware and programm performance.

Optimization

These lectures

I recommend to have a look at a converence talk by Emery Berger on measuring performance.

Parallel Computing

These lectures

OpenMP

These lectures introduce the parallization framework OpenMP, handeling

OpenCL

These lectures introduce the framework OpenCL for heterogeneous computing. They

MPI

These lectures introduce the MPI framework for multinode parallel processing. They