Class times & rooms
- Lecture: Monday, 14:15-16:00 (Zoom link), Classroom: ML H44
- Exercise: Will begin on the second week of classes. Monday, 10:15-12:00 (Zoom link), Classroom: ML H44
- Lecture recordings can be found below.
- Office Hours:
- Chenyu: Fridays 4-5 pm (on demand – send email: chenyang [at] student.ethz.ch).
- Athena: on demand – send email: eceva [at] ethz.ch
- Sergio: on demand – send email: martiser [at] ethz.ch
Resources
Moodle Course: https://moodle-app2.let.ethz.ch/course/view.php?id=19891
Gitlab Repository: https://gitlab.ethz.ch/hpcse-public-repos/hpcse-ii-spring-2023-lecture
Lectures
Date | Lecture |
20.02.2023 | Introduction & Intra-node data motion (slides) (recording) |
27.02.2023 | Communication-Tolerant Programming (slides) (recording) |
06.03.2023 | UQ and Optimisation (slides) (recording) |
13.03.2023 | Bayesian UQ and Sampling methods (slides updated 14/3/2021) (recording) (Notes on UQ) |
20.03.2023 | Sampling Strategies and The Korali Framework (slides) (recording) |
27.03.2023 | Data-Level Parallelism / Vectorization (slides) (recording) |
03.04.2023 | GPU Programming (slides) (recording) |
24.04.2023 | GPU Programming II (slides) (recording) |
08.05.2023 | GPU Programming III (slides) (recording) |
15.05.2023 | GPU Programming IV (slides) (recording) |
22.05.2023 | Mock Exam (see below for material) |
Exercise & Tutorial Sessions
Date | Session |
27.02.2023 | Tutorial 1: Hybrid MPI+OpenMP (material) (recording) |
06.03.2023 | Tutorial 2: Communication Cost (material) (recording) |
13.03.2023 | Tutorial 3: Probabilities and Bayesian inference (material) (recording) |
20.03.2023 | Tutorial 4: Introduction to the Korali framework (material) (recording) |
27.03.2023 | Tutorial 5: Optimization and Sampling with the Korali framework (material) (recording) |
03.04.2023 | Tutorial 6: Data-level parallelism and Vectorization (material) (recording) |
17.04.2023 | Tutorial 7: Working with Piz Daint (material) (recording) |
24.04.2023 | Tutorial 8: Introduction to CUDA (material) (recording) |
08.05.2023 | Tutorial 9: Programming the GPU with CUDA (material) (recording) |
15.05.2023 | Tutorial 10: Collective operations with CUDA (material) (recording) |
22.05.2023 | Mock Exam (material) (recording) |
Homework
# | Issue Date | Due Date | Homework |
1 | 27.02.2023 | 13.03.2023 | HW 1 |
2 | 13.03.2023 | 27.03.2023 | HW 2 (updated point distribution 14/3/2023) |
3 | 27.03.2023 | 17.04.2023 | HW 3 |
4 | 17.04.2023 | 08.05.2023 | HW 4 |
5 | 08.05.2023 | 22.05.2023 | HW 5 |
Textbooks & Recommended Reads
- Kowarschik, M. and Weiß, C., An overview of cache optimization techniques and cache-aware numerical algorithms.
-
Parallel Programming in MPI and OpenMP, V. Eijkhout.
- CUDA C Programming Guide, NVIDIA
-
CUDA by example, J. Sanders and E. Kandrot
-
Data Analysis: A Bayesian Tutorial, Devinderjit Sivia
-
Introduction to High Performance Computing for Scientists and Engineers, G. Hager and G. Wellein, CRC Press, 2011
-
Computer Organization and Design, D.H. Patterson and J.L. Hennessy
Additional Material
- Bash tutorial
- Command Reference
- Getting Started With Euler
- Euler wiki
- CSCS users page
- CSCS Piz Daint Tutorial
- 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
MATE – Runtime system for hybrid approach to overdecomposition
CUDA
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
- The Parallel Dwarfs project
- The Landscape of Parallel Computing Research: A View from Berkeley
- KAUST Live: Thomas Schulthess, Swiss National Supercomputing Center
- Parallel Program Design – Ian Foster
- How the Computer Works – The CPU and Memory
- A Multiprecision World – SIAM News
- Should We Trust Algorithms – MIT Press