- Profs: T. Hoefler, B. Solenthaler
- Website: https://spcl.inf.ethz.ch/Teaching/2025-pp/
- Moodle: https://moodle-app2.let.ethz.ch/course/view.php?id=24843
- Admin: Admin
- Material: Material
- Videos:
Lecture Notes
- 01 Introduction & Course Overview
- 02 Java Recap and JVM Overview
- 03 Introduction to Threads and Synchronization (Part I)
- 04 Introduction to Threads and Synchronization (Part II)
- 05 Introduction to Threads and Synchronization (Part III)
- 06 Parallel Architectures - Parallelism on the Hardware Level
- 07 Basic Concepts in Parallelism
- 08 Divide & Conquer and Executor Service
- 09 DAG and ForkJoin Framework
- 10 Parallel Algorithms (Part I)
- 11 Parallel Algorithms (Part II)
- 12 Shared Memory Concurrency, Locks and Data Races
- 13 Virtual Threads
- 14 Exam Preparation (First Half)
- 15 Memory Reordering, Java Memory Model, Data Races
- 16 Implementation of Mutual Exclusion, Critical Section, Decker’s Algorithm, Peterson’s Lock, Filter Lock, Lamport’s Bakery Algorithm
- 17 Read-Modify-Write Operations, TAS, CAS, TATAS Locks, Deadlocks
- 18 Deadlocks, Semaphores, Barriers
- 19 Producer Consumer Pattern, Queue, Monitors
- 20 Producer Consumer, Sleeping Barber, Conditional Waits, Reader Writer Locks, Lock Granularity
- 21 Optimistic Sync, Lazy Sync, Lazy Skip Lists, Lock-Free Programming
- 22 Lock-Free Stack, Lock-Free List-Based Set, Lock-Free Queue
- 23 Lock-Free Unbounded Queue Protocol
- 24 ABA Problem, DCAS, GC, Pointer Tagging, Hazard Pointers, Linearizability
- 25 Linearizability Formalism, Sequential Consistency (Weaker Alternative), Quiescent Consistency
- 26 Consensus, Consensus Hierarchy, Transactional Memory, Atomic Blocks, Scala-STM, Clock Based STM
- 27 Transactional Memory, Distributed Memory, Message Passing, Go Concurrency Model, Message Passing Interface