DATES |
Lecture Summary |
Readings |
Resources |
Week 1, 14 January |
Introductory Lecture Discussion on concurrency concepts, with the
aid of a modeling language (Promela). Concepts of interleavings, shared
variables, and message passing are introduced.
|
The chapter "An overview of Promela" from the book "The SPIN model checker" by Gerard Holzmann (posted in IVLE E-reserves). |
Lec1.pdf |
Week 2, 21 January |
More on Concurrency Concepts:
We continue our discussion of concurrency concepts with focus on
synchronization mechanisms. A demo of the SPIN tool will be given. SPIN is a
good tool for understanding concurrency - performing a search of all interleavings in a concurrent program. In this course we will primarily use
its programming front-end the Promela modeling language, to get our feet wet
with concurrency concepts.
|
The chapter "Synchronization" from the book "Principles of SPIN model checker by Ben-Ari (posted in IVLE E-reserves). | Lec2.pdf |
Week 3, 28 January |
Multi-threaded Java Programming:
A basic discussion of programming constructs for multi-threaded Java
programming. First Homework Posted: HW1-new.pdf |
Lot of online
tutorials exist such as http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html
|
Lecture:
Tutorial: |
Week 4, 4 February | Threads & Concurrent Execution: We continue with Java threads and their concurrent execution in this lecture. There will be less focus on shared objects and ensuring of mutual exclusion in this lecture. |
Chapter 2,3 of textbook |
Lecture: Lec4-1 and Tutorial: Tut2.zip |
Week 5, 11 February | Multi-threaded
programming with shared objects: We finish the discussion on concurrent
execution (Lec4-2.pdf) and move on to discussion on multi-threaded
programming with locks. Second Homework posted: HW2-new.pdf |
Chapter 3,4 of textbook |
Lecture: Lec4-2 and
Tutorial: |
Week 6, 25 February |
Monitors: We discuss monitors as a
structured concurrency control primitive in this lecture.
|
Chapter 5 of textbook |
Lecture:
Lec6 Tutorial: Tut4 |
Week 7, 4 March |
Midterm
Examination
|
Material: first five lectures of the course. | Tutorial: Tut5 |
Week 8, 11 March |
Deadlocks in concurrent programming: The reasons for encountering deadlock in concurrent systems are discussed in this lecture. The tutorial this week will discuss the solutions for the midterm. Third Homework posted: HW3-new.pdf
|
Chapter 6 of textbook |
Lecture:
Lec8 Tutorial: Midterm Solutions |
Week 9, 18 March | Safety and Liveness issues in concurrent programming: So far we have studied specific properties to think of while writing concurrent programs - such as mutual exclusion and no deadlocks. In this lecture, we put them in proper perspective by presenting two general classes of properties, namely safety and progress. This will also conclude our discussion on concurrent programming, and we move on to parallel programming from the next week onwards. | Chapter 7 of textbook |
Lecture: Lec9 Tutorial: Tut7 |
Week 10, 25 March |
Parallel Programming using MPI --- We start our discussion on parallel programming in this lecture. Point to point communication is discussed. We start with discussion on blocking send-receives, and then move on to discussing non-blocking send-receives. |
Chapter 7 of Principles of Parallel Programming by Lin and Snyder (posted in IVLE E-reserves). The online tutorial https://computing.llnl.gov/tutorials/mpi/ is also useful. |
Lecture:
Lec10 Tutorial: Tut8 |
Week 11, 1 April | Parallel
Programming using MPI --- We
continue our discussion on parallel programming in this lecture. Point to point
communication is completed, in particular our discussion on non-blocking
send receives is completed. We start our discussion on collective
communication primitives such as broadcast, scatter, gather and reduce.
Fourth and last Homework posted: HW4-new.pdf |
Readings: As in Week 10 Guidelines for accessing tembusu for MPI programming: tembusu-MPI-access.pdf |
Lecture:Lec11 Tutorial: Tut9 |
Week 12, 8 April | Parallel Programming using MPI --- We complete our discussion of collective communication, and move on to process communicators. | As in Week 10 | Lecture:
Lec12 Tutorial: Tut10 |
Week 13, 15 April |
Revision of all materials covered in the course: The lecture notes for this lecture will be posted after the lecture.
Final Examination is on May 4 2010, Afternoon. |
All materials covered in the past 12 weeks. |
Lecture: Lec13
Tutorial: Tut11 |