...
| Day | Date (2012) | Topic | Slides | Audio (Panopto) | Code Examples | Homework Assigned | Homework Due | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Wed | Sep 05 | Lecture 1: The What and Why of Parallel Programming |
|
| ||||||||||||
2 | Mon | Sep 10 | Lecture 2: Async-Finish Parallel Programming and Computation Graphs |
|
| ||||||||||||
3 | Wed | Sep 12 | Lecture 3: Computation Graphs, Abstract Performance Metrics, Array Reductions | HW1 | |||||||||||||
4 | Mon | Sep 17 | School Holiday |
|
|
|
|
| |||||||||
5 | Wed | Sep 19 | Lecture 4: Parallel Speedup, Efficiency, Amdahl's Law |
|
|
| |||||||||||
6 | Mon | Sep 24 | Lecture 5: Data & Control Flow with Async Tasks, Data Races | (See Lab 3) |
|
| |||||||||||
7 | Wed | Sep 26 | Lecture 6: Memory Models, Atomic Variables | (See Lab 3) |
|
| |||||||||||
8 | Mon | Oct 01 | Lecture 7: Memory Models (contd), Futures --- Tasks with Return Values |
|
| ||||||||||||
9 | Wed | Oct 03 | Lecture 8: Futures (contd), Dataflow Programming, Data-Driven Tasks |
|
| ||||||||||||
10 | Mon | Oct 08 | Lecture 9: Abstract vs. Real Performance, seq clause, forasync loops |
| HW2 | ||||||||||||
11 | Wed | Oct 10 | Lecture 10: Forasync Chunking, Parallel Prefix Sum algorithm |
|
|
| |||||||||||
12 | Mon | Oct 15 | Lecture 11: Parallel Prefix Sum (contd), Parallel Quicksort |
| HW3 (HJ Programming Assignment), SeqScoring.hj, X.txt, Y.txt, BigSeq.zip |
| |||||||||||
13 | Wed | Oct 17 | Lecture 12: Finish Accumulators, Forall Loops and Barrier Synchronization |
|
|
| |||||||||||
14 | Mon | Oct 22 | Lecture 13: Forall Loops and Barrier Synchronization (contd) |
|
|
| |||||||||||
15 | Wed | Oct 24 | Lecture 14: Point-to-point Synchronization and Phasers |
|
|
| |||||||||||
16 | Mon | Oct 29 | Lecture 15: Phaser Accumulators, Bounded Phasers |
|
|
| |||||||||||
17 | Wed | Oct 31 | Lecture 16: Summary of Barriers and Phasers |
|
|
| |||||||||||
18 | Mon | Nov 05 | Lecture 17: Task Affinity with Places |
|
|
| |||||||||||
19 | Wed | Nov 07 | Lecture 18: Task Affinity with Places (contd) |
|
|
| |||||||||||
20 | Mon | Nov 12 | Lecture 19: Midterm Summary |
|
|
|
| ||||||||||
- | F | Feb 24 | No Lecture (Take-home Exam 1 due by 4pm today) |
|
|
|
| HW3 | |||||||||
- | M-F | Feb 27 - Mar 02 | Spring Break |
|
|
|
|
| |||||||||
21 | Wed | Nov 14 | Lecture 20: Critical sections and the Isolated statement |
|
|
| |||||||||||
22 | Mon | Nov 19 | Lecture 21: Isolated statement (contd), Monitors, Actors |
|
| ||||||||||||
23 | Wed | Nov 21 | Lecture 22: Actors (contd) |
|
| ||||||||||||
24 | MonMar | 12Nov 26 | Lecture 23: Linearizability of Concurrent Objects |
|
|
| |||||||||||
25 | WedMar | 14Nov 28 | Lecture 24: Linearizability of Concurrent Objects (contd) |
|
|
| |||||||||||
26 | FriMon | Mar 16 | Lecture 25: Safety and Liveness Properties |
|
|
| |||||||||||
27 | MonWed | Mar 19 | Lecture 26: Parallel Programming Patterns |
|
|
| |||||||||||
28 | WedMon | Mar 21 | Lecture 27: Introduction to Java Threads |
| HW4 | - | Fri | Mar 23 | Midterm Recess |
|
|
|
|
| |||
29 | MonWed | Mar 26 | Lecture 28: Bitonic Sort (guest lecture by Prof. John Mellor-Crummey) |
|
|
|
| ||||||||||
30 | WedMon | Mar 28 | Lecture 29: Java Threads (contd), Java synchronized statement |
|
|
| |||||||||||
31 | FriWed | Mar 30 | Lecture 30: Java synchronized statement (contd), advanced locking |
|
|
| |||||||||||
32 | Mon | Apr 02 | Lecture 31: Java Executors and Synchronizers |
|
|
| |||||||||||
33 | Wed | Apr 04 | Lecture 32: Volatile Variables and Java Memory Model |
|
|
| |||||||||||
34 | FriMon | Apr 06 | Lecture 33: Message Passing Interface (MPI) |
|
| HW5 | |||||||||||
35 | MonWed | Apr 09 | Lecture 34: Message Passing Interface (MPI, contd) |
|
| ||||||||||||
36 | WedMon | Apr 11 | Lecture 35: Cloud Computing, Map Reduce |
|
|
| |||||||||||
37 | FriWed | Apr 13 | Lecture 36: Map Reduce (contd) |
|
|
| |||||||||||
38 | Mon | Apr 16 | Lecture 37: Speculative parallelization of isolated blocks (Guest lecture by Prof. Swarat Chaudhuri) |
|
|
|
| ||||||||||
39 | Wed | Apr 18 | Lecture 38: Comparison of Parallel Programming Models |
|
|
| |||||||||||
40 | FriMon | Apr 20 | Lecture 39: Course Review |
| Exam 2 (Take-home) | HW6 | - | Fri | Apr 27 | Exam 2 due |
|
|
|
| Exam 2 |
Lab Schedule
Lab # | Date (2011) | Topic | Handouts | Code Examples | Solutions |
---|---|---|---|---|---|
1 | Jan 10, 11, 12 | DrHJ setup, Async-Finish Parallel Programming | |||
2 | Jan 17, 18, 19 | Abstract performance metrics with async & finish |
| ||
3 | Jan 23, 25, 26 | Data race detection and repair | RacyArraySum1.hj, RacyFib.hj, RacyNQueens.hj, RacyFannkuch.hj |
| |
4 | Jan 30 Feb 01, 02 | Real performance, work-sharing and work-stealing runtimes, futures |
| ||
5 | Feb 07, 08, 09 | Data-driven futures | |||
6 | Feb 14, 15, 16 | Barriers and Phasers | |||
- | Feb 21, 22, 23 | No lab (Exam 1 week) |
|
|
|
7 | Mar 06, 07, 08 | Atomic Variables and Isolated Statement | spanning_tree_atomic.hj, spanning_tree_isolated_object.hj, SortedListExampleObj.hj | ||
8 | Mar 13, 14, 15 | Actors | |||
- | Mar 20, 21, 22 | No lab (HW4 deadline, midterm recess) |
|
|
|
9 | Mar 27, 28, 29 | Java Threads | |||
10 | Apr 03, 04, 05 | Java Locks |
| ||
11 | Apr 10, 11, 12 | Message Passing Interface (MPI) | |||
12 | Apr 17, 18, 19 | Map Reduce |
|
...