Concurrency: Theory and Practise
General Information
Lectures:
Lecturer: | Prof. Dr. Peter Thiemann | |
Time and Place: |
Mon 14 - 16, Geb. 51, SR 03-026 Tue 11 - 12, Geb. 51, SR 03-026 |
Exercises:
Organization: | Annette Bieniusa | |
Exercise sessions: | Tue 12 - 13, Geb. 51, SR 03-026 | |
Correction of Exercises: | Phillip Heidegger |
Lecture
The lecture is based on the book The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit.
Topics
This course covers the topics from the following (non-exhaustive) selection:
- Basics of Mutual exclusion
- Formal Models of Concurrent Computations
- Correctness of Concurrent Computations
- Memory Models
- Concurrent data structures
- Scheduling and Work Distribution in Practise
- Transactional Memory
Slides
The slides marked (AMP) are derived from the original slides accompanying the book The Art of Multiprocessor Programming. They are adapted under the Creative Commons Attribution-ShareAlike 3.0 Unported license.
Slides marked * are taken from and used by permission of the authors. They rely partially on material from the book Java Concurrency in Practice (JCIP), Brain Goetz, Addison Wesley 2006.
Date | Slides |
---|---|
18.10.10 | Chapter 1 (AMP) |
19.10.10 | Chapter 2 (AMP) |
25.10.10 | Chapter 2 cont'd, Chapter 3 (AMP) |
26.10.10 | Chapter 3 cont'd |
02.11.10 | Java Memory Model |
08.11.10 | Chapter 7 (AMP) |
15.11.10 | Concurrency in Java *, Sharing objects * cf. JCIP |
16.11.10 | Threads and Tasks cf. JCIP |
22.11.10 | Linked Lists: The Role of Locking (Chapter 9) (AMP) |
29.11.10 | Chapter 10 (AMP) |
30.11.10 | First part of Chapter 12 (AMP) |
06.12.10 | Chapter 12 (AMP) |
07.12.10 | Chapter 13 (AMP) |
13.12.10 | Chapter 13 continued, Chapter 14 (AMP) |
14.12.10 | ForkJoin Framework * |
20.12.10 | Testing of concurrent programs |
10.01.11 | Chapter 16: Futures, Scheduling, and Work Distribution (AMP) |
11.01.11 | Chapter 16 |
17.01.11 | Chapter 17: Barriers (AMP), Termination Detection |
18.01.11 | Chapter 17 |
24.01.11 | Chapter 18: Transactional Memory (AMP) |
25.01.11 | Twilight |
31.01.11 | TinySTM (AMP) |
01.02.11 | Foundations of Shared Memory (AMP) |
07.02.11 | The Power of Consensus (AMP) |
08.02.11 | Unversality of Consensus (AMP) |
Exercises
Exercise sheet | Submission |
Just for fun! | No Submission |
Sheet 1 | 02.11.2010 |
Sheet 2 | 23.11.2010 |
Sheet 3 | 14.12.2010 |
Sheet 4 | 11.01.2011 |
Project
Project description: project.pdf
Peachess: peachess-0.1.2.jar
Strategies: strategy.jar
Tests: tests.jar
Xboard engine: xboard-0.1.2.jar
Changelog
Date | Version | Changes |
12.01.2011 | xboard-0.1.1, peachess-0.1.1 | Removed bug in communication of pawn promotion between engine and xboard. |
12.01.2011 | xboard-0.1.2, peachess-0.1.2 | Cleaned up the code and added missing comments. Beware: there are slight changes in the interface due to better structuring and naming. |