The art of Multiprocessor Programming

Bob and Alice are neighbors. Unfortunately, they hate each other to such an extent that they are not in talking terms. Now, Bob owns a dog, and Alice owns a cat. They have decided that they will not allow their pets to play in the yard at the same time. Since they don't talk, each of them has a flag used for communication, which can either be raised up or down. Using the two flags, is it possible to devise a protocol to ensure that both the pets are not in the yard at the same time? Secondly, can we ensure that the scheme is fair, eliminates endless waits, and is free of deadlocks?


Surprisingly, the answer to this question, and many related problems are the foundations of modern multicore processors.


In this course, we will delve into similar problems, and study the basics of mutual exclusion, memory consistency and concurrent data structures. The course thus covers the foundational aspects of parallel programming APIs like openMP, openCL, CUDA and so on. The course has both a theoretical component and an applied component.

Prescribed Textbook

Book Cover

The Art of Multiprocessor Programming - Maurice Herlihy & Nir Shavit

Morgan Kaufman Publishers
ISBN: 978-81-312-2293-5

 

News & Updates

Dec 22nd, 2011

Classes scheduled in K-slot

Jan 5th, 2012

Class timings have been updated.

.

Template adapted from Free Website Templates
.