Name | Swarnendu Biswas |
swarnendu AT cse.iitk.ac.in | |
Class hours | MonWed 5:10-6:25 PM (online, synchronous) |
Name | Email (AT cse.iitk.ac.in) |
Arun KP | kparun |
Priyanka Talwar | talwarp |
Randeep Kumar Sahu | randeeps |
Sharwari Samdekar | sharwari |
Vipin Patel | vipinpat |
This course will focus on the challenges in developing correct and scalable concurrent programs. We will discuss the types of errors that we make while writing concurrent programs, and techniques and tools to debug them. We will learn about techniques and abstractions that help write correct concurrent programs, for example, synchronization primitives and transactional memory. We will also discuss testing of concurrent programs, and ideas to avoid common performance bottlenecks.
The course will include programming assignments and a course project.
Prerequisites |
|
The course will primarily focus on the following topics.
I am open to constructive feedback about the course content. Feel free to provide suggestions for improvements.
Date | Topic | Resources | Recommended Reading |
---|---|---|---|
13/01 | Course Overview |
Slides
First Course Handout |
|
13/01, 18/01, 20/01, 25/01, 27/01 | Concurrency Bugs | Slides | References to relevant papers are included in the slides |
30/01, 01/02, 03/02 | 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 |
08/02, 10/02, 15/02, 17/02 | Transactional Memory | Slides | TM 2.1, 2.2, 4.1, 4.2 |
08/03, 10/03, 15/03, 17/03 | Memory Consistency Models | Slides |
Shared Memory Consistency Models: A Tutorial
MC Chapters 3,4,5 |
22/03, 24/03, 31/03 | Concurrent Data Structures | Slides | MP Chapters 9,10 |
05/04, 07/04, 12/04 | Testing Concurrent Programs | Slides | References to relevant papers are included in the slides |
19/04, 26/04, 28/04 | Performance of Concurrent Programs | Slides | References to relevant papers are included in the slides |