Analysis of Concurrent Programs

CS 636, Semester 2020-2021-II, IIT Kanpur


Instructor Information

Name Swarnendu Biswas
Email swarnendu AT cse.iitk.ac.in
Class hours MonWed 5:10-6:25 PM (online, synchronous)

TA Information

Name Email (AT cse.iitk.ac.in)
Arun KP kparun
Priyanka Talwar talwarp
Randeep Kumar Sahu randeeps
Sharwari Samdekar sharwari
Vipin Patel vipinpat

Course Description

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
  • Exposure to the following courses (or equivalent) is desirable: CS 330 (Operating Systems), CS 335 (Compilers), and CS 422 (Computer Architecture).
  • Programming maturity with popular programming languages like C, C++, and Java.


   Course Syllabus and Policies   |   Academic Integrity   |   Evaluation Scheme   |   Resources   |   References   


Course Syllabus and Policies

Syllabus

The​ course​ will​ ​primarily focus on the ​following topics.

Policies

Feedback

I am open to constructive feedback about the course content. Feel free to provide suggestions for improvements.


Academic Integrity


Evaluation Scheme


Resources

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


References

I have listed (NOT in any particular order) a few popular references.