Advanced Multiprocessor Programming (184.726) - Sommersemester 2018

Lecturers

Plan

Lecture with practical project part (VU).

Lecture Mondays 10:00 - 12:00, first 5.3.2018 (all potential students should be present).
Additional slot: Thursdays (some, shared with HPC), 10:00 - 12:00.

Lecture hall EI 6 (Gusshausstrasse 25-27).

Vorbesprechung: 5.3.2018 (10:00-10:30 approx)

Project hand-in: 21.6.2018.

Exam: End June, beginning July (28.6-3.7.2018).

Overview

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, 5.3.2018: Vorbesprechung
  2. Monday, 12.3.2018: Intro, Mutual Exclusion problem and solutions
  3. Monday, 19.3.2018: Constructions of atomic registers, register snapshot
  4. Monday, 26.3.2018: no lecture (Easter holiday)
  5. Monday, 2.4.2018: no lecture (Easter holiday)
  6. Monday, 9.4.2018: Relative power of synchronization operations, correctness conditions
  7. Thursday, 12.4.2018: Exercises batch 1
  8. Monday, 16.4.2018: Relative power of synchronization operations
  9. Monday, 23.04.2018: Relative power of synchronization operations, universality
  10. Thursday, 26.4.2018: Exercises batch 2
  11. Monday, 30.4.2018: Projects (description). Practical lock implementations
  12. Monday, 7.5.2018: Projects (selection). Data structures (I): List-based sets
  13. Monday, 14.5.2018: Data structures (II): Queues and stacks
  14. Monday, 21.5.2018: No lecture (Whitsun holiday)
  15. Monday, 28.5.2018: Data structures (III): Skiplist
  16. Monday, 4.6.2018: Memory consistency models. Here is a note on memory consistency models.
  17. Thursday, 7.6.2018: Project (status presentations): 10 minutes per group, all present
  18. Monday, 11.6.2018: Work-stealing theory
  19. Thursday, 14.6.2018: Guest lecture Trevor Brown, IST Austria: Getting to the root of concurrent search trees. Abstract here, slides and other material here.
  20. Monday, 18.6.2018: Data structures (IV): Hash tables

Resources

Exercises

  1. Thursday, 12.4.2018, 10:00-12:00: EI 6, Gusshausstrasse 25-29
  2. Thursday, 26.4.2018, 10:00-12:00: EI 6, Gusshausstrasse 25-29

The exercises are to be done individually, can be handed in on paper, or electronically by email to traff@par.tuwien.ac.at.

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

Projects

Project topics, one project per group topic presentation, hand-in deadline (TUWEL) Thursday 21.6.2018

Standards

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

Literature