Parallel, Concurrent and Distributed Programming (Autumn 2024)
Instructor: Ilya Sergey
Lectures: Mondays, 9am-12pm
Location: Yale-NUS College, Y-CR15
Peer tutor: Kim Young Il
Peer tutoring sessions: Mondays, 16:15-17:15 and Wednesdays, 17:00-18:00
Lectures
- 1. Week 01: Introduction
- 2. Week 02: Scala Primer
- 3. Week 03: Mutual Exclusion
- 4. Week 04: Spin Locks and Contention
- 5. Week 05: Monitors and Blocking Synchronisation
- 6. Week 06: Concurrent Objects
- 7. Midterm Project
- 8. Week 07: Fine-Grained Concurrent Data Structures
- 9. Week 08: More Concurrent Data Structures
- 10. Week 09: Data Race Detection in Practice
- 11. Week 10: Asynchronous Computations and Futures
- 12. Week 11: Data-Parallel Collections
- 13. Week 12: Actors and Message-Passing Concurrency
- 14. Week 13: Distributed Consensus, BFT; Wrap-Up
Supplementary Materials
Code from the Lectures (email me you GitHub name to get access)
Recommended Textbooks
The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit
Learning Concurrent Programming in Scala by Aleksandar Prokopec
Introduction to Reliable and Secure Distributed Programming by Christian Cachin et al.