...
There are no required textbooks for the class. Instead, lecture handouts are provided for each module as follows. You are expected to read the relevant sections in each lecture handout before coming to the lecture. We will also provide a number of references in the slides and handouts.The links to the latest versions of the lecture handouts are included below:
- Module 1 handout (Parallelism)
- Module 2 handout handout (Concurrency)
- There is no lecture handout for Module 3 (Distribution and Locality). The instructor will refer you to optional resources to supplement the lecture slides and videos.
...
Week | Day | Date (2021) | Lecture | Assigned Reading | Assigned Videos (see Canvas site for video links) | In-class Worksheets | Slides | Work Assigned | Work Due | ||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 25 | Lecture 1: Task Creation and Termination (Async, Finish) | Module 1: Section 1.1 | worksheet1 | lec1-slides |
|
| |||
| Wed | Jan 27 | 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 | Homework 1 |
| ||
Fri | Jan 29 | Lecture 3: Abstract Performance Metrics, Multiprocessor Scheduling | Module 1: Section 1.4 | Topic 1.4 Lecture, Topic 1.4 Demonstration | worksheet3 | lec3-slides |
| ||||
2 | Mon | Feb 01 | Lecture 4: Parallel Speedup and Amdahl's Law | Module 1: Section 1.5 | Topic 1.5 Lecture, Topic 1.5 Demonstration | worksheet4 | lec4-slides | Quiz for Unit 1 | |||
| Wed | Feb 03 | Lecture 5: Future Tasks, Functional Parallelism ("Back to the Future") | Module 1: Section 2.1 | Topic 2.1 Lecture, Topic 2.1 Demonstration | worksheet5 | lec5-slides | ||||
| Fri | Feb 05 | Lecture 6: Finish Accumulators | Module 1: Section 2.3 | Topic 2.3 Lecture, Topic 2.3 Demonstration | worksheet6 | lec6-slides | Quiz for Unit 1 | |||
3 | Mon | Feb 08 | Lecture 7: Map Reduce | Module 1: Section 2.4 | Topic 2.4 Lecture, Topic 2.4 Demonstration | worksheet7 | lec7-slides |
| |||
| Wed | Feb 10 | Lecture 8: Data Races, Functional & Structural Determinism | Module 1: Section 2.5, 2.6 | Topic 2.5 Lecture, Topic 2.5 Demonstration, Topic 2.6 Lecture, Topic 2.6 Demonstration | worksheet8 | lec8-slides | Homework 2 | Homework 1 | ||
| Fri | Feb 12 | Lecture 9: Java’s Fork/Join Library | Topic 2.7 Lecture, Topic 2.7 Demonstration, Topic 2.8 Lecture, Topic 2.8 Demonstration | worksheet9 | lec9-slides | Quiz for Unit 2 | ||||
4 | Mon
| Feb 15 | No class (weather) | ||||||||
Wed | Feb 17 | Spring "Sprinkle" Day (no class) | |||||||||
Fri | Feb 19 | No class (weather) | |||||||||
5 | Mon | Feb 22 | Lecture 10: Loop-Level Parallelism, Parallel Matrix Multiplication | Module 1: Sections 3.1, 3.2 | Topic 3.1 Lecture , Topic 3.1 Demonstration , Topic 3.2 Lecture, Topic 3.2 Demonstration | worksheet10 | lec10-slides | ||||
| Wed | Feb 24 | Lecture 11: Iteration Grouping (Chunking), Barrier Synchronization | Module 1: Sections 3.3, 3.4 | Topic 3.3 Lecture , Topic 3.3 Demonstration, Topic 3.4 Lecture , Topic 3.4 Demonstration | worksheet11 | lec11-slides | ||||
| Fri | Feb 26 | Lecture 12: Data-Driven Tasks
| Module 1: Sections 4.5 | Topic 4.5 Lecture Topic 4.5 Demonstration | worksheet12 | lec12-slides | Quiz for Unit 2 | |||
6 | Mon | Mar 01 | Spring "Sprinkle" Day (no class) | ||||||||
| Wed | Mar 03 | Lecture 13: Parallelism in Java Streams, Parallel Prefix Sums | Module 1: Sections 3.7 | Topic 3.7 Lecture , Topic 3.7 Demonstration | worksheet13 | lec13-slides | Homework 3 (includes one intermediate checkpoint)
| Homework 2 | ||
Fri | Mar 05 | Lecture 14: 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 | worksheet14 | lec14-slides | Quiz for Unit 3 | ||||
7 | Mon | Mar 08 | Lecture 15: Point-to-point Synchronization with Phasers | Module 1: Section 4.2, 4.3 | Topic 4.2 Lecture , Topic 4.2 Demonstration, Topic 4.3 Lecture, Topic 4.3 Demonstration | worksheet15 | lec15-slides | ||||
| Wed | Mar 10 | Lecture 16: Midterm Review | lec16-slides | |||||||
| Fri | Mar 12 | 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 | ||||
8 | Mon | Mar 15 | Lecture 18: Abstract vs. Real Performance | worksheet18 | lec18-slides | Quiz for Unit 4 | Quiz for Unit 3 | ||||
| Wed | Mar 17 | Lecture 19: Critical Sections, Isolated construct (start of Module 2) | Module 2: Sections 5.1, 5.2, 5.6, | Topic 5.1 Lecture, Topic 5.1 Demonstration, Topic 5.2 Lecture, Topic 5.2 Demonstration, Topic 5.6 Lecture, Topic 5.6 Demonstration | worksheet19 | lec19-slides | ||||
| Fri | Mar 19 | Lecture 20: Parallel Spanning Tree algorithm, Atomic variables | Module 2: Sections 5.3, 5.4, 5.5 | Topic 5.3 Demonstration, Topic 5.4 Lecture, Topic 5.4 Demonstration, Topic 5.5 Lecture, Topic 5.5 Demonstration | worksheet20 | lec20-slides | Quiz for Unit 4 | |||
9 | Mon | Mar 22 | Lecture 21: Actors | Module 2: 6.1, 6.2 | Topic 6.1 Lecture , Topic 6.1 Demonstration , Topic 6.2 Lecture, Topic 6.2 Demonstration | worksheet21 | lec21-slides | Quiz for Unit 5 |
| ||
| Wed | Mar 24 | Lecture 22: Actors (contd) | Module 2: 6.3, 6.4 | Topic 6.3 Lecture, Topic 6.3 Demonstration, Topic 6.4 Lecture , Topic 6.4 Demonstration | worksheet22 | lec22-slides | Homework 3, Checkpoint-1 | |||
| Fri | Mar 26 | Spring "Sprinkle" Day (no class)
|
| |||||||
10 | Mon | Mar 29 | Lecture 23: Actors (contd) | Module 2: 6.5, 6.6 | Topic 6.5 Lecture, Topic 6.5 Demonstration, Topic 6.6 Lecture, Topic 6.6 Demonstration | worksheet23 | lec23-slides | Quiz for Unit 5 | |||
Wed | Mar 31 | Lecture 24: Java Threads, Java synchronized statement | Module 2: 7.1, 7.2 | Topic 7.1 Lecture, Topic 7.2 Lecture | worksheet24 | lec24-slides | Quiz for Unit 6 | ||||
| Fri | Apr 02 | Lecture 25: Java Threads, Java synchronized statement (contd), wait/notify | Module 2: 7.1, 7.2 | Topic 7.1 Lecture, Topic 7.2 Lecture | worksheet25 | lec25-slides |
| |||
11 | Mon | Apr 05 | Lecture 26: Java Locks | Module 2: 7.3 | Topic 7.3 Lecture | worksheet26 | lec26-slides | Homework 4 (includes one intermediate checkpoint) | Homework 3 (all) | ||
| Wed | Apr 07 | Lecture 27: Linearizability of Concurrent Objects | Module 2: 7.4 | Topic 7.4 Lecture | worksheet27 | lec27-slides |
| |||
| Fri | Apr 09 | Lecture 28: Safety and Liveness Properties, Java Synchronizers, Dining Philosophers Problem | Topic 7.5 Lecture, Topic 7.6 Lecture | worksheet28 | lec28-slides | Quiz for Unit 7 |
| |||
12 | Mon | Apr 12 | Lecture 29: Message Passing Interface (MPI), (start of Module 3) | Topic 8.1 Lecture, Topic 8.2 Lecture, Topic 8.3 Lecture | worksheet29 | lec29-slides |
| Quiz for Unit 6 | |||
| Wed | Apr 14 | Lecture 30: Message Passing Interface (MPI, contd) | Topic 8.4 Lecture | worksheet30 | lec30-slides |
| ||||
| Fri | Apr 16 | Lecture 31: Message Passing Interface (MPI, contd) | Topic 8.5 Lecture, Topic 8 Demonstration Video | worksheet31 | lec31-slides | Quiz for Unit 8 | Quiz for Unit 7 | |||
13 | Mon | Apr 19 | Lecture 32: Task Affinity with Places | worksheet32 | lec32-slides |
| Homework 4 Checkpoint-1 | ||||
| Wed | Apr 21 | Lecture 33: Eureka-style Speculative Task Parallelism | worksheet33 | lec33-slides |
| |||||
| Fri | Apr 23 | Lecture 34: Algorithms based on Parallel Prefix (Scan) operations | worksheet34 | lec34-slides | Quiz for Unit 8 | |||||
14 | Mon | Apr 26 | Lecture 35: Algorithms based on Parallel Prefix (Scan) operations cont. | worksheet35 | lec35-slides |
|
| ||||
Wed | Apr 28 | Lecture 36: Course Review (Lectures 19-33) | lec36-slides | Homework 4 (all) | |||||||
Fri | Apr 30 | Lecture 37: Course Review (Lectures 19-33) | lec37-slides |
Lab Schedule
Lab # | Date (2021) | Topic | Handouts | Examples |
---|---|---|---|---|
0 | Infrastructure Setup | lab0-handout | ||
1 | Jan 26 | Async-Finish Parallel Programming with abstract metrics | lab1-handout | |
- | Feb 02 | No lab this week | ||
2 | Feb 09 | Futures | lab2-handout | |
- | Feb 16 | No lab this week (classes cancelled) | ||
3 | Feb 23 | Cutoff Strategy and Real World Performance | lab3-handout | |
4 | Mar 02 | DDFs | lab4-handout | |
- | Mar 09 | No lab this week (Midterm exam) | ||
- | Mar 16 | No lab this week (Spring "Sprinkle" Day) | ||
5 | Mar 23 | Loop-level Parallelism | lab5-handout | lab5-intro |
6 | Mar 30 | Isolated Statement and Atomic Variables | lab6-handout | |
- | Apr 06 | No lab this week (Spring "Sprinkle" Day) | ||
7 | Apr 13 | Java Threads, Java Locks | lab7-handout | |
8 | Apr 20 | Actors | lab8-handout | |
- |
| Message Passing Interface (MPI) | ||
- |
| Apache Spark | ||
- |
| Eureka-style Speculative Task Parallelism | ||
- | Java's ForkJoin Framework |
...