Name | Swarnendu Biswas |
swarnendu AT cse.iitk.ac.in | |
Class hours | Mon 11:00-12:00 PM ThuFri 10:00-11:00 AM in KD 102 |
Name | Email (AT cse.iitk.ac.in) |
Binong Kiri Bey | binong |
Srinjoy Sarkar | srinjoy |
This course will focus on the challenges of developing correct and scalable concurrent programs. We will discuss the errors we make while writing concurrent programs and the techniques and tools to debug them. We will learn about techniques and abstractions that help write correct concurrent programs, such as synchronization primitives and transactional memory. Furthermore, we will discuss testing of concurrent programs and ideas to avoid common performance bottlenecks.
The course may include programming assignments and a course project.
Prerequisites |
|
The course will focus on a subset of the following topics.
We may add new, drop existing, or reorder topics depending on progress and class feedback.
The course may also involve reading and critiquing related research papers.
The recommended reading material is part of the course.
I am open to feedback about the course content and presentation. Feel free to provide suggestions for improvements.
Class participation (quizzes, interaction) | 5% |
Assignments (2-3) | 15% |
Midsem | 25% |
Term Project (with periodic evaluation) | 25% |
Endsem | 30% |
Date | Topic | Resources | Recommended Reading |
---|---|---|---|
First Course Handout | |||
06/01, 09/01, 10/01, 13/01, 16/01 | Concurrency Bugs | Slides | |
17/01, 20/01, 23/01, 24/01 | Shared-Memory Synchronization | Slides |
MP 2.3, 2.4, 2.6, 7.1-7.5, 8.3
SMS 4.1, 4.2, 4.3.1, 6.1 |
Memory Consistency Models | Slides |
Shared Memory
Consistency Models: A Tutorial
MC Chapters 3,4,5 |
|
Transactional Memory | Slides | TM 2.1, 2.2, 4.1, 4.2 | |
Concurrent Data Structures | MP Chapters 3,9,10,13 | ||
Testing Concurrent Programs | |||
Performance of Concurrent Programs |