The course covers all aspects of high-performance computing ranging from architecture through programming up to algorithms. We start with a discussion of caches and cache coherence in practical computer systems. We then dive into parallel programming concepts such as memory models, locks, and lock-free. We cover performance modeling and parallel design principles as well as basic parallel algorithms.
This course is intended for the Computer Science Masters curriculum. Students must have basic knowledge in programming in C as well as computer science theory. Students should be familiar with the material covered in the ETH computer science first-year courses “Parallele Programmierung (parallel programming)” and “Algorithmen und Datenstrukturen (algorithm and data structures)” or equivalent courses.
- Fall 2020 (with Torsten Hoefler)
- Fall 2019 (with Tal Ben-Nun)
- Fall 2018 (with Torsten Hoefler)
- Fall 2017 (with Torsten Hoefler)
- Fall 2016 (with Torsten Hoefler)
- Fall 2015 (with Torsten Hoefler)
- Fall 2014 (with Torsten Hoefler)
- Fall 2013 (with Torsten Hoefler)
- Fall 2012 (with Thomas Gross and Torsten Hoefler)
- Fall 2011 (with Thomas Gross)