...
Week | Day | Date (2022) | Lecture | Assigned Reading | Assigned Videos (see Canvas site for video links) | In-class Worksheets | Slides | Work Assigned | Work Due | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 10 | Lecture 1: Introduction |
| worksheet1 | lec1-slides |
|
| ||||
| Wed | Jan 12 | Lecture 2: Functional Programming | worksheet2 | lec2-slides | Homework 1 |
| |||||
Fri | Jan 14 | Lecture 3: Higher order functions | worksheet3 | lec3-slides |
| |||||||
2 | Mon | Jan 17 | No class: MLK | Quiz for Unit 1 | ||||||||
| Wed | Jan 19 | Lecture 4: Lazy Computation | worksheet4 | lec4-slides | |||||||
| Fri | Jan 21 | Lecture 5: Java Streams | worksheet5 | lec5-slides | Homework 1 | Quiz for Unit 1 | |||||
3 | Mon | Jan 24 | Lecture 6: Map Reduce with Java Streams | Module 1: Section 2.4 | Topic 2.4 Lecture, Topic 2.4 Demonstration | worksheet6 | lec6-slides |
| ||||
| Wed | Jan 26 | Lecture 7: Futures | Module 1: Section 2.1 | Topic 2.1 Lecture, Topic 2.1 Demonstration | worksheet7 | lec7-slides | Homework 2 Homework 1 | ||||
| Fri | Jan 28 | Lecture 8: 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 | worksheet8 | lec8-slides | Quiz for Unit 2 | ||||
4 | Mon
| Jan 31 | Lecture 9: Data-Driven Tasks | Module 1: Section 4.5
| Topic 4.5 Lecture Topic 4.5 Demonstration | worksheet9 | lec9-slides | |||||
Wed | Feb 02 | Lecture 10: Event-based programming model
| worksheet10 | lec10-slides | ||||||||
Fri | Feb 04 | Lecture 11: GUI programming as an example of event-based, futures/callbacks in GUI programming | worksheet11 | lec11-slides | Homework 2 | |||||||
5 | Mon | Feb 07 | Lecture 12: Scheduling/executing computation graphs Abstract performance metrics | Module 1: Section 1.4 | Topic 1.4 Lecture , Topic 1.4 Demonstration | worksheet12 | lec12-slides | |||||
| Wed | Feb 09 | Lecture 13: Lightweight task parallelism. Finish/async | Module 1: Section 1.1 | Topic 1.1 Lecture , Topic 1.1 Demonstration | worksheet13 | lec13-slides | |||||
| Fri | Feb 11 | No class: Spring Recess
| Quiz for Unit 2 | ||||||||
6 | Mon | Feb 14 | Lecture 14: Parallel Speedup, Critical Path, Amdah's Law | Module 1: Section 1.5 | Topic 1.5 Lecture Topic 1.5 Demonstration | worksheet14 | lec14-slides | |||||
| Wed | Feb 16 | Lecture 15: Recursive Task Parallelism | worksheet15 | lec15-slides | Homework 3 (includes one intermediate checkpoint)
| Homework 2 | |||||
Fri | Feb 18 | Lecture 16: Accumulation and reduction. Finish accumulators | Module 1: Section 2.3 | Topic 2.3 Lecture , Topic 2.3 Demonstration | worksheet16 | lec16-slides | Quiz for Unit Homework 3 | |||||
7 | Mon | Feb 21 | Lecture 17: Midterm Review | lec17-slides | ||||||||
| Wed | Feb 23 | Lecture 18: Limitations of Functional parallelism. | lec18-slides | ||||||||
| Fri | Feb 25 | Lecture 19: 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 | worksheet19 | lec19-slides | |||||
8 | Mon | Feb 28 | Lecture 20: Confinement & Monitor Pattern. Critical sections | 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 | worksheet20 | lec20-slides | Quiz for Unit 4 | Quiz for Unit 3 | |||
| Wed | Mar 02 | Lecture 21: N-Body problem, applications and implementations | worksheet21 | lec21-slides | |||||||
| Fri | Mar 04 | Lecture 22: Fork/Join programming model. OS Threads. Scheduler Pattern | Module 2: Sections 2.7, 2.8 | Topic 2.7 Lecture, Topic 2.7 Demonstration, Topic 2.8 Lecture, Topic 2.8 Demonstration, | worksheet22 | lec22-slides | Homework 4 |
| Quiz for Unit 4 | ||
9 | Mon | Mar 07 | Lecture 23: Locks, Atomic variables | Module 2: 7.3 | Topic 7.3 Lecture | worksheet23 | lec23-slides | Quiz for Unit 5 |
| |||
| Wed | Mar 09 | Lecture 24: Parallel Spanning Tree, other graph algorithms | worksheet24 | lec24-slides | Homework 3, Checkpoint-1 | ||||||
| Fri | Mar 11 | Lecture 25: Linearizability of Concurrent Objects | Module 2: 7.4 | Topic 7.4 Lecture | worksheet25 | lec25-slides | Quiz for Unit 6 | Quiz for Unit 5 | |||
Mon | Mar 14 | No class: Spring Break |
| |||||||||
Wed | Mar 16 | No class: Spring Break |
| |||||||||
| Fri | Mar 18 | No class: Spring Break |
| ||||||||
10 | Mon | Mar 21 | Lecture 26: Java Locks - Soundness and progress guarantees | Module 2: 7.5 | Topic 7.5 Lecture | worksheet26 | lec26-slides | Homework 4 (includes one intermediate checkpoint) | Homework 3 (all) | |||
| Wed | Mar 23 | Lecture 27: Dining Philosophers Problem | Module 2: 7.6 | Topic 7.4 Lecture Topic 7.6 Lecture | worksheet27 | lec27-slides |
| ||||
| Fri | Mar 25 | Lecture 28: Read-Write Pattern. Read-Write Locks. Fairness & starvation | Module 2: 7.3, 7.5 | Topic 7.3 Lecture, Topic 7.5 Lecture, | worksheet28 | lec28-slides | Quiz for Unit 7 |
| |||
11 | Mon | Mar 28 | Lecture 29: Task Affinity and locality. Memory hierarchy | worksheet29 | lec29-slides |
| Quiz for Unit 6 | |||||
| Wed | Mar 30 | Lecture 30: Reactor Pattern. Web servers | worksheet30 | lec30-slides |
| ||||||
| Fri | Apr 01 | Lecture 31: Scan Pattern. Parallel Prefix Sum, uses and algorithms | worksheet31 | lec31-slides | Quiz for Unit 8 | Homework 5 | Quiz for Unit 7 | ||||
12 | Mon | Apr 04 | Lecture 32: Data-Parallel Programming model. Loop-Level Parallelism, Loop 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 | worksheet32 | lec32-slides |
| Homework 4 Checkpoint-1 | |||
| Wed | Apr 06 | Lecture 33: Barrier Synchronization with phasers | Module 1: Section 3.4 | Topic 3.4 Lecture , Topic 3.4 Demonstration | worksheet33 | lec33-slides |
| ||||
| Fri | Apr 08 | Lecture 34: Stencil computation. 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 | worksheet34 | lec34-slides | Quiz for Unit 8 | ||||
13 | Mon | Apr 11 | Lecture 35: Message-Passing programming model with Actors | Module 2: 6.1, 6.2 | Topic 6.1 Lecture , Topic 6.1 Demonstration , Topic 6.2 Lecture, Topic 6.2 Demonstration | worksheet35 | lec35-slides |
|
| |||
Wed | Apr 13 | Lecture 36: Active Object Pattern. Combining Actors with task parallelism | Module 2: 6.3, 6.4 | Topic 6.3 Lecture , Topic 6.3 Demonstration , Topic 6.4 Lecture, Topic 6.4 Demonstration | worksheet36 | lec36-slides | Homework 4 (all) | |||||
Fri | Apr 15 | Lecture 37: Eureka-style Speculative Task Parallelism | worksheet37 | lec37-slides | ||||||||
14 | Mon | Apr 18 | Lecture 38: Overview of other models and frameworks | lec38-slides | ||||||||
Wed | Apr 20 | Lecture 39: Course Review (Lectures 19-38) | lec39-slides | |||||||||
Fri | Apr 22 | Lecture 40: Course Review (Lectures 19-38) | lec40-slides |
...