Advanced Multiprocessor Programming (184.726) - Summersemester 2019



Lecture with practical project part (VU).
Lecture Mondays 10:10 - 12:00, first 4.3.2019 (all potential students should be present). Additional slots: some Thursdays, 9:00 - 11:00.

Lecture hall EI 6 (Gusshausstrasse 25-27).

Vorbesprechung (and first lecture): 4.3.2019

Project hand-in: 20.6.2019.

Exam: First week of July, estimated (1-5.7.2019).


Synchronization problems, operations and primitives, atomic operations, consensus, impossibility and universality results, locks, lock- and wait-free data structures (lists, stacks, queues, hashtables, search structures, ...), memory models, work-stealing, transactional memory. Practical implementation project in C++.

Lectures, material

  1. Monday, 4.3.2019: Vorbesprechung. Intro, Mutual Exclusion problem and solutions
  2. Monday, 11.3.2019: Mutual Exclusion problem and solutions
  3. Monday, 18.3.2019: Constructions of atomic registers, register snapshot
  4. Monday, 25.3.2019: Relative power of synchronization operations, correctness conditions
  5. Thursday, 28.3.2019: Exercises batch 1
  6. Monday, 1.4.2019: Relative power of synchronization operations
  7. Monday, 8.4.2019: Projects (description). Practical lock implementations
  8. Monday, 15.4.2019: No lecture (Easter holidays)
  9. Monday, 22.04.2019: No lecture (Easter holidays)
  10. Monday, 29.4.2019: Projects (selection). Data structures (I): List-based sets
  11. Thursday, 2.5.2019: Exercises batch 2 (NB: moved from 11.4 due to meeting in faculty)
  12. Monday, 6.5.2019: Data structures (II): Queues and stacks
  13. Monday, 13.5.2019: Data structures (III): Skiplist
  14. Monday, 20.5.2019: Memory consistency models. Here is a note on memory consistency models.
  15. Monday, 27.5.2019: Memory consistency models, memory reclamation (brief intro) (continued).
  16. Monday, 3.6.2019: Data structures (IV): Hash tables
  17. Thursday, 6.6.2019: Project (status presentations): 10 minutes per group, all present
  18. Monday, 10.6.2019: No lecture (Whitsun holiday)
  19. Monday, 17.6.2019: Work-stealing theory
  20. Thursday, 20.6: Project hand-in


  1. Thursday, 28.3.2019, 9:00-11:00: EI 6, Gusshausstrasse 25-29
  2. Thursday, 2.5.2019, 9:00-11:00: EI 6, Gusshausstrasse 25-29

The exercises are to be done individually, can be handed in on paper, or electronically by email to

On the exercise days (Thursdays) all must be present, and be prepared to discuss solutions at the blackboard.


Project topics, projects can be done in groups of two, group topic presentation on Thursday 6.6.2019, hand-in deadline (TUWEL) Thursday 20.6.2019
The programming project is mandatory, hand-in deadline Thursday 20.6.2019, see TUWEL. Benchmarking will have to be done on the system provided for this lecture (Nebula), see TUWEL for instructions and use.

Special exercise (mandatory): Getting access to the systems (key upload)



C++11, C11, CilkPlus, TBB, OpenMP