CSC 2/458

Parallel and Distributed Systems

Spring 2017.

Course Schedule (evolving)

Note:  assigned reading must be completed before class. 
Also: most of the links to readings work only from UR IP addresses; if you’re off campus, you’ll need to extablish a VPN connection before you can follow them. 

Thu. 19 Jan.
First day of class.
Overview, intro (notes #1).
Tue. 24 Jan.
More overview; the multicore revolution.
To be read before class today:  (1) article by Sutter & Larus; (2) chapter 1 of Shared Memory Synchronization.*
Thu. 26 Jan.
Threads in C and C++. 
To be read before class today:  (1) C++11 threading tutorial (e.g., this one—read it carefully) and (2) Lawrence Livermore pthreads tutorial (skim this). 
Also, if you haven’t taken CSC 2/454 at Rochester, read (3) PLP sections 9.5 & 13.1–13.2.*  (If you have taken the course, you might still want to review the material :-) 
Tue. 31 Jan.
Snooping cache coherence (notes #2).
To be read before class today:  (1) chapter 2 of Shared Memory Synchronization* and (2) Section 5.4* of Parallel Computer Organization and Design, by Dubois, Annavaram, and Stenström (more readable copy is available HERE, but only 6 students can use it at a time). 
Thu. 2 Feb.
Memory consistency models.
To be read before class today:  Adve & Gharachorloo.* 
Tue. 7 Feb.
Directory-based coherence.
Prof. Scott out of town; guest lecture by Sandhya Dwarkadas.
To be read before class today:  (1) Section 5.5* of Parallel Computer Organization and Design, by Dubois, Annavaram, and Stenström (more readable copy is available HERE, but only 6 students can use it at a time) and (2) Architecture and design of AlphaServer GS320 by Gharachorloo et al. 
Assignment 1 due last night.
Thu. 9 Feb.
Concurrency theory (notes #3).
To be read before class today:  chapter 3 of Shared Memory Synchronization.* 
Tue. 14 Feb.
Spin locks (notes #4).
To be read before class today:  chapter 4 of Shared Memory Synchronization.* 
Thu. 16 Feb.
Catch-up.
To be read before class today:  chapter 5 of Shared Memory Synchronization.* 
Tue. 21 Feb.
Barriers.
To be read before class today:  Lock Cohorting, by Dice, Marathe, and Shavit.  (For more details, see the longer, newer, journal version of this paper.)
Assignment 2 due last night.
Thu. 23 Feb.
Speedup (notes #5).
To be read before class today:  (1) Gustafson* (scaled speedup) and (2) Karp & Flatt* (serial fraction).
Tue. 28 Feb.
Read-mostly synchronization (notes #6).
To be read before class today:  (1) chapter 6 of Shared Memory Synchronization* and (2) McKenney's Structured Deferral
Thu. 2 Mar.
Class canceled (Prof. Scott ill)
Tue. 7 Mar.
Nonblocking data structures (notes #7).
To be read before class today:  (1) chapter 8 of Shared Memory Synchronization.* 
Thu. 9 Mar.
More on nonblocking data structures.
To be read before class today:  (1) Hendler et al. (flat combining) and (2) Morrison & Afek (LCRQs). 
Assignment 3 due tomorrow afternoon.
(Spring Break 13–17 Mar.)
Tue. 21 Mar.
Time (notes #8).
To be read before class today:  Tanenbaum & van Steen, Sections 6.1–6.2.* 
Optional: Lamport’s classic “Time, Clocks, and the Ordering of Events in a Distributed System.” 
Thu. 23 Mar.
In-class presentation of semester project/presentation proposals
Tue. 28 Mar.
(continued)
Thu. 30 Mar.
Complete project presentations; explore applications of vector clocks. 
To be read before class today:  Treadmarks.
Project/presentation feedback due tomorrow evening.
Tue. 4 Apr.
Software Distributed Shared Memory (notes #9).
Before class today,  review the Treadmarks article from last week.  Also read the capstone article on Cashmere.  Focus your attention on Sections 1, 2, 4.1, 5, and 6. 
Thu. 6 Apr.
MapReduce (notes #10) and, if time permits, MPI (notes #11).
To be read before class today: Dean & Ghemawat [2004]. 
Tue. 11 Apr.
Distributed Consensus (notes #12).
To be read before class today: Coulouris et al. Sec. 15.5* and Henry Robinson’s blog on FLP impossibility
Thu. 13 Apr.
Paxos and Raft (notes #13).
To be read before class today: Henry Robinson’s blog on Paxos and the Raft paper
If you’re curious, take a peek at the original Paxos paper and/or Lamport’s Paxos Made Simple.
Tue. 18 Apr.
Transactions (notes #14).
To be read before class today: Coulouris et al. Chap. 16.* 
Thu. 20 Apr.
Transactional Memory (notes #15).
To be read before class today: chapter 9 of Shared Memory Synchronization.* 
Tue. 25 Apr.
(continued)
Thu. 27 Apr.
Persistence.
Assignment 4 due tomorrow evening.
Tue. 2 May
Jon Aho presentation on supercomputers.
Please be sure to fill out your on-line course evaluation.
Fri. 5 May
Final projects due.

* Available from UR IP addresses only. 


Back to the course home page

Last Change:  28 April 2017 / Michael Scott's email address