...
Week | Day | Date (2018) | Lecture | Assigned Reading | Assigned Videos (see Canvas site for video links) | In-class Worksheets | Slides | Work Assigned | Work Due | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 0807 | Lecture 1: Task Creation and Termination (Async, Finish) | Module 1: Section 1.1 | worksheet1 | lec1-slides |
|
| ||||||
| Wed | Jan 1009 | 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 1211 | 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 | Jan 15 | No lecture, School Holiday (Martin Luther King, Jr. Day) | 14 | Lecture 4: Parallel Speedup and Amdahl's Law | Module 1: Section 1.5 | Topic 1.5 Lecture, Topic 1.5 Demonstration | worksheet4 | lec4-slides | |||||
| Wed | Jan 17 | No lecture, Rice closed due to weather | 16 | 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 | Quiz for Unit 1 | ||||
| Fri | Jan 1918Lecture 4: | Parallel Speedup and Amdahl's Law | Module 1: Section 1.5 | Topic 1.5 Lecture, Topic 1.5 Demonstration | worksheet4 | lec4-slides | |||||||
3 | Mon | Jan 22 | Lecture 5: Future Tasks, Functional Parallelism ("Back to the Future") | Module 1: Section 2.1 | Topic 2.1 Lecture, Topic 2.1 Demonstration | worksheet5 | 21 | No lecture, School Holiday (Martin Luther King, Jr. Day) | lec5-slides | |||||
Wed | Jan 2423 | Lecture 7: Finish Accumulators | Module 1: Section 2.3 | Topic 2.3 Lecture, Topic 2.3 Demonstration | worksheet7 | lec7-slides | Homework 2 | Homework 1 | ||||||
| Fri | Jan 2625 | Lecture 8: Memoization, Map Reduce | Module 1: Section 2.2 & 2.4 | Topic 2.2 Lecture, Topic 2.2 Demonstration, Topic 2.4 Lecture, Topic 2.4 Demonstration | worksheet8 | lec8-slides |
| Quiz for Unit 1 | |||||
4 | Mon | Jan 2928 | Lecture 9: 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 | worksheet9 | lec9-slides | |||||||
| Wed | Jan 3130 | Lecture 10: Java’s Fork/Join Library | Module 1: Sections 2.7, 2.8 | Topic 2.7 Lecture, Topic 2.8 Lecture, | worksheet10 | lec10-slides | Quiz for Unit 2 | ||||||
| Fri | Feb 0201 | Lecture 11: Loop-Level Parallelism, Parallel Matrix Multiplication, Iteration Grouping (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 | worksheet11 | lec11-slides | |||||||
5 | Mon | Feb 0504 | Lecture 12: Barrier Synchronization | Module 1: Section 3.4 | Topic 3.4 Lecture , Topic 3.4 Demonstration | worksheet12 | lec12-slides | |||||||
Wed | Feb 0706 | Lecture 13: Parallelism in Java Streams, Parallel Prefix Sums | Topic 3.7 Java Streams, Topic 3.7 Java Streams Demonstration | worksheet13 | lec13-slides | Homework 3 (includes 2 intermediate checkpoints) | Homework 2 | |||||||
- | Fri | Feb 0908 | Spring Recess | |||||||||||
6 | Mon | Feb 1211 | 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 | Quiz for Unit 2 | |||||
| Wed | Feb 1413 | Lecture 15: Data-Driven Tasks | Module 1: Sections 4.5, 4.2, 4.3 | Topic 4.5 Lecture Topic 4.5 Demonstration, Topic 4.3 Lecture, Topic 4.3 Demonstration | worksheet15 | lec15-slides | |||||||
| Fri | Feb 1615 | Lecture 16: Point-to-point Synchronization with Phasers | Module 1: Sections 4.2 | Topic 4.2 Lecture , Topic 4.2 Demonstration | worksheet16 | lec16-slides | Quiz for Unit 3 | ||||||
7 | Mon | Feb 1918 | Lecture 17: Midterm Summary | lec17-slides | ||||||||||
| Wed | Feb 2120 | Midterm Review (interactive Q&A) | |||||||||||
| Fri | Feb 2322 | Lecture 18: Abstract vs. Real Performance | worksheet18 | lec18-slides | Homework 3, Checkpoint-1 | ||||||||
8 | Mon | Feb 2625 | Lecture 19: 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, | worksheet19 | lec19-slides | Quiz for Unit 4 |
| |||||
| Wed | Feb 2827 | Lecture 20: Critical sections, Isolated construct, Parallel Spanning Tree algorithm, Atomic variables (start of Module 2) | Module 2: Sections 5.1, 5.2, 5.3, 5.4, 5.6 | Topic 5.1 Lecture, Topic 5.1 Demonstration, Topic 5.2 Lecture, Topic 5.2 Demonstration, Topic 5.3 Lecture, Topic 5.3 Demonstration, Topic 5.4 Lecture, Topic 5.4 Demonstration, Topic 5.6 Lecture, Topic 5.6 Demonstration | worksheet20 | lec20-slides |
| ||||||
| Fri | Mar 0201 | Lecture 21: Read-Write Isolation, Review of Phasers | Module 2: Section 5.5 | Topic 5.5 Lecture, Topic 5.5 Demonstration | worksheet21 | lec21-slides | Quiz for Unit 5 | Quiz for Unit 4 | |||||
9 | Mon | Mar 0504 | Lecture 22: Actors | Module 2: 6.1, 6.2 | Topic 6.1 Lecture , Topic 6.1 Demonstration , Topic 6.2 Lecture, Topic 6.2 Demonstration | worksheet22 | lec22-slides |
|
| |||||
| Wed | Mar 0706 | Lecture 23: Actors (contd) | Module 2: 6.3, 6.4, 6.5, 6.6 | Topic 6.3 Lecture, Topic 6.3 Demonstration, Topic 6.4 Lecture , Topic 6.4 Demonstration, Topic 6.5 Lecture, Topic 6.5 Demonstration, Topic 6.6 Lecture, Topic 6.6 Demonstration | worksheet23 | lec23-slides | Quiz for Unit 6 | Homework 3, Checkpoint-2 | |||||
| Fri | Mar 0908 | 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 5 | ||||||
- | M-F | Mar 12 11 - Mar 1615 | Spring Break | |||||||||||
10 | Mon | Mar 1918 | Lecture 25: Java synchronized statement (contd), wait/notify | Module 2: 7.2 | Topic 7.2 Lecture | worksheet25 | lec25-slides |
| ||||||
Wed | Mar 2120 | Lecture 26: Java Locks, Linearizability of Concurrent Objects | Module 2: 7.3, 7.4 | Topic 7.3 Lecture, Topic 7.4 Lecture | worksheet26 | lec26-slides | Homework 4 (includes one intermediate checkpoint)
| Homework 3 (all) | ||||||
| Fri | Mar 2322 | Lecture 27: Safety and Liveness Properties, Java Synchronizers, Dining Philosophers Problem | Module 2: 7.5, 7.6 | Topic 7.5 Lecture, Topic 7.6 Lecture | worksheet27 | lec27-slides | Quiz for Unit 7 | Quiz for Unit 6 | |||||
11 | Mon | Mar 2625 | Lecture 28: Message Passing Interface (MPI), (start of Module 3) | Topic 8.1 Lecture, Topic 8.2 Lecture, Topic 8.3 Lecture, | worksheet28 | lec28-slides | ||||||||
| Wed | Mar 2827 | Lecture 29: Message Passing Interface (MPI, contd) | Topic 8.4 Lecture, Topic 8.5 Lecture, Topic 8 Demonstration Video | worksheet29 | lec29-slides | Quiz for Unit 8 | |||||||
| Fri | Mar 3029 | Lecture 30: Distributed Map-Reduce using Hadoop and Spark frameworks | Topic 9.1 Lecture (optional, overlaps with video 2.4), Topic 9.2 Lecture, Topic 9.3 Lecture | worksheet30 | lec30-slides | Quiz for Unit 7 | |||||||
12 | Mon | Apr 0201 | Lecture 31: TF-IDF and PageRank Algorithms with Map-Reduce | Topic 9.4 Lecture, Topic 9.5 Lecture, Unit 9 Demonstration | worksheet31 | lec31-slides | Quiz for Unit 9 |
| ||||||
| Wed | Apr 0403 | Lecture 32: Partitioned Global Address Space (PGAS) programming models | worksheet32 | lec32-slides |
| Homework 4 Checkpoint-1 | |||||||
| Fri | Apr 0605 | Lecture 33: Combining Distribution and Multithreading | Lectures 10.1 - 10.5, Unit 10 Demonstration (all videos optional – unit 10 has no quiz) | worksheet33 | lec33-slides |
| Quiz for Unit 8 | ||||||
13 | Mon | Apr 0908 | Lecture 34: Task Affinity with Places | worksheet34 | lec34-slides |
| ||||||||
| Wed | Apr 1110 | Lecture 35: Eureka-style Speculative Task Parallelism | worksheet35 | lec35-slides | Homework 5 | Homework 4 (all) | |||||||
| Fri | Apr 1312 | Lecture 36: GPU Computing | worksheet36 | lec36-slides |
| Quiz for Unit 9 | |||||||
14 | Mon | Apr 1615 | Lecture 37: Algorithms based on Parallel Prefix (Scan) operations | worksheet37 | lec37-slides |
| ||||||||
| Wed | Apr 1817 | Lecture 38: Algorithms based on Parallel Prefix (Scan) operations, contd. | worksheet38 | lec38-slides |
|
| |||||||
| Fri | Apr 2019 | Lecture 39: Course Review (Lectures 18-38) | lec39-slides | Homework 5 | |||||||||
- | ||||||||||||||
...
Lab # | Date (2018) | Topic | Handouts | Code Examples |
---|---|---|---|---|
0 | Infrastructure Setup | lab0-handout | - | |
1 | Jan 1110 | Async-Finish Parallel Programming with abstract metrics | lab1-handout | - |
2 | Jan 2524 | Futures | lab2-handout | - |
3 | Feb 01 | Cutoff Strategy and Real World Performance | lab3-handout | - |
4 | Feb 15 | Java's ForkJoin Framework | lab4-handout | - |
- | Feb 22
| No lab this week - Midterm Exam | - | |
5 | Mar 01 | DDFs
| lab5-handout | - |
6 | Mar 05 | Loop-level Parallelism | lab6-handout | - |
- | Mar 15 | No lab this week - Spring Break | ||
7 | Mar 22 | Isolated Statement and Atomic Variables | lab7-handout | |
8 | Mar 29 | Actors | lab8-handout | |
9 | Apr 05 | Java Threads, Java Locks | lab9-handout | |
10 | Apr 12 | Apache Spark | lab10-handout | |
11 | Apr 19 | Message Passing Interface (MPI) | lab11-handout | |
|
| Eureka-style Speculative Task Parallelism | ||
|
...