This course exposes students to the principal issues involved in software development for parallel computing and discusses a number of approaches to handle the problems and opportunities caused by the increased availability of parallel platforms.
The course includes lectures, assignments, self-study, and a project. 50% of your grade is determined by project work and 50% is determined by a written exam; the exam is given during the official examination period, and there is no makeup exam. Students must be able to program using Java and C/C++.
The course may cover: memory coherence and consistency models, implications for language-specific memory models, Java memory model, models of parallel programming and parallel program execution, performance models for parallel systems, transactional memory, compiler extraction of parallelism, language and compiler support for parallel programming, threads and their execution environment, synchronization, and implementation issues of these topics.
Lectures are given Mondays 13:15 - 16:00 in LEE D 101.
Recitation sessions take place Thursdays 13:15 -- 15:00 in LEE D 101 and take place when announced. Some of the lecture hours will be devoted to other activities (tutorials, reviews, etc) or will be devoted to group meetings. Please watch this page for updates and announcements.
Week | Monday | Thursday |
---|---|---|
0 | 09/15: no lecture due to master students information day | 09/18: MPI Tutorial |
2 | 09/22: Organization (1up, 6up) and Introduction (1up, 6up) | 09/25: Projects (1up, 6up) and Advanced MPI tutorial |
3 | 09/29: no lecture | 10/02: OpenMP tutorial |
4 | 10/06: Cache Coherence (1up, 6up), Additional Material to brush up your knowledge on caches here and here | 10/09: Cache Coherence Tutorial |
5 | 10/13: Memory Models (1up, 6up) | 10/16: Sequential Consistency and TM Tutorial |
6 | 10/20: Linearizability (1up, 6up) | 10/23: Linearizability |
7 | 10/20: Languages and Locks (1up, 6up) | 10/23: Linearizability Solution, Project Presentation |
8 | 11/03: Project Presentation, Locks and Lock Free(1up, 6up) | 11/06: Locks solution, Quiz on OpenMP, MPI and General Concepts Quiz |
9 | 11/10: Locks and Lock Free(1up, 6up) | 11/13: Quiz Solution |
9 | 11/17: Amdahl's Law(1up, 6up), Notes | 11/20: Amdahl's Law, PRAM |
10 | 11/24: Roofline Model, Balance Principles (1up, 6up), Notes | 11/27: Project Presentations |
11 | 12/01: Scheduling (1up, 6up), Lock Free and Distributed Memory (1up, 6up) | 12/04: |
12 | 12/08: Distributed Memory Algorithms (1up, 6up) | 12/11: |
Thursday 13:15 - 15:00 | |||
---|---|---|---|
Room | Assistant | LEE D 101 | Timo Schneider | timos at inf.ethz.ch | LEE D 101 | Arnamoy Bhattacharyya | arnamoy.bhattacharyya at inf.ethz.ch |
Assignments are an important part of the course. You will not learn this material from listening to a lecture alone -- you have to do the assignments.
Note: Do not hesitate to write an email to your TA if you have trouble with the assignments!
Number | Assignment | Out | Description | Solution |
---|---|---|---|---|
1 | Assignment 1 | 09/18 | Parallel Pi with MPI | Solution |
2 | Assignment 2 | 10/02 | Matrix Multiplication with OpenMP and MPI | Solution |
3 | Assignment 3 | 10/09 | Caches, MESI Protocol, False Sharing | Solution |
4 | Assignment 4 | 10/16 | Sequential Consistency | Solution |
5 | Assignment 5 | 10/23 | Linearizability | Solution |
6 | Assignment 6 | 10/30 | Locks | Solution |
7 | Assignment 7 | 11/06 | Locks 2 | Solution |
8 | Assignment 8 | 11/14 | Locks 3 | Solution |
9 | Assignment 9 | 11/20 | Amdahls Law, PRAM | Solution |
10 | Tutorial 10 | 11/27 | Tutorial Session on PRAM | Slides |
9 | Assignment 11 | 12/11 | Distributed Memory Models | Solution |
Number | Members | Team Name | Project Description | Final Presentation |
---|---|---|---|---|
1 | Müller Nadja, Rothenberger Frederik | Cutting Edge | ||
2 | Tobias Weber, Zsolt Mezei, Robert Meier | returntozero | Parallel Max Flow | |
3 | Gustavo Segovia, Seraiah Walter, Fabian Meier | The Parallelepipeds | ||
4 | Julian Viereck, Vytautas Astrauskas, Roman Cattaneo | SAT solver? | ||
5 | Florian Frei, Fabian Thüring, Michel Breyer | Yellow Lobster | ||
6 | Aristeidis Mastoras, Renato Marroquin, David Sidler | PQE | ||
7 | Denny Lin, Chellakudam Vimal, Benjamin Mularczyk | NP-Soft | ||
8 | Lucas Wittwer, Felix Thaler, Nicolas Bennett | glinternet | ||
9 | Pawel Lenarczyk, Kehtari Sohrab, Anne Ziegler | Nano.Calc | ||
10 | Evgeny Klimenkov, Stephanie Christ, Lukas Strebel | Parallel BFS | ||
11 | Martin Hüsser, Jan Ebbe | Orcs Must Die! | Parallel Ripple Search | |
12 | Vishnevskiy Valery | |||
13 | Yatao Bian | Matrix |
50% of your grade is determined by the project, and the other 50% of the grade is determined by a written 2 hr exam. You are not allowed to use any electronic devices or books, notes, etc. to the exam.