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 RZ F21.
Recitation sessions take place Thursdays 13:15 -- 15:00 in IFW B 42 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.
|0||09/23: Organization and Introduction||09/26: No meeting|
|1||09/30: Cache Coherence||10/03: No meeting|
|2||10/07: Memory Models||10/10: Project Proposals and Cache Coherence|
|3||10/14: Linearizability||10/17: Sequential Consistency|
|4||10/21: Languages and Locks||10/24: Linearizability|
|5||10/28: Locks and Lock-Free, Notes (unchecked, use at your own risk)||10/31: Locks|
|6||11/04: Project Presentations, Locks and Lock-Free cont.||11/07: Implementing Locks Code, Slides|
|7||11/11: Locks and Lock-Free cont.||11/14: Locks and Lock-Free cont.|
|8||11/18: Amdahls law, Notes||11/21: Progress Presentations|
|9||11/25: Roofline Model, Notes||11/28: Amdahl's Law|
|Thursday 13:15 - 15:00|
|Room||Assistant||IFW B 42||Timo Schneideremail@example.com|
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 on the mailing list or make an appointment with your TA if you have trouble with the assignments!
|2||1||09/26||Cache Coherence||Cache Coherence|
|3||2||10/09||Sequential Consistency||Sequential Consistency|
|6||5||11/01||Locks and Lock-Free||Code, Slides|
|7||6||11/07||Locks and MPI||Code|
|8||7||11/21||Amdahl's law||Amdahl's law|
|Number||Members||Team Name||Project Description|
|1||Boris Peltekov, Xavier Lapillonne||BitrepS||Bit Reproducible Sum|
|2||Christian Zeman, Lukas Mosimann||Deadlocked||Fringe Search|
|3||Benjamin Ulmer, Tobias Wicky||Connected Components|
|4||Christine Zeller, Karolos Antoniadis||Redpanda||Concurrent Skiplists|
|5||Giuseppe Accaputo, Pascal Iselin||Due Fratelli||Parallel A*|
|6||Otto Bibartiu, Mauro Calderara||SPIKE|
|7||Hyun-U Sohn||Agent Behaviour Model|
|8||Erik Henriksson||Parallel AVL Trees|
50% of your grade is determined by the project, and the other 50% of the grade is determined by a written 2 hr exam.