About this Course

This course offers an overview of HPC, high performance computing, but we will not go into depth of any topic. In the section Course Material you find videos, source code, and other material that facilitate your learning. In the section Assignments you find assignments that help you to engage with the course material. In fact, so much so that the core topics of this course manifest themselves 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 experiment with bifurcations on your current programming task.

Although this course is separate from my teaching and research at Chalmers University of Technology, its creation was and is motivated by my desire to have resources available that enable to teach TMA881 in an effective way. If you visit this site as a student of this course, you can find specific information in the section Chalmers/GU.

Topics

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:

Effective Learning and Goal Setting

The material on this website provides you an opportunity for a deep-dive into the world of hardware-aware programming. But you have to do the work. This is obvious if you use the offered material as an independent learner, but remains equally true if you are a student at say Chalmers, in a country which decided decades ago to cut educational budgets by about 2 percent annually. You are not on your own, but you need take responsibility for your learning.

For advice I can only refer you to my own sources, as I am an avid learning myself but not an expert on the brain or human behavior. Besides that, I do see the need to warn about pedagogical literature in general and psychological literature from before the time when the replication crisis was tackled. Results presented in such work might in the future hold up to scrutiny or might not; We do not have any objective way to know, but many examples inspiring a critical view on them. Science can do better, and does so.

I do recommend the podcast series HubermanLab by Andrew Huberman at Standford, as I greatly enjoy it myself and believe that it showcases an admirable balance between precision and accessibility. A list of topics that you could find helpful when approaching the material on this website includes the episodes:

Let this list by no means discourage or distract you from exploring your own sources.

About Me

I am a professor of mathematics at Chalmers University of Technology. While I work in theoretical mathematics, I have a strong interest in many aspects of computing and computer science. You find more details including contact information on my website.

Licensing

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.