[CS-453] Concurrent Computing
2023, autumn semester. Master course.
This course is independent from the course Distributed Algorithms.
Prerequisites | ICC, Operating Systems | |
Recommendations | Algorithms, concurrency |
Presentation of the course: YouTube
Textbook: Algorithms for Concurrent Systems
General information: The course page is available on Moodle. We encourage students to register on Moodle, in order to get all the course announcements by email. Students can use Moodle to ask questions about the exercise sessions and/or the project.
References
- Maurice Herlihy and Nir Shavit The Art of Multiprocessor Programming, Revised Reprint Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2012, ISBN-10 0123973376.
- Hagit Attiya and Jennifer Welch Distributed Computing: Fundamentals, Simulations, and Advanced Topics. John Wiley and Sons, Inc., ISBN 0-471-45324-2.
- Herlihy, M. P. Wait-free synchronization. ACM Transactions on Programming Languages and Systems, 13(1):124–149, January 1991.
- Herlihy, M. P., and Wing, J. M. Linearizability: a Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems, 12, 3 (1990), 463-492.
- Jayanti, P., Wait-free computing. In Proceedings of the 9th International Workshop on Distributed Algorithms (WDAG'95), Vol. 972 of LNCS, Springer Verlag, 1995, pp. 19–50. (on-line version not available)
- Lamport, L. On Interprocess Communication−Part I: Basic Formalism, Part II: Algorithms. Distributed Computing, 1, 2 (1986), 77–101.
- Damien Imbs, Michel Raynal. Visiting Gafni's Reduction Land: from the BG Simulation to the Extended BG Simulation. Research Report PI 1931, 2009, pp.12.
- Armando Casta~neda, Sergio Rajsbaum, Michel Raynal. The Renaming Problem in Shared Memory Systems: an Introduction . Research Report PI-1960, 2010, pp.29.
Previous year recordings (2020)
Warning! Some of those videos might be outdated! Following them instead of the actual lectures is at your own risk.
Week(s) | Lecture | Slides | Exercises | Videos | ||||
---|---|---|---|---|---|---|---|---|
1 | No class | No lecture | No exercises | |||||
2 | Introduction | PDF, video | No exercises | |||||
3 | Project Introduction | No exercises | ||||||
4 | Registers | PDF, video1 | i, ii, iii | |||||
5 | Registers | video2 | ||||||
6 | Registers | video3 | ||||||
7 | The Power of Registers | PDF, video | i, ii | |||||
8 | The Limitations of Registers | PDF, video | i, ii | |||||
9 | Universal Constructions | PDF, video | i, ii | |||||
10 | Implementing Consensus with Timing Assumptions | PDF, video | i, ii | |||||
11 | Anonymous Processes | PDF, paper, video | ||||||
12 | Transactional Memory | PDF, video | ||||||
13 | Why lock-free synchronization? (Aleksandar Dragojevic) | video | ||||||
14 | Concurrent programming: From theory to practice | PDF, video |