Lecturers
Teaching Assistants
Class Room
- Room: HG E 3. This course is offered in a hybrid format
- Zoom: https://ethz.zoom.us/j/66024850658 (Passcode is announced in Moodle)
Class Times
- Lecture: Wednesday, 08:15 – 10:00 (hybrid – link to recordings below)
- Exercise: Wednesday, 12:15 – 14:00 (hybrid – link to recordings below)
- Office Hours: Tuesdays 9:00-10:00. Location: CLT E12. Note: When you arrive at CLT, ring the doorbell !
Class Material
- Questions to TAs: During Office hours, Exercise/Tutorial sessions, and in Moodle.
- Git repository: HpcseI Fall 2022 Lecture
- Homework submission: Moodle
Exam Material
- TBA
Course Schedule and Material
Lectures (TBA)
21.09.2022 | Lecture 1 – Introduction | (slides) (recording) |
28.09.2022 | Lecture 2 – Principles of HPC | (slides) (recording) |
05.10.2022 | Lecture 3 – Cache | (slides) (MatMul Animation: Naive / Blocked) (recording) |
12.10.2022 | Lecture 4 – Thread-Level Parallelism / Intro to OpenMP | (slides) (recording) |
19.10.2022 | Lecture 5 – OpenMP II | (same slide-deck as last lecture) (recording) |
26.10.2022 | Lecture 6 – Diffusion and Finite Differences | (slides) (recording) (blackboard notes are included in the slides) |
02.11.2022 | Lecture 7 – PCA | (slides) (recording) (blackboard) |
09.11.2022 | Lecture 8 – Monte Carlo | (slides) (recording part I, blackboard notes) (recording part II) |
16.11.2022 | Lecture 9 – OpenMP III | (slides) (recording) |
23.11.2022 | Lecture 10 – MPI I | (slides) (recording) |
30.11.2022 | Lecture 11 – MPI II | (slides) (recording) |
07.12.2022 | Lecture 12 – MPI III | (slides) (recording) |
14.12.2022 | Lecture 13 – Instruction-Level Parallelism + BLAS | (slides) (recording) |
21.12.2022 | Mock Exam | (pdf) (solution_pdf) (codes) (recording) |
Exercises
Date | TA |
Exercise | Deadline (8:00 AM) | Solution |
28.09.2022 | Noah Baumann |
HW 1 |
12.10.2022 | (pdf) (solution code) |
12.10.2022 | Michalis Chatzimanolakis |
HW 2 |
31.10.2022 (updated) | (pdf) (solution code) |
26.10.2022 | Athena Economides |
HW 3 |
09.11.2022 | (pdf) (solution_code) |
09.11.2022 | Noah Baumann | HW 4 (pdf) (code) (tutorial) (recording) |
30.11.2022 (updated) | (pdf) (solution_code) |
23.11.2022 | Noah Baumann |
HW 5 |
07.12.2022 | (pdf) (solution_code) |
07.12.2022 | Michalis Chatzimanolakis |
HW 6 |
21.12.2022 | (pdf) (solution_code) |
21.12.2022 | All | Mock Exam (Continued) (recording) |
Tutorials
Date | TA |
Session | Handout |
21.09.2022 | Athena Economides | Tutorial 1 – C++, Makefiles, Euler | (sides) (code) (recording) |
05.10.2022 | Noah Baumann | Tutorial 2 – Cache use optimisation | (slides) (code) (recording) |
19.10.2022 | Michalis Chatzimanolakis | Tutorial 3 – OpenMP | (material) (recording) |
02.11.2022 | Athena Economides | Tutorial 4 – Diffusion / PCA | (slides) (material) (recording) |
16.11.2022 | Noah Baumann | Tutorial 5 – Monte Carlo | (slides) (material) (recording) |
30.11.2022 | Athena Economides | Tutorial 6 – MPI | (material) (recording) |
14.12.2022 | Athena/Noah | Tutorial 7 – MPI Communicators and Datatypes | (material) (recording) |
Exam
Computer based session examination involving theoretical questions and coding problems. You are allowed to bring a handwritten summary of 4 A4 sheets, written on the front and back pages (8 pages total). In addition, we will provide you with the following material:
- Lecture slides
- Exercise solutions
- Additional lecture notes distributed during the lecture
- OpenMP specification and reference card (pdf)
- MPI standard and reference card (pdf)
- Offline version of cppreference.com
Textbooks
- An Introduction to Parallel Programming, P. Pacheco, Morgan Kaufmann, 2011
- Introduction to High Performance Computing for Scientists and Engineers, G. Hager and G. Wellein, CRC Press, 2011
- Parallel Programming in MPI and OpenMP, V. Eijkhout. (Will be available in the exam) List of chapters
- Computer Organization and Design, D.H. Patterson and J.L. Hennessy
Additional Material
Old Exam Sheets
- Exam Sheet (2012): It included some topics that are NOT part of this semester's lecture.
- Exam Sheet (2015): It included some topics that are NOT part of this semester's lecture. (skeleton codes)
- Exam Sheet (2019): It may include topics that are NOT part of this semester's lecture. (skeleton codes)
- Exam Sheet (2020): It may include topics that are NOT part of this semester's lecture. (skeleton codes)
- Documentation: Lecture slides and exercise solutions, Manuals for C++, OpenMP, MPI and SIMD. Available in the 2016 exam. Sample cover sheet
Useful Links
General links on HPC and clusters
- Bash tutorial
- cheat.sh, multi-purpose command line reference
- Command Reference
- Euler wiki
- CSCS users page
- www.hpc-ch.org
Tutorials
- HPC tutorial at LLNL – Blaise Barney
- SC15 Tutorial Preview Videos
- Argonne Training Program on Extreme-Scale Computing
C++
- C++ lecture notes: Basics, Templates, Classes
- cppreference.com
- cplusplus.com
OpenMP
MPI
SIMD
For Windows users
- Working Remotely: Tutorial for Windows Users
- PuTTY: a simple free SSH client for Windows
- WinSCP: for copying files between Windows and Euler
- Cygwin: Linux-like environment on Windows (Installation hints)
Others