...
There are also a few optional textbooks that we will draw from quite heavily. You are encouraged to get copies of any or all of these books. They will serve as useful references both during and after this course:
- Fork-Join Parallelism with a Data-Structures Focus (FJP) by Dan Grossman (Chapter 7 in Topics in Parallel and Distributed Computing)
- Java Concurrency in Practice by Brian Goetz with Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes and Doug Lea
- Principles of Parallel Programming by Calvin Lin and Lawrence Snyder
- The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit
...
Week | Day | Date (2016) | Topic | Assigned Reading | Assigned Videos (Quizzes due by Friday of each week) | In-class Worksheets | Slides | Work Assigned | Work Due |
---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 11 | Lecture 1: Task Creation and Termination (Async, Finish) | Module 1: Section 1.1 | worksheet1 | lec1-slides |
|
| |
| Wed | Jan 13 | Lecture 2: Computation Graphs, Ideal Parallelism | Module 1: Sections 1.2, 1.3 | Topic 1.2 Lecture, Topic 1.2 Demonstration, Topic 1.3 Lecture, Topic 1.3 Demonstration | worksheet2 | lec2-slides |
|
|
Fri | Jan 15 | Lecture 3: Abstract Performance Metrics, Multiprocessor Scheduling | Module 1: Section 1.4 | Topic 1.4 Lecture, Topic 1.4 Demonstration | worksheet3 | lec3-slides | (2 weeks) | Lecture & demo quizzes for topics 1.1, 1.2, 1.3, 1.4 | |
2 | Mon | Jan 18 | No lecture, School Holiday (Martin Luther King, Jr. Day) | ||||||
| Wed | Jan 20 | Lecture 4: Parallel Speedup and Amdahl's Law | Module 1: Section 1.5 | Topic 1.5 Lecture, Topic 1.5 Demonstration | worksheet4 | lec4-slides | ||
| Fri | Jan 22 | Lecture 5: Future Tasks, Functional Parallelism | Module 1: Section 2.1 | Topic 2.1 Lecture, Topic 2.1 Demonstration | worksheet5 | lec5-slides | Lecture & demo quizzes for topics 1.5, 2.1 (topic 1.6 is optional) | |
3 | Mon | Jan 25 | Lecture 6: Memoization | Module 1: Section 2.2 | Topic 2.2 Lecture , Topic 2.2 Demonstration | worksheet6 | lec6-slides | ||
Wed | Jan 27 | Lecture 7: Finish Accumulators | Module 1: Section 2.3 | Topic 2.3 Lecture , Topic 2.3 Demonstration | worksheet7 | lec7-slides | |||
| Fri | Jan 29 | Lecture 8: Data Races, Functional & Structural Determinism | Module 1: Sections 2.5, 2.6 | Topic 2.5 Lecture , Topic 2.5 Demonstration, Topic 2.6 Lecture , Topic 2.6 Demonstration | worksheet8 | lec8-slides | (2 weeks) | Homework 1, Lecture & demo quizzes for topics 2.2, 2.3, 2.5, 2.6 |
4 | Mon | Feb 01 | Lecture 9: Map Reduce | Module 1: Section 2.4 | Topic 2.4 Lecture , Topic 2.4 Demonstration | worksheet9 | lec9-slides | ||
| Wed | Feb 03 | Lecture 10: Java’s Fork/Join Library | FJP chapter: Sections 7.3 & 7.5 | worksheet10 | lec10-slides | |||
| Fri | Feb 05 | Lecture 11: Loop-Level Parallelism, Parallel Matrix Multiplication, Iteration Grouping (Chunking) | Module 1: Sections 3.1, 3.2, 3.3 | Topic 3.1 Lecture, Topic 3.1 Demonstration, Topic 3.2 Lecture, Topic 3.2 Demonstration, Topic 3.3 Lecture, Topic 3.3 Demonstration | worksheet11 | lec11-slides | Lecture & demo quizzes for topics 2.4, 3.1, 3.2, 3.3, 3.4 | |
5 | Mon | Feb 08 | Lecture 12: Barrier Synchronization | Module 1: Section 3.4 | Topic 3.4 Lecture , Topic 3.4 Demonstration | worksheet12 | lec12-slides | ||
| Wed | Feb 10 | Lecture 13: Iterative Averaging Revisited, SPMD pattern | Module 1: Sections 3.5, 3.6 | Topic 3.5 Lecture, Topic 3.5 Demonstration, Topic 3.6 Lecture, Topic 3.6 Demonstration | worksheet13 | lec13-slides | ||
| Fri | Feb 12 | Lecture 14: Data-Driven Tasks and Data-Driven Futures | Module 1: Section 4.5 | Topic 4.5 Lecture, Topic 4.5 Demonstration | worksheet14 | lec14-slides | Homework 3 (5 weeks, with two intermediate checkpoints) | Homework 2, Lecture & demo quizzes for topics 3.5, 3.6, 4.5 |
6 | Mon | Feb 15 | Lecture 15: Abstract vs. Real Performance | worksheet15 | lec15-slides | ||||
| Wed | Feb 17 | Lecture 16: Phasers, Point-to-point Synchronization | Module 1: Sections 4.2, 4.3 | Topic 4.2 Lecture, Topic 4.2 Demonstration, Topic 4.3 Lecture, Topic 4.3 Demonstration | worksheet16 | lec16-slides | ||
| Fri | Feb 19 | Lecture 17: Pipeline Parallelism, Signal Statement, Fuzzy Barriers | Module 1: Sections 4.4, 4.1 | Topic 4.4 Lecture, Topic 4.4 Demonstration, Topic 4.1 Lecture, Topic 4.1 Demonstration, | worksheet17 | lec17-slides | Lecture & demo quizzes for topics 4.1, 4.2, 4.3, 4.4 | |
7 | Mon | Feb 22 | Lecture 18: Midterm Summary | worksheet18 | lec19-slides | ||||
| Wed | Feb 24 | Lecture 19: Midterm Review (Q&A) | Exam 1 held during lab time (7:00pm - 8:30pm) | |||||
| Fri | Feb 26 | Lecture 20: Classification of Parallel Programs | Topic 4.6 Lecture, Topic 4.6 Demonstration | lec18-slides | Homework 3 Checkpoint-1, Lecture & demo quizzes for topic 4.6 | |||
- | M-F | Feb 29- Mar 04 | Spring Break |
|
|
| |||
8 | Mon | Mar 07 | Lecture 21: Critical sections, Isolated construct, Parallel Spanning Tree algorithm | Module 1: Sections 3.5, 3.6 | Topic 5.1 Lecture, Topic 5.1 Demonstration, Topic 5.2 Lecture, Topic 5.2 Demonstration, Topic 5.3 Lecture, Topic 5.3 Demonstration | worksheet20 | lec20-slides |
| |
| Wed | Mar 09 | Lecture 22: Read-Write Isolation, Atomic variables | worksheet21 | lec21-slides |
| |||
| Fri | Mar 11 | Lecture 23: Intro to Java Threads | Topic 5.4 Lecture, Topic 5.4 Demonstration, Topic 5.5 Lecture, Topic 5.5 Demonstration, Topic 5.6 Lecture, Topic 5.6 Demonstration | worksheet22 | lec22-slides | Homework 3 Checkpoint-2, Lecture & demo quizzes for topics 5.1 to 5.6 | ||
9 | Mon | Mar 14 | Lecture 24: Java Threads (contd), Java synchronized statement | Topic 6.1 Lecture, Topic 6.1 Demonstration, Topic 6.2 Lecture, Topic 6.2 Demonstration, Topic 6.3 Lecture, Topic 6.3 Demonstration | worksheet23 | lec23-slides |
|
| |
| Wed | Mar 16 | Lecture 25: Java synchronized statement (contd), advanced locking | Topic 6.6 Lecture, Topic 6.6 Demonstration | worksheet24 | lec24-slides |
|
| |
| Fri | Mar 18 | Lecture 26: Concurrent Objects, Linearizability of Concurrent Objects | Topic 6.4 Lecture, Topic 6.4 Demonstration, Topic 6.5 Lecture, Topic 6.5 Demonstration, Topic 7.4 Lecture | worksheet25 | lec25-slides | Homework 4 (3 weeks, with one intermediate checkpoint) | Homework 3, Lecture & demo quizzes for topics 6.1 - 6.6, 7.4 | |
10 | Mon | Mar 21 | Lecture 27: Safety and Liveness Properties | Topic 7.1 Lecture | worksheet26 | lec26-slides |
|
| |
| Wed | Mar 23 | Lecture 28: Eureka-style Speculative Task Parallelism | Topic 7.2 Lecture | worksheet27 | lec27-slides |
| ||
| Fri | Mar 25 | Lecture 29: Actors | Topic 7.3 Lecture | worksheet28 | lec28-slides |
| Lecture & demo quizzes for topics 7.1, 7.2, 7.3 | |
11 | Mon | Mar 28 | Lecture 30: Actors (contd) | Topic 7.5 Lecture | worksheet29 | lec29-slides |
|
| |
| Wed | Mar 30 | Lecture 31: Dining Philosophers Problem | Topic 7.6 Lecture | worksheet30 | lec30-slides |
| ||
- | Fri | Apr 01 | Midterm Recess | Homework 4 Checkpoint-1, Lecture & demo quizzes for topics 7.5, 7.6 | |||||
12 | Mon | Apr 04 | Lecture 32: Task Affinity with Places | worksheet31 | lec31-slides |
| |||
| Wed | Apr 06 | Lecture 33: Apache Spark framework for cluster computing | worksheet32 | lec32-slides |
|
| ||
| Fri | Apr 08 | Lecture 34: Message Passing Interface (MPI) | worksheet33 | lec33-slides | Homework 5 (2 weeks, with 1-week automatic extension) | Homework 4 | ||
13 | Mon | Apr 11 | Lecture 35: Message Passing Interface (MPI, contd) | worksheet34 | lec34-slides |
| |||
| Wed | Apr 13 | Lecture 36: PGAS languages | worksheet35 | lec35-slides |
|
| ||
| Fri | Apr 15 | Lecture 37: Memory Consistency Models | worksheet36 | lec36-slides | ||||
14 | Mon | Apr 18 | Lecture 38: GPU Computing | worksheet-37 | lec37-slides |
|
| ||
| Wed | Apr 20 | Lecture 39: Fortress language | lec38-slides |
|
| |||
| Fri | Apr 22 | Lecture 40: Course Review (lectures 20-37), Last day of classes | lec39-slides | Homework 5 (automatic extension till April 29) | ||||
- | TBD | TBD | Scheduled final exam |
|
|
|
...