Class hours: TuThF 8-9 AM in KD 102
| Name | |
| Swarnendu Biswas | swarnendu@cse.iitk.ac.in |
| Name | |
| Srinjoy Sarkar | srinjoys23@cse.iitk.ac.in |
| Sahil Basia | sahilbasia24@cse.iitk.ac.in |
| Binong Kiri Bey | binong@cse.iitk.ac.in |
| Vishal Ramdas Junjare | vrjunjare25@cse.iitk.ac.in |
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.
We will have 2-3 programming assignments and a course project.
| Prerequisites |
|
The course will focus on a subset of the following topics.
The following is a tentative allocation and might change slightly depending on the strength of the class. Grading is relative.
| Class participation/quizzes | 5% |
| Assignments | 15% |
| Midsem | 25% |
| Course project | 25% |
| Endsem | 30% |
I am open to feedback about the course content and presentation. Feel free to provide suggestions for improvements.
| Date | Topic | Resources | Recommended Reading |
|---|---|---|---|
| First course handout | FCH | ||
| 06/01, 08/09, 09/09, 13/09, 15/09 | Concurrency Bugs | Slides | OSTEP Chapters 26, 32 |
| Cache Coherence | Slides | MCM Chapters 2, 6, 8 (IITK has subscribed to the ebook) | |
| Memory Consistency Models | Slides |
Shared Memory
Consistency Models: A Tutorial
MC Chapters 1-5 |
|
| 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 |
|
| Concurrent Data Structures |
MP Chapters 3, 9, 10, 11, 13
OSTEP Chapter 29 |
||
| Performance of Concurrent Programs | |||
| Transactional Memory | |||
| Testing of Concurrent Programs |
| [MP] | The Art of Multiprocessor Programming, 1st edition - Maurice Herlihy and Nir Shavit |
| [MCM] | A Primer on Memory Consistency and Cache Coherence, 2nd edition - Vijay Nagarajan, Daniel J. Sorin, Mark D. Hill and David A. Wood |
| [SMS] | Shared-Memory Synchronization, 2nd edition - M. Scott and T. Brown. |
| [TM] | Transactional Memory, 2nd edition - T. Harris et al. |
| [PCA] | Parallel Computer Architecture: A Hardware/Software Approach - D. E. Culler et al. |
| [JCIP] | Java Concurrency In Practice - B. Goetz et al. |
| [OSTEP] | Operating Systems: Three Easy Pieces - R. Arpaci-Dusseau and A. Arpaci-Dusseau |