IIT Madras, CSE: CS3400       

Principles of Software Engineering

Software Engineering for Multicore Systems

Goal of the course: This is one third of the software engineering course. At the end of the course, students will have a fair understanding of some standard issues in software engineering pertinent to multicore systems. The project students will have hands on experience in implementing a real compiler technique for a multicore systems. If the course encourages even a few of the students to pursue further studies in any of the covered or related topics then the course definitely would have met its goals.

  • Dates Feb 12th, Mar 5th, April 2nd, 9th.
  • Timing : 9AM-11AM, 1PM-3PM
  • Class room : IIT Madras, CSE department. Exact room : Will be announced by email.
  • Teacher : V. Krishna Nandivada
  • TAs : Sunny Wilson, Hemang Mehta.
  • Office hours / Doubt sessions : After the classes, emails, skype (nvkrishna77) any time.


  • Course outline.
  • List of references:
  • Texts:
    • Book 1: Patterns for Parallel Programming: Timothy Mattson, Beverly A. Sanders, Berna L. Massingill
    • Book 2: To be updated.


    • Paper 1: Chunking Parallel Loops in the Presence of Synchronization: Shirako, Zhao, Nandivada, Sarkar.
    • Paper 2: Reducing Task Creation and Termination Overhead in Explicitly Parallel Programs: Zhao Shirako Nandivada Sarkar
    • Paper 3: To be updated.


Slides for the Lectures: Assignments :
  • Code parallelization. Deadline Mar 16 2011 midnight. Mail the source code tar file to Sunny Wilson.
  • Cost model. Write a review for the following paper: Automatic partitioning of a program dependence graph into parallel tasks Author: V. Sarkar Published in:� IBM Journal of Research and Development archive Volume 35 Issue 5-6, Sept./Nov. 1991

Exams :