...
There are also a few optional textbooks that we will draw from during the course. 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:
...
Week | Day | Date (2024) | Lecture | Assigned Reading | Assigned Videos (see Canvas site for video links) | In-class Worksheets | Slides | Work Assigned | Work Due | Worksheet Solutions | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 08 | Lecture 1: Introduction | worksheet1 | lec1-slides | WS1-solution | ||||||||||||||
Wed | Jan 10 | Lecture 2: Functional Programming | worksheet2 | lec02-slides | WS2-solution | |||||||||||||||
Fri | Jan 12 | Lecture 3: Higher order functions | worksheet3 | lec3-slides | WS3-solution | |||||||||||||||
2 | Mon | Jan 15 | No class: MLK | |||||||||||||||||
Wed | Jan 17 | Lecture 4: Lazy Computation | worksheet4 | lec4-slides | WS4-solution | |||||||||||||||
Fri | Jan 19 | Lecture 5: Java Streams | worksheet5 | lec5-slides | Homework 1 | WS5-solution | ||||||||||||||
3 | Mon | Jan 22 | Lecture 6: Map Reduce with Java Streams | Module 1: Section 2.4 | Topic 2.4 Lecture, Topic 2.4 Demonstration | worksheet6 | lec6-slides | WS6-solution | ||||||||||||
Wed | Jan 24 | Lecture 7: Futures | Module 1: Section 2.1 | Topic 2.1 Lecture , Topic 2.1 Demonstration | worksheet7 | lec7-slides | WS7-solution | |||||||||||||
Fri | Jan 26 | Lecture 8: Async, Finish, Computation Graphs | Module 1: Sections 1.1, 1.2 | Topic 1.1 Lecture, Topic 1.1 Demonstration, Topic 1.2 Lecture, Topic 1.2 Demonstration | worksheet8 | lec8-slides | WS8-solution | |||||||||||||
4 | Mon | Jan 29 | Lecture 9: Ideal Parallelism, Data-Driven Tasks | Module 1: Section 1.3, 4.5 | Topic 1.3 Lecture, Topic 1.3 Demonstration, Topic 4.5 Lecture, Topic 4.5 Demonstration | lec9-slides | WS9-solution | |||||||||||||
Wed | Jan 31 | Lecture 10: Event-based programming model | worksheet10 | lec10-slides | Homework 1 | WS10-solution | ||||||||||||||
Fri | Feb 02 | Lecture 11: GUI programming, Scheduling/executing computation graphs | Module 1: Section 1.4 | Topic 1.4 Lecture , Topic 1.4 Demonstration | worksheet11 | lec11-slides | Homework 2 | WS11-solution | ||||||||||||
5 | Mon | Feb 05 | Lecture 12: Abstract performance metrics, Parallel Speedup, Amdahl's Law | Module 1: Section 1.5 | Topic 1.5 Lecture , Topic 1.5 Demonstration | worksheet12 | lec12-slides | WS12-solution | ||||||||||||
Wed | Feb 07 | Lecture 13: Accumulation and reduction. Finish accumulators | Module 1: Section 2.3 | Topic 2.3 Lecture Topic 2.3 Demonstration | worksheet13 | lec13-slides | WS13-solution | |||||||||||||
Fri | Feb 09 | No class: Spring Recess | ||||||||||||||||||
6 | Mon | Feb 12 | Lecture 14: 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 | worksheet14 | lec14-slides | WS14-solution | ||||||||||||
Wed | Feb 14 | Lecture 15: Limitations of Functional parallelism. | worksheet15 | lec15-slides | Homework 2 | WS15-solution | ||||||||||||||
Fri | Feb 16 | Lecture 16: Recursive Task Parallelism | worksheet16 | lec16-slides | Homework 3 | WS16-solution | ||||||||||||||
7 | Mon | Feb 19 | Lecture 17: Midterm Review | lec17-slides | ||||||||||||||||
Wed | Feb 21 | Lecture 18: Midterm Review | lec18-slides | |||||||||||||||||
Fri | Feb 23 | Lecture 19: Fork/Join programming model. OS Threads. Scheduler Pattern | Topic 2.7 Lecture, Topic 2.7 Demonstration, Topic 2.8 Lecture, Topic 2.8 Demonstration | worksheet19 | lec19-slides | WS19-solution | ||||||||||||||
8 | Mon | Feb 26 | Lecture 20: 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 | worksheet19worksheet20 | lec19lec20-slides | WS19WS20-solution | ||||||||||||
8 | MonWed | Feb 2628 | Lecture 2021: Barrier Synchronization with Phasers | Module 1: Sections 3.4 | Topic 3.4 Lecture, Topic 3.4 Demonstration | worksheet20worksheet21 | lec20-slideslec21-slides | WS20WS21-solution | ||||||||||||
WedFri | Feb 28Mar 01 | Lecture 2122:Stencil computation. Point-to-point Synchronization with Phasers | Module 1: Sections 4.2, 4.3 | Topic 4.2 Lecture, Topic 4.2 Demonstration, Topic 4.3 Lecture, Topic 4.3 Demonstration | worksheet21worksheet22 | lec21lec22-slides | WS21WS22-solution | |||||||||||||
9 | MonFri | Mar 0104 | Lecture 2223: Fuzzy Barriers with Phasers | Module 1: Section 4.1 | Topic 4.1 Lecture, Topic 4.1 Demonstration | worksheet22worksheet23 | lec22lec23-slides | Homework 3 (CP 1) | WS23WS22-solution | 9 | Mon | Mar 04 | Lecture 23: Fork/Join programming model. OS Threads. Scheduler Pattern | Topic 2.7 Lecture, Topic 2.7 Demonstration, Topic 2.8 Lecture, Topic 2.8 Demonstration | worksheet23 | lec23-slides | Homework 3 (CP 1) | WS23-solution | ||
Wed | Wed | Mar 06 | Lecture 24: Confinement & Monitor Pattern. Critical sections | Module 2: Sections 5.1, 5.2 | Topic 5.1 Lecture, Topic 5.1 Demonstration, Topic 5.2 Lecture, Topic 5.2 Demonstration, Topic 5.6 Lecture, Topic 5.6 Demonstration | worksheet24 | lec24-slides | WS24-solution | ||||||||||||
Fri | Mar 08 | Lecture 25: Atomic variables, Synchronized statements | Module 2: Sections 5.4, 7.2 | Topic 5.4 Lecture, Topic 5.4 Demonstration, Topic 7.2 Lecture | worksheet25 | lec25lec25-slides | WS25-solution | |||||||||||||
Mon | Mar 11 | No class: Spring Break | ||||||||||||||||||
Wed | Mar 13 | No class: Spring Break | ||||||||||||||||||
Fri | Mar 15 | No class: Spring Break | ||||||||||||||||||
10 | Mon | Mar 18 | Lecture 26: Java Threads and Locks | Module 2: Sections 7.1, 7.3 | Topic 7.1 Lecture, Topic 7.3 Lecture | 10 | Mon | Mar 18 | Lecture 26: Parallel Spanning Tree, other graph algorithms | worksheet26 | lec26-slides | WS26-solution | ||||||||
Wed | Mar 20 | Lecture 27: Java Threads and LocksRead-Write Locks, Soundness and progress guarantees | Module 2: | Sections 7.1,Section 7.3 | Topic 7.1 3 Lecture, Topic 7.3 5 Lecture | worksheet27 | lec27-slides | Homework 3 (CP 2) | WS27-solution | |||||||||||
Fri | Mar 22 | Lecture 28 | : Java Locks - Soundness and progress guaranteesModule 2: Section 7.5: Dining Philosophers Problem | Topic 7. | 56 Lecture | worksheet28 | lec28-slides | WS28-solution | ||||||||||||
11 | Mon | Mar 25 | Lecture 29: Dining Philosophers Problem Linearizability of Concurrent Objects | Module 2: | SectionSections 7. | 64 | Topic 7.6 4 Lecture | worksheet29 | lec29-slides | WS29-solution | ||||||||||
Wed | Mar 27 | Lecture 30: Read-Write Locks, Linearizability of Concurrent Objects | Module 2: Sections 7.3, 7.4 | Parallel Spanning Tree, other graph algorithms | Topic 7.3 Lecture, Topic 7.4 Lecture | worksheet30 | lec30-slides | WS30-solution | ||||||||||||
Fri | Mar 29 | Lecture 31: Message-Passing programming model with Actors | Module 2: Sections 6.1, 6.2 | Topic 6.1 Lecture, Topic 6.1 Demonstration, Topic 6.2 Lecture, Topic 6.2 Demonstration | worksheet31 | lec31-slides | WS31-solution | |||||||||||||
12 | Mon | Apr 01 | Lecture 32: Active Object Pattern. Combining Actors with task parallelism | Module 2: Sections 6.3, 6.4 | Topic 6.3 Lecture, Topic 6.3 Demonstration, Topic 6.4 Lecture, Topic 6.4 Demonstration | worksheet32 | lec32-slides | Homework 3 (All) | WS32-solution | |||||||||||
Wed | Apr 03 | Lecture 33: Task Affinity and locality. Memory hierarchy | worksheet33 | lec33-slides | WS33-solution | |||||||||||||||
Fri | Apr 05 | Lecture 34: Eureka-style Speculative Task Parallelism | worksheet34 | lec34-slides | WS34-solution | |||||||||||||||
13 | Mon | Apr 08 | No class: Solar Eclipse | |||||||||||||||||
Wed | Apr 10 | Lecture 35: Scan Pattern. Parallel Prefix Sum | worksheet35 | lec35-slides | Homework 4 (CP 1) | WS35-solution | ||||||||||||||
Fri | Apr 12 | Lecture 36: Parallel Prefix Sum applications | worksheet36 | lec36-slides | WS36-solution | |||||||||||||||
14 | Mon | Apr 15 | Lecture 37: Overview of other models and frameworks | lec37-slides | ||||||||||||||||
Wed | Apr 17 | Lecture 38: Course Review (Lectures 19-34) | lec38-slides | Homework 4 (All) | ||||||||||||||||
Fri | Apr 19 | Lecture 39: Course Review (Lectures 19-34) | lec39-slides |
Lab Schedule
Lab # | Date (2023) | Topic | Handouts | Examples |
---|---|---|---|---|
1 | Jan 08 | Infrastructure setup | ||
- | Jan 15 | No lab this week (MLK) | ||
2 | Jan 22 | Functional Programming | lab2-handout | |
3 | Jan 29 | Futures | lab3-handout | |
4 | Feb 05 | Data-Driven Tasks | lab4-handout | |
- | Feb 12 | No lab this week | ||
- | Feb 19 | No lab this week (Midterm Exam) | ||
5 | Feb 26 | Loop Parallelism | lab5-handout | image kernels |
6 | Mar 04 | Recursive Task Cutoff Strategy | lab6-handout | |
- | Mar 11 | No lab this week (Spring Break) | ||
7 | Mar 18 | Java Threads | lab7-handout | |
8 | Mar 25 | Concurrent Lists | lab8-handout | |
9 | Apr 01 | Actors | lab9-handout | |
- | Apr 08 | No lab this week (Solar Eclipse) | ||
- | Apr 15 | No lab this week |
...