CS 880/479 : 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

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]
[Threads Events]
Week 3
Concurrency
Concurrency Basics, Mutexes Barriers and Locks
Bonus Reading: Peterson's Algorithm
Dekker's Algorithm
[Basics]
[Locks]
[Mutex]
[Cond Sync]

Assignment 1 released [Link] Due date Oct 7th 11:59pm.

Week 4
More locks and Data Structures
Different Types of Lock Read : [Mellor-Crummey and Scott Parallel Data Structures
Bonus Reading: Herlihy's Chapter 9 Herlihy's Hash Tables
[Lock Types]
[Parallel Data Structs.]
Week 5
Cache-Coherent Multiprocessors
Review: Cache design ( H and P Chapter ) > Read: Jouppi Cache
, Goodman coherence , Wiki Architecture and design of AlphaServer GS320
[Caches]
[Coherence]

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

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]

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

Week 7
Programming Multicores
Cilk, OpenMP Intel TBB.

Reading List : [OpenMP]
[Tasks]
[TBB]
Week 8
Advanced Concurrency
Reader/Writer Locks, Transactional Memory Read/Copy Update

Reading List : [R/W Lock]
[TM]
[RCU]
Week 9
Distributed System Basics
Google Datacenter Architecture MapReduce, Dryad Linq MPI

Reading List :