...
...
Instructor: | Mackale Joyner, DH 2063 | TAs: |
|---|
Elian Ahmar, Timothy Goh, Kelly Park, Tucker Reinhardt, Mantej Singh, Minh Vu, Thanh Vu, Robert Walsh, Frederick Wang, Xincheng Wang, Yidi Wang | | Admin Assistant: | Annepha Hurlock, annepha@rice.edu, DH 3122, 713-348-5186 | | |
Piazza site: | https://piazza.com/rice/spring2021/comp322 (Piazza is the preferred medium for all course communications) | Cross-listing: | ELEC 323 |
|---|
Lecture location: |
|---|
Fully OnlineHerzstein Amp | Lecture times: | MWF 1: |
|---|
30pm 225pm locationsFully Online timesTu 130pm 2:25pm (TV, MS, TG, RW)Th 4:50pm - 5:45pm (XW, TR, KP, YW, FW, EA)
...
...
To achieve these learning outcomes, each class period will include time for both instructor lectures and in-class exercises based on assigned reading and videos. The lab exercises will be used to help students gain hands-on programming experience with the concepts introduced in the lectures.
...
...
Week | Day | Date (2021 ) | Lecture | Assigned Reading | Assigned Videos (see Canvas site for video links) | In-class Worksheets | Slides | Work Assigned | Work Due |
|---|
| | Worksheet Solutions |
|
|---|
1 | Mon | Jan |
|---|
25Topic 1.1 Lecture, Topic 1.1 Demonstration Task Creation and Termination (Async, Finish)Module 1: Section 1.1 | | | | | 27 Computation Graphs, Ideal ParallelismModule 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 DemonstrationQuiz for Unit 1 | | | | | Wed | Feb 03 | Lecture 5: Future Tasks, Functional Parallelism ("Back to the Future")11 1 worksheet5lec5 | | | Fri | Feb 05 | Lecture 6: Finish Accumulators33 3 worksheet6lec6 | Quiz for Unit 1 | | |
|
| WS7-solution |
|
| Fri | Jan 31 | Lecture 8: Async, Finish, Computation Graphs |
|---|
3 | Mon | Feb 08 | Lecture 7: Map Reduce Section 2.4 24 24 Demonstration | 1 Demonstration, Topic 1.2 Lecture, Topic 1.2 Demonstration | worksheet8 | lec8 |
worksheet7 | lec7 Lecture 8: Data Races, Functional & Structural DeterminismWed | Feb 10 | | Lecture 9: Ideal Parallelism, Data-Driven Tasks | Module 1: Section |
25 26 25 25 26 26 Demonstration worksheet8 | lec8-slides | Homework 2 | | | 12 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 | | | | 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 10 | 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 12 | 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 14 | No class: Spring Recess
|
|
|
|
|
|
|
|
|
|---|
| 6 | Mon | Feb 17 | 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 19 | Lecture 15: Limitations of Functional parallelism. Abstract vs. real performance. Cutoff Strategy |
|
| worksheet15 | lec15-slides |
| Homework 2 | WS15-solution |
|
|---|
| Fri | Feb 21 | Lecture 16: Recursive Task Parallelism |
|
| worksheet16 | lec16-slides | Homework 3 |
| WS16-solution |
|
7 | Mon | Feb 24 | Lecture 17: Midterm Review |
|
|
| lec17-slides |
|
|
|
|
|---|
| Wed | Feb 26 | Lecture 18: Midterm Review |
|
|
| lec18-slides |
|
|
|
|
|---|
| Fri | Feb 28 | Lecture 19: Fork/Join programming model |
| Topic 2.7 Lecture, Topic 2.7 Demonstration, Topic 2.8 Lecture, Topic 2.8 Demonstration | worksheet19 | lec19-slides |
|
| WS19-solution |
|
|---|
8 | Mon | Mar 03 | 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 | worksheet20 | lec20-slides |
|
| WS20-solution |
|
|---|
| Wed | Mar 05 | Lecture 21: Barrier Synchronization with Phasers | Module 1: Sections 3.4 | Topic 3.4 Lecture, Topic 3.4 Demonstration | worksheet21 | lec21-slides |
|
| WS21-solution |
|
|---|
| Fri | Mar 07 | Lecture 22: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 | worksheet22 | lec22-slides |
|
| WS22-solution |
|
|---|
9 | Mon | Mar 10 | Lecture 23: Fuzzy Barriers with Phasers | Module 1: Section 4.1 | Topic 4.1 Lecture, Topic 4.1 Demonstration | worksheet23 | lec23-slides |
| Homework 3 (CP 1) | WS23-solution |
|
|---|
| Wed | Mar 12 | Lecture 24: Confinement & Monitor Pattern. Critical sections Global lock | 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 14 | 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 | lec25-slides |
|
| WS25-solution |
|
|---|
| Mon | Mar 17 | No class: Spring Break |
| |
|
|
|
|
|
|
| Wed | Mar 19 | No class: Spring Break |
|
|
|
|
|
|
|
|
| Fri | Mar 21 | No class: Spring Break |
|
|
|
|
|
|
|
|
|---|
10 | Mon | Mar 24 | Lecture 26: Java Threads and Locks | Module 2: Sections 7.1, 7.3 | Topic 7.1 Lecture, Topic 7.3 Lecture | worksheet26 | lec26-slides |
|
| WS26-solution |
|
|---|
| Wed | Mar 26 | Lecture 27: Read-Write Locks, Soundness and progress guarantees | Module 2: Section 7.3 | Topic 7.3 Lecture, Topic 7.5 Lecture | worksheet27 | lec27-slides |
| Homework 3 (CP 2) | WS27-solution |
|
|---|
| Fri | Mar 28 | Lecture 28: Dining Philosophers Problem |
| Topic 7.6 Lecture | worksheet28 | lec28-slides |
|
| WS28-solution |
|
11 | Mon | Mar 31 | Lecture 29: Linearizability of Concurrent Objects | Module 2: Sections 7.4 | Topic 7.4 Lecture | worksheet29 | lec29-slides |
|
| WS29-solution |
|
|---|
| Wed | Apr 02 | Lecture 30: Parallel Spanning Tree, other graph algorithms | |
| worksheet30 | lec30-slides |
|
| WS30-solution |
|
|---|
| Fri | Apr 04 | 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 07 | 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 |
|
| WS32-solution |
|
|---|
| Wed | Apr 09 | Lecture 33: Task Affinity and locality. Memory hierarchy |
|
| worksheet33 | lec33-slides | Homework 4 | Homework 3 (All) | WS33-solution |
|
|---|
| Fri | Apr 11 | Lecture 34 |
|---|
4 | Mon | Feb 15 | No class (storm weather) | | | | | | | | |
|---|
| | Wed | Feb 17 | Spring "Sprinkle" Day (no class) | | | | | | | | |
| | Fri | Feb 19 | 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 | | | | |
5 | Mon | Feb 22 | 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 | | Quiz for Unit 2 | | |
|---|
| Wed | Feb 24 | Lecture 12: Parallelism in Java Streams, Parallel Prefix Sums | Module 1: Section 3.7 | Topic Topic 3.7 Java Streams, Topic 3.7 Java Streams Demonstration | worksheet12 | lec12-slides | | | | |
|---|
| | Fri | Feb 26 | 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 | Homework 3 (includes one intermediate checkpoint) Quiz for Unit 3 | Homework 2 | | |
6 | Mon | Mar 01 | Lecture 14: Data-Driven Tasks | Module 1: Sections 4.5 | Topic 4.5 Lecture Topic 4.5 Demonstration | worksheet14 | lec14-slides | | | | |
|---|
| | Wed | Mar 03 | Spring "Sprinkle" Day (no class) | | | | | | | | |
| Fri | Mar 05 | 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 | | | | |
|---|
7 | Mon | Mar 08 | Lecture 16: 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 | worksheet16 | lec16-slides | Quiz for Unit 4 | Quiz for Unit 3 | | |
|---|
| Wed | Mar 10 | Lecture 17: Midterm Review | | | | lec17-slides | | | | |
|---|
| Fri | Mar 12 | Lecture 18: Abstract vs. Real Performance | | | worksheet18 | lec18-slides | | | | |
|---|
8 | Mon | Mar 15 | 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 | | | | |
|---|
| Wed | Mar 17 | 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 | | Homework 3, Checkpoint-1 | | |
|---|
| Fri | Mar 19 | 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 | | | | |
|---|
9 | Mon | Mar 22 | Lecture 22: Actors (contd) | Module 2: 6.3, 6.4, 6.5 | Topic 6.3 Lecture, Topic 6.3 Demonstration, Topic 6.4 Lecture , Topic 6.4 Demonstration, Topic 6.5 Lecture, Topic 6.5 Demonstration | worksheet22 | lec22-slides | | Quiz for Unit 4 | | |
|---|
| Wed | Mar 24 | Lecture 23: Actors (contd) | Module 2: 6.6 | Topic 6.6 Lecture, Topic 6.6 Demonstration | | lec23-slides | Quiz for Unit 5 | | | |
|---|
| | Fri | Mar 26 | Lecture 24: Java Threads, Java synchronized statement | Module 2: 7.1, 7.2 | Topic 7.1 Lecture, Topic 7.2 Lecture | | lec24-slides | | | | |
| 10 | Mon | Mar 29 | Spring "Sprinkle" Day (no class) | | | | | | | | |
| Wed | Mar 31 | Lecture 25: Java Threads, Java synchronized statement (contd), wait/notify | Module 2: 7.1, 7.2 | Topic 7.1 Lecture, Topic 7.2 Lecture | | lec25-slides | | | | |
|---|
| Fri | Apr 02 | Lecture 26: Java Threads (exercise) | | | | lec26-handout | | Homework 3 (all) | | |
|---|
11 | Mon | Apr 05 | Lecture 27: Java Locks | Module 2: 7.3 | Topic 7.3 Lecture | | lec27-slides | Quiz for Unit 6 | Quiz for Unit 5 | | |
|---|
| Wed | Apr 07 | Lecture 28: Linearizability of Concurrent Objects | Module 2: 7.4 | Topic 7.4 Lecture | | lec28-slides | Homework 4 (includes one intermediate checkpoint) | | | |
| Fri | Apr 09 | Lecture 29: Java Locks (exercise) | | | | lec29-handout | | | | |
|---|
12 | Mon | Apr 12 | Lecture 30: Safety and Liveness Properties, Java Synchronizers, Dining Philosophers Problem | Module 2: 7.5, 7.6 | Topic 7.5 Lecture, Topic 7.6 Lecture | | lec30-slides | Quiz for Unit 7 | Quiz for Unit 6 | | |
|---|
| Wed | Apr 14 | Lecture 31: Message Passing Interface (MPI), (start of Module 3) | | Topic 8.1 Lecture, Topic 8.2 Lecture, Topic 8.3 Lecture | | lec31-slides | | | | |
|---|
| Fri | Apr 16 | Lecture 32: Message Passing Interface (MPI, contd) | | Topic 8.4 Lecture | | lec32-slides | | | | |
|---|
13 | Mon | Apr 19 | Lecture 33: Message Passing Interface (MPI, contd) | | Topic 8.5 Lecture, Topic 8 Demonstration Video | | lec33-slides | | Homework 4 Checkpoint-1 | | |
|---|
| Wed | Apr 21 | Lecture 34: Task Affinity with Places | | | | lec34-slides | Quiz for Unit 8 | Quiz for Unit 7 | | |
|---|
| Fri | Apr 23 | Lecture 35: Eureka-style Speculative Task Parallelism | |
| | lec35-slides | | | | |
| worksheet34 | lec34-slides |
|
| WS34-solution |
|
13 | Mon | Apr 14 | No class: Solar Eclipse |
|---|
14 | Mon | Apr 26 | Lecture 36: Algorithms based on Parallel Prefix (Scan) operations | | | | lec36-slides | | | | |
28 37: Course Review (Lectures 19-34) | | | lec37-slides | | 35: Scan Pattern. Parallel Prefix Sum |
|
| worksheet35 | lec35-slides |
all | | Apr 30 | TBD | | | | | | Quiz for Unit 8 | | | 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 | | lab2-handout
| |
|---|
- | Feb 16classes cancelled) | 23Cutoff Strategy and Real World Performance | Mar 02 | DDFs| Feb 10 | Data-Driven Tasks | lab4- |
handout | Mar 09 (Midterm exam) | Mar 16Spring "Sprinkle" Day) | 23Loop-level Parallelism | lab5-handout | lab5-intro | - | | Isolated Statement and Atomic Variables | | |
|---|
| - | | Actors | | |
|---|
| - | | Java Threads, Java Locks | | |
|---|
- | | Message Passing Interface (MPI) | | |
|---|
- | | Apache Spark | | |
|---|
- | | Eureka-style Speculative Task Parallelism | | |
|---|
- | | Java's ForkJoin Framework | | 03 | Loop Parallelism | lab5-handout | image kernels |
| 6 | Mar 10 | Recursive Task Cutoff Strategy | lab6-handout |
|
|---|
| - | Mar 17 | No lab this week (Spring Break) |
|
|
|---|
| 7 | Mar 24 | Java Threads | lab7-handout |
|
|---|
| - | Mar 31 | No lab this week |
|
|
|---|
| 8 | Apr 07 | Concurrent Lists | lab8-handout |
|
|---|
| 9 | Apr 14 | Actors | lab9-handout |
|
|---|
- | Apr 21 | No lab this week |
|---|
...
...