Advanced Multiprocessor Programming (184.726) - Summersemester 2019

Lecturers

Plan

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: 17.6.2019.

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

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, 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:
  16. Monday, 3.6.2019: Work-stealing theory
  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: Data structures (IV): Hash tables
  20. Monday, 24.6.2019: TBA

Exercises

  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 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, projects can be done in groups of two, group topic presentation on Monday 6.6.2019, hand-in deadline (TUWEL) Thursday 17.6.2019
The programming project is mandatory, hand-in deadline Monday 17.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)

Resources

Standards

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

Literature