Course Material

The goal of this course is to get an overview of HPC. We will not go into depth of any topic. In the section Course Material you can find videos, source code, and other material that help you learning.

After filling possible gaps in programming in general, we want to learn how to program with hardware characteristics in mind. We strive to optimize for best performance or, beyond this course, energy efficiency. We will focus on two aspects: Memory and cache hierarchy on one hand, and CPU instructions and branching on the other hand.


The key topics of this course are:


The Assignment section provides training tasks for this course. If you take the course as a student at Chalmers/GU, they are the course assignments, details on which can be found in the section Chalmers/GU.

The core topics of this course are manifest in the assignments. If you focus on solving the assignments best possible you will automatically absorb the course content.

We prioritise practical skill over theory, but we do not skip theory. To obtain the best possible results, solid understanding of hardware architecture is indispensable. In connection to any theory your are confronted with experimenting with bifurcations on your current programming task.


The section Chalmers/GU contains all information that you need to know when you take this course as a student at Chalmers/GU. In any other situation, you can safely ignore it.


Text on this website, in particular assignments texts, and all videos hosted on this website are by Martin Raum, CC BY-SA 4.0. This does not extend to content on other websites referred or linked to.