Lecturer
Teaching Assistants
Class Room
- ML H44
Class Times
- Lecture: Friday, 10:15 – 12:00 (ML H44)
- Exercise: Friday, 08:15 – 10:00 (ML H44)
Computer Rooms
- HG E26.1, E26.3, E27
The environment provided by these computers is similar to the exam environment.
Class Material
- Mailing List: hpcse_hs19@sympa.ethz.ch
- Git repository: https://gitlab.ethz.ch/hpcse19/lecture.git
- Exercise submission: Moodle
- Piazza discussion board: Piazza
Schedule and Lecture Slides
20.09.2019 | Introduction, Architectures, Performance (> Additional Slides <) |
27.09.2019 | Shared Memory, Concurrency, Threads |
04.10.2019 | OpenMP, part 1 |
11.10.2019 | OpenMP, part 2, Linear algebra: BLAS |
18.10.2019 | SVD and Neural Networks, lecture notes PCA |
25.10.2019 | Neural Networks and Matrix Vector multiplication, lecture notes Perceptron |
01.11.2019 | Instruction Set Architecture and Pipelining |
08.11.2019 | MPI, part 1 |
15.11.2019 | MPI, part 2 and strong / weak scalings |
22.11.2019 | MPI, part 3 I/O + hybrid MPI-OpenMP |
29.11.2019 | Structured grids and Finite differences (Diffusion) |
06.12.2019 | Particles and N-Body Solvers (Diffusion) , lecture notes |
13.12.2019 | Vectorization |
20.12.2019 | Particle-Grid Algorithms (Remeshing, Semi-Lagrangian) , blackboard |
Exercises
The exercises begin in the second week of the semester.
Date | Exercise | Handout | Solution |
27.09.2019 | Set 1 | PDF, skeleton code (Suppl.: SSH for Windows) | Solution |
11.10.2019 | Set 2 | PDF, skeleton code, slides, tutorial | Solution |
25.10.2019 | Set 3 | PDF, skeleton code, slides | Solution |
08.11.2019 | Set 4 | PDF, skeleton code, slides | Solution |
22.11.2019 | Set 5 | PDF, skeleton code, slides | Solution |
06.12.2019 | Set 6 | PDF, skeleton_code, slides | Solution |
Tutorial sessions
Date | Session | Handout |
04.10.2019 | Tutorial 1: C/C++ Basics for Science And Engineering | Exercise Files |
18.10.2019 | Tutorial 2: BLAS & Optimizations | Exercise Files |
01.11.2019 | Tutorial 3: Oja’s rule & PCA, blackboard | Exercise Files |
15.11.2019 | Tutorial 4: Name mangling, debugging, memory leaks, profiling | Exercise Files |
29.11.2019 | Tutorial 5: Parallel data storage and visualization | Exercise Files |
13.12.2019 | Tutorial 6: Cell-lists | Exercise Files |
Exam
Updated 20.12.2019: PDF summary for Exam info/tips discussed in the Q&A session of the last exercise: exam info
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
- Offline version of the Intel intrinsics guide
- The book by Victor Eijkhout
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