CS 431 : Programming Parallel and Distributed Systems


Tentative Lecture Schedule

Week Monday Wednesday Related papers Slides
Week 1
Multicore Framework
Course Introduction Multicore architecture Performance Optimizations
Read: Sutter and Larus [Queue '05]
Review: Hill and Marty Computer '08
Multicore architecture

Assignment 1 released [Link] Due date Sep 28th 11:59pm.

Week 2
Parallel Algorithms vs Threads/Events
Reference: Parallel Algorithms ,
Read: LLNL Tutorial
Threads and Parallel Programming Reference: PLP book 8.6 and 12.2 ,
Interesting papers: Capriccio: scalable threads for internet services SEDA : Staged Event-Driven Architectures
[Intro]
[Parallel Apps]
[Machine Models](Thanks to UCB)
[Gauss] (Thanks to UCB)
Week 3
Concurrency
Concurrency Basics, Mutexes Barriers and Locks
Bonus Reading: Peterson's Algorithm
Dekker's Algorithm
[Basics]
[Locks]
[Mutex]
[Cond Sync]
Week 4
More locks and Data Structures
Different Types of Lock Read : [Mellor-Crummey and Scott Parallel Data Structures
Bonus Reading: Herlihy's Linked List Herlihy's Hash Tables Herlihy's QueuesStacks
[Lock Types]
[Parallel Data Structs.]

Assignment 2 released [Link] Due date Oct 14th 11:59pm.

Week 5
Cache-Coherent Multiprocessors
Review: Cache design ( H and P Chapter ) > Read: Jouppi Cache
, Goodman coherence , Wiki Architecture and design of AlphaServer GS320
[Coherence]
Week 6
Language and Memory Consistency
Linearizability HW/Language Consistency.

Reading List : Adve and Gharachorloo Paper [slides]
C++ Memory Model [Boehm Slides]
[HW Consistency]
[Linearizability]
Week 7
Programming Multicores
Cilk, OpenMP Intel TBB. Transactional Memory [Transactional Memory]

Reading List : [OpenMP]
[Tasks]
[TBB]

Assignment 3 released [Link] Due date Nov 5 11:59pm.

Week 8
GPU Programming
Memory Hierarchy, Kilo threads Warps, Control flow

Reading List : [Intro]
[Memory]
[Threads]
[Example]

Assignment 4 released [Link] Due date Nove 21th 11:59pm.

Assignment 5 released [Link] Due date Dec 12th 11:59pm.