Teaching Assistants
Class Room
- Online
Class Times
- Lecture: Friday, 10:15 – 12:00 (online – link to recordings below)
- Exercise: Friday, 08:15 – 10:00 (online)
Computer Rooms
- HG E26.1, E26.3, E27
The environment provided by these computers is similar to the exam environment.
Class Material
- Questions to TAs: Piazza
- Git repository: https://gitlab.ethz.ch/hpcse20/lecture.git
- Exercise submission: Moodle
Exam Material
- Documentation available during the exam: zip (400 MB)
Schedule and Lecture Slides
18.09.2020 | Introduction: Slides, Video |
25.09.2020 | Cache and concurrency: Slides, Video, Slides (matrix multiplication cache) |
02.10.2020 | PCA: Slides, Video |
09.10.2020 | OpenMP – Part I: Slides Power Method: Slides, Video |
16.10.2020 | OpenMP – Part II: Slides (starting from slide 61), Video |
23.10.2020 | Autoencoders / NN / Dimensionality Reduction: Slides, Video |
30.10.2020 | HPC libraries: Linear algebra / ISA & Instruction-Level Parallelism: Slides, Video |
06.11.2020 | Data-Level Parallelism & Vectorization: Slides, Slides (animation), Video |
13.11.2020 | MPI – Part I: Slides, Video |
20.11.2020 | MPI – Part II: Slides, Video |
27.11.2020 | Diffusion – Random Walks and Finite Differences. Slides, Video |
04.12.2020 | The Roofline Model. Slides, Video |
11.12.2020 | MPI – Part III: Slides, Video |
18.12.2020 | (see Tutorials section) |
Exercises
The exercises begin in the second week of the semester.
Date | TA |
Exercise | Handout | Solution |
02.10.2020 | Georgios Arampatzis | Set 1. Amdahl’s Law, Cache | git | |
16.10.2020 | Sergey Litvinov | Set 2. OpenMP | git | |
30.10.2020 | Martin Boden | Set 3. PCA and Oja's Rule | git | |
13.11.2020 | Michalis Chatzimanolakis | Set 4. Vectorization and MPI | git | |
27.11.2020 | Lucas Amoudruz | Set 5: MPI and roofline model | git | |
11.12.2020 | Petr Karnakov | Set 6: MPI IO, Hybrid MPI + OpenMP, ADI | git |
Tutorials
Date | TA |
Session | Handout |
25.09.2020 | Georgios Arampatzis | Tutorial 1. C++, Makefiles, Euler | |
09.10.2020 | Martin Boden | Tutorial 2. PCA, performance metrics | |
23.10.2020 | Michail Chatzimanolakis | Tutorial 3. Debugging | |
06.11.2020 | Sergey Litvinov | Tutorial 4. Libraries, BLAS | |
20.11.2020 | Petr Karnakov | Tutorial 5. Visualization | |
04.12.2020 | Lucas Amoudruz | Tutorial 6. Cell Lists | |
18.12.2020 | Mockup exam |
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)
- 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