...
Instructor: | Prof. Vivek Sarkar, DH 3131 | Head TA: | Max Grossman |
---|---|---|---|
Admin Assistant: | Annepha Hurlock, annepha@rice.edu, DH 3080, 713-348-5186 | Graduate TAs: | Prasanth Chatarasi, Arghya Chatterjee, Yuhan Peng, Jonathan SharmanJonathan Sharman, Bing Xue, Lechen Yu |
Co-Instructor: | Dr. Mackale Joyner | Undergraduate TAs: | Prudhvi BoyapalliMarc Canby, Anna Chi, Peter Elmers, Nicholas Hanson-Holtry, Ayush Narayan, Timothy Newton, Alitha Partono, Tom Roush, Hunter Tidwell, Bing Xue, Joseph Hungate, Cary Jiang, Gloria Kim, Cecilia Liu, Kevin Mullin, Victoria Nazari, Ashok Sankaran, Sujay Tadwalkar, Vidhi Vakharia, Eugene Wang |
Piazza site: | https://piazza.com/class/iirz0u74egl2q9 (Piazza is the preferred medium for all course communications, but you can also send email to comp322-staff at rice dot edu if needed) | Cross-listing: | ELEC 323 |
Lecture location: | Herzstein Hall 210 | Lecture times: | MWF 1:00pm - 1:50pm (followed by group office hours during 2pm - 3pm, usually in DH 3092) |
Lab locations: | DH 1042, DH 1064 | Lab times: | Wednesday, 07:00pm - 08:30pm |
...
Week | Day | Date (2016) | Topic | Assigned Reading | Assigned Videos (Quizzes due by Friday of each week) | In-class Worksheets | Slides | Work Assigned | Work Due |
---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 09 | Lecture 1: Task Creation and Termination (Async, Finish) | Module 1: Section 1.1 | worksheet1 | lec1-slides |
|
| |
| Wed | Jan 11 | 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 |
|
|
Fri | Jan 13 | Lecture 3: Abstract Performance Metrics, Multiprocessor Scheduling | Module 1: Section 1.4 | Topic 1.4 Lecture, Topic 1.4 Demonstration | worksheet3 | lec3-slides | Homework 1 (2 weeks) | Lecture & demo quizzes for topics 1.1, 1.2, 1.3, 1.4 | |
2 | Mon | Jan 16 | No lecture, School Holiday (Martin Luther King, Jr. Day) | ||||||
| Wed | Jan 18 | Lecture 4: Parallel Speedup and Amdahl's Law | Module 1: Section 1.5 | Topic 1.5 Lecture, Topic 1.5 Demonstration | worksheet4 | lec4-slides | ||
| Fri | Jan 20 | Lecture 5: Future Tasks, Functional Parallelism | Module 1: Section 2.1 | Topic 2.1 Lecture , Topic 2.1 Demonstration | worksheet5 | lec5-slides | Lecture & demo quizzes for topics 1.5, 2.1 (topic 1.6 is optional) | |
3 | Mon | Jan 23 | Lecture 6: Memoization | Module 1: Section 2.2 | Topic 2.2 Lecture , Topic 2.2 Demonstration | worksheet6 | lec6-slides | ||
Wed | Jan 25 | Lecture 7: Finish Accumulators | Module 1: Section 2.3 | Topic 2.3 Lecture , Topic 2.3 Demonstration | worksheet7 | lec7-slides | |||
| Fri | Jan 27 | Lecture 8: 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 | worksheet8 | lec8-slides | (2 weeks) | Homework 1, Lecture & demo quizzes for topics 2.2, 2.3, 2.5, 2.6 |
4 | Mon | Jan 30 | Lecture 9: Map Reduce | Module 1: Section 2.4 | Topic 2.4 Lecture , Topic 2.4 Demonstration | worksheet9 | lec9-slides | ||
| Wed | Feb 01 | Lecture 10: Java’s Fork/Join Library | FJP chapter: Sections 7.3 & 7.5 | worksheet10 | lec10-slides | |||
| Fri | Feb 03 | 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 | Lecture & demo quizzes for topics 2.4, 3.1, 3.2, 3.3 | |
5 | Mon | Feb 06 | Lecture 12: Barrier Synchronization | Module 1: Section 3.4 | Topic 3.4 Lecture , Topic 3.4 Demonstration | worksheet12 | lec12-slides | ||
| Wed | Feb 08 | 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 | Worksheet12.java | |
- | Fri | Feb 10 | Spring Recess | ||||||
6 | Mon | Feb 13 | Lecture 14: Data-Driven Tasks and Data-Driven Futures | Module 1: Section 4.5 | Topic 4.5 Lecture , Topic 4.5 Demonstration | worksheet14 | lec14-slides | (5 weeks, with two intermediate checkpoints) | Homework 2, Lecture & demo quizzes for topics |
| Wed | Feb 15 | Lecture 15: Phasers, Point-to-point Synchronization | Module 1: Sections 4.2, 4.3 | Topic 4.2 Lecture , Topic 4.2 Demonstration, Topic 4.3 Lecture, Topic 4.3 Demonstration | worksheet15 | lec15-slides | ||
| Fri | Feb 17 | 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 | Lecture & demo quizzes for topics 4.1, 4.2, 4.3, 4.4 | |
7 | Mon | Feb 20 | Lecture 17: Midterm Summary | lec18-slides | |||||
| Wed | Feb 22 | Midterm Review (interactive Q&A only, no lecture) | Exam 1 held during lab time (7:00pm - 10:00pm), scope of exam limited to lectures 1-17 | |||||
| Fri | Feb 24 | Lecture 18: Abstract vs. Real Performance | worksheet17 | lec17-slides | Homework 3 Checkpoint-1, Lecture & demo quizzes for topic 4.6 | |||
8 | Mon | Feb 27 | Lecture 19: Task Scheduling Policies | Topic 4.6 Lecture , Topic 4.6 Demonstration | worksheet19 | lec19-slides | Lec19HelpFirstWorkStealing.java |
| |
| Wed | Mar 01 | Lecture 20: Critical sections, Isolated construct, Parallel Spanning Tree algorithm (start of Module 2) | Module 2: Sections 5.1, 5.2, 5.3, 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 | worksheet20 | lec20-slides |
| |
| Fri | Mar 03 | Lecture 21: Atomic variables, Read-Write Isolation | Module 2: Sections 5.4, 5.5 | Topic 5.4 Lecture, Topic 5.4 Demonstration, Topic 5.5 Lecture, Topic 5.5 Demonstration, Topic 5.6 Lecture, Topic 5.6 Demonstration | worksheet21 | lec21-slides | Homework 3 Checkpoint-2, Lecture & demo quizzes for topics 5.1 to 5.6 | |
9 | Mon | Mar 06 | Lecture 22: Parallelism in Java Streams, Parallel Prefix Sums
| worksheet22 | lec22-slides |
|
| ||
| Wed | Mar 08 | Lecture 23: Java Threads, Java synchronized statement | Topic 7.1 Lecture, Topic 7.2 Lecture | worksheet23 | lec23-slides |
|
| |
| Fri | Mar 10 | Lecture 24: Java synchronized statement (contd), wait/notify | Topic 7.3 Lecture | worksheet24 | lec24-slides |
| Homework 3, Lecture quizzes for topics 7.1 - 7.4 | |
- | M-F | Mar 13 - Mar 17 | Spring Break | ||||||
10 | Mon | Mar 20 | Lecture 25: Concurrent Objects, Linearizability of Concurrent Objects | Topic 7.4 Lecture | worksheet25 | lec25-slides | (3 weeks, with one intermediate checkpoint) |
| |
| Wed | Mar 22 | Lecture 26: Linearizability (contd), Java locks | Topic 7.3 Lecture (recap), Topic 7.4 Lecture (recap) | worksheet26 | lec26-slides |
| ||
| Fri | Mar 24 | Lecture 27: Parallel Design Patterns, Safety and Liveness Properties | Topic 7.5 Lecture | worksheet27 | lec27-slides | Lecture & demo quizzes for topics 7.5 | ||
11 | Mon | Mar 27 | Lecture 28: Actors | Topic 6.1 Lecture , Topic 6.1 Demonstration , Topic 6.2 Lecture, Topic 6.2 Demonstration, Topic 6.3 Lecture, Topic 6.3 Demonstration | worksheet28 | ||||
| Wed | Mar 29 | Lecture 29: Actors (contd) | Topic 6.4 Lecture , Topic 6.4 Demonstration , Topic 6.5 Lecture, Topic 6.5 Demonstration, Topic 6.6 Lecture, Topic 6.6 Demonstration | worksheet29 | lec29-slides | Lec29Slide2ThreadRing.java | ||
| Fri | Mar 31 | Lecture 30: Java Synchronizers, Dining Philosophers Problem | Topic 7.6 Lecture | worksheet30 | lec30-slides | Lecture quiz for topic 7.6 | ||
12 | Mon | Apr 03 | Lecture 31: Eureka-style Speculative Task Parallelism | worksheet31 | lec31-slides | Homework 4 Checkpoint-1 | |||
| Wed | Apr 05 | Lecture 32: Task Affinity with Places (start of Module 3) | worksheet32 | lec32-slides |
|
| ||
| Fri | Apr 07 | Lecture 33: Message Passing Interface (MPI) | worksheet33 | lec33-slides |
|
| ||
13 | Mon | Apr 09 | Lecture 34: Message Passing Interface (MPI, contd) | worksheet34 | lec34-slides | Homework 4 | |||
| Wed | Apr 12 | Lecture 35: GPU Computing | worksheet35 | lec35-slides | (Due April 22nd, with automatic extension till May 2nd 1st after which slip days may be used) |
| ||
| Fri | Apr 14 | Lecture 36: Partitioned Global Address Space (PGAS) programming models | worksheet36 | |||||
14 | Mon | Apr 17 | Lecture 37: Apache Spark framework | worksheet37 | lec37-slides |
| |||
| Wed | Apr 19 | Lecture 38: Topic TBD
|
|
| ||||
| Fri | Apr 21 | Lecture 39: Course Review (lectures 20-37), Last day of classes | lec38-slides | Homework 5 (automatic extension till May 2nd1st after which slip days may be used) | ||||
- | Mon | Apr 24 | Review session / Office Hours, 1pm - 3pm, Herzstein 212 (different room from usual) | ||||||
- | Wed | Apr 26 | Review session / Office Hours, 1pm - 3pm, Herzstein 212 (different room from usual) | ||||||
- | Thu | Apr 28 | Review session / Office Hours, 1pm - 3pm, Herzstein 212 (different room from usual) | ||||||
- | Tue | May 3 | Scheduled final exam (Exam 2 – scope of exam limited to lectures 18-37), location and time TBD by registrar |
|
|
|
...