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 possibly you will automatically absorb the course content.
We prioritize 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.
This course is separate from my academic responsibilities at Chalmers University of Technology. It is driven, however, by my commitment to delivering universal high-quality education, particularly in the context of the course TMA881 (later TMA882), where I seek to optimize learning outcomes despite resource constraints.
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. In a modern compute environment, both have to be considered in the context of parallelisation.
The key topics of this course thus are:
Optimization: Memory, CPU, and Disk I/O.
Parallelisation: OpenMP, the thread library, OpenCL, and MPI.
This website offers a comprehensive exploration of hardware-aware programming, providing a valuable opportunity for in-depth learning. However, it is essential to note that meaningful progress requires active engagement and effort from the learner. You have to do the work.
Regarding learning strategies, I can only recommend the resources that have been helpful to me in my own educational pursuits. I find it important to suggest approaching pedagogical and psychological literature with a critical eye, particularly when considering studies from the former in general or from the latter conducted prior to the replication crisis. The validity of such findings may be subject to future scientific scrutiny.
I recommend some of the older learning focused episodes of the podcast series HubermanLab. I greatly enjoyed them myself and believe that they showcase 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 following episodes. Let this list by no means discourage or distract you from exploring your own sources.
Dr. Wendy Suzuki: Boost Attention & Memory with Science-Based Tools
Science-Based Mental Training & Visualization for Improved Learning
I am full 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.
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.