...
A summary PDF file containing the course syllabus for the course can be found here. Much of the syllabus information is also included below in this course web site, along with some additional details that are not included in the syllabus.
...
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 (Concurrency)
...
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- | slidesslides | WS1-solution | ||||||||||||
Wed | Jan 10 | Lecture 2: Functional Programming | worksheet2 | lec02-slides | WS2-solution | ||||||||||||||
Fri | Jan 12 | Lecture 3: Higher order functions | worksheet3worksheet3 | lec3- | slidesslides | 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 | worksheet9 | 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: Data-Parallel Programming model. Loop-Level Parallelism, Loop Chunking 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 | 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|||||||||
Wed | Mon | Feb 2628 | Lecture 2021: Barrier Synchronization with Phasers | Module 1: Sections 3.4 | Topic 3.4 Lecture, Topic 3.4 Demonstration | worksheet20worksheet21 | lec20lec21-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 | worksheet21 | lec21-slides | WS21-solution | Fri | Mar 01 | Lecture 22: Fuzzy Barriers with Phasers | Module 1: Section 4.1 | Topic 4.1 Topic 4.2 Demonstration, Topic 4.3 Lecture, Topic 4.1 3 Demonstration | worksheet22 | lec22-slides | WS22-solution | ||||
9 | Mon | Mar 04 | Lecture 23: Fork/Join programming model. OS Threads. Scheduler PatternTopic 2.7 Fuzzy Barriers with Phasers | Module 1: Section 4.1 | Topic 4.1 Lecture, Topic 24.7 Demonstration, Topic 2.8 Lecture, Topic 2.8 Demonstration1 Demonstration | worksheet23 | lec23-slides | Homework 3 (CP 1) | WS23-solution | ||||||||||
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: Parallel Spanning Tree, other graph algorithms | worksheet26 | lec26-slides | WS26-solution | Wed | Mar 20 | Lecture 27: Java Threads and Locks | Module 2: Sections 7.1, 7.3 | Topic 7.1 Lecture, Topic 7.3 Lecture | worksheet27worksheet26 | lec27lec26-slides | Homework 3 (CP 2) | WS27WS26-solution | ||||
Wed | Mar | 2220 | Lecture | 2827: | Java Locks - Read-Write Locks, Soundness and progress guarantees | Module 2: Section 7. | 53 | Topic 7.3 Lecture, | Topic 7.5 Lecture | worksheet28worksheet27 | lec28lec27-slides | WS28Homework 3 (CP 2) | WS27-solution | ||||||
Fri | Mon | Mar 2522 | Lecture 2928: Dining Dining Philosophers Problem | Module 2: Section 7.6 | Topic 7.6 Lecture | worksheet29worksheet28 | lec29lec28-slides | WS29WS28-solution | |||||||||||
11 | WedMon | Mar 2725 | Lecture 30: Read-Write Locks, Linearizability 29: Linearizability of Concurrent Objects | Module 2: Sections 7. | 3, 7.4 | Topic 7.3 Lecture, Topic 7.4 Lecture | worksheet29 | lec29-slides | WS29-solution | ||||||||||
Wed | Mar 27 | Lecture 30: Parallel Spanning Tree, other graph algorithms | 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 4 | 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 | lab0-handout lab1-handout | |||
- | 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 | |||
5- | Feb 12 | Async / Finish | lab5-handout | No lab this week | ||
- | Feb 19 | No lab this week (Midterm Exam) | ||||
65 | Feb 26 | Loop Parallelism | lab6lab5-handout | image kernels | ||
76 | Mar 04 | Recursive Task Cutoff Strategy | lab7lab6-handout | |||
- | Mar 11 | No lab this week (Spring Break) | ||||
-7 | Mar 18 | Java Threads | lab8lab7-handout | |||
8 | Mar 25 | Concurrent Lists | lab9lab8-handout | |||
9 | Apr 01 | Actors | lab10lab9-handout | |||
10- | Apr 08 | No lab this week (Solar Eclipse) | ||||
- | Apr 15 | No lab this week |
...