...
| Day | Date (2012) | Topic | Slides | Audio (Panopto) | Code Examples | Handouts | Homework Assigned | Homework Due |
---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 9 | Lecture 1: The What and Why of Parallel Programming |
|
|
| |||
2 | Wed | Jan 11 | Lecture 2: Async-Finish Parallel Programming and Computation Graphs |
|
|
| |||
3 | Fri | Jan 13 | Lecture 3: Computation Graphs, Abstract Performance Metrics, Array Reductions |
| HW1 | ||||
- | Mon | Jan 16 | School Holiday |
|
|
|
|
|
|
4 | Wed | Jan 18 | Lecture 4: Parallel Speedup, Efficiency, Amdahl's Law |
|
|
|
| ||
5 | Fri | Jan 20 | Lecture 5: Data & Control Flow with Async Tasks, Data Races | (See Lab 3) |
|
|
| ||
6 | Mon | Jan 23 | Lecture 6: Memory Models, Atomic Variables | (See Lab 3) |
|
|
| ||
7 | Wed | Jan 25 | Lecture 7: Memory Models (contd), Futures --- Tasks with Return Values |
|
|
| |||
8 | Fri | Jan 27 | Lecture 8: Futures (contd), Dataflow Programming, Data-driven Driven Tasks |
|
|
|
|
|
|
9 | Mon | Jan 30 | Lecture 9: Parallel Prefix Sum, Forall parallel loops |
|
|
|
| HW3 | HW2 |
10 | Wed | Feb 01 | Lecture 10: Critical sections and the Isolated statement |
|
|
|
|
|
|
11 | Fri | Feb 03 | Lecture 11: Abstract vs Real Performance, Work-sharing & Work-stealing schedulers |
|
|
|
|
|
|
12 | Mon | Feb 06 | Lecture 12: Barrier Synchronization in Forall Loops |
|
|
|
|
|
|
13 | Wed | Feb 08 | Lecture 13: Barrier Synchronization in Forall Loops (contd) |
|
|
|
| HW4 | HW3 |
14 | Fri | Feb 10 | Lecture 14: Point-to-point Synchronization and Phasers |
|
|
|
|
|
|
15 | Mon | Feb 13 | Lecture 15: Point-to-point Synchronization and Phasers (contd) |
|
|
|
|
|
|
16 | Wed | Feb 15 | Lecture 16: Advanced Phaser topics |
|
|
|
|
|
|
17 | Fri | Feb 17 | Lecture 17: Parallel Sorting Algorithms |
|
|
|
|
|
|
18 | Mon | Feb 20 | Lecture 18: Parallel Sorting Algorithms (contd) |
|
|
|
|
| HW3 |
19 | Wed | Feb 22 | Lecture 19: Midterm Summary |
|
|
|
|
| HW4 |
- | Fri | Feb 24 | Exam 1 (in class) |
|
|
|
|
|
|
- | M-F | Feb 27 - Mar 02 | Spring Break |
|
|
|
|
|
|
20 | Mon | Mar 05 | Lecture 20: Java Atomic Variables |
|
|
|
| HW5 HW4 |
|
21 | Wed | Mar 07 | Lecture 21: Java Concurrent Collections |
|
|
|
|
|
|
22 | Fri | Mar 09 | Lecture 22: Linearizability of Concurrent Objects |
|
|
|
|
|
|
23 | Mon | Mar 12 | Lecture 23: Task Affinity with Places |
|
|
|
|
|
|
24 | Wed | Mar 14 | Lecture 24: Task Affinity with Places, contd. |
|
|
|
|
|
|
25 | Fri | Mar 16 | Lecture 25: Map Reduce |
|
|
|
|
|
|
26 | Mon | Mar 19 | Lecture 26: Map Reduce, contd. |
|
|
|
|
| HW5 HW4 |
27 | Wed | Mar 21 | Lecture 27: Dataflow Programming with Intel Concurrent Collections |
|
|
|
| HW6 HW5 |
|
- | Fri | Mar 23 | Midterm Recess |
|
|
|
|
|
|
28 | Mon | Mar 26 | Lecture 28: Java Threads |
|
|
|
|
|
|
29 | Wed | Mar 28 | Lecture 29: Java Threads (contd), synchronized statement |
|
|
|
|
|
|
30 | Fri | Mar 30 | Lecture 30: Java synchronized statement with wait/notify |
|
|
|
|
|
|
31 | Mon | Apr 02 | Lecture 31: Advanced locking in Java |
|
|
|
|
|
|
32 | Wed | Apr 04 | Lecture 32: Java Executors and Synchronizers |
|
|
|
|
| HW6 HW5 |
33 | Fri | Apr 06 | Lecture 33: Volatile Variables and Java Memory Model |
|
|
|
| HW7 HW6 |
|
34 | Mon | Apr 09 | Lecture 34: GPGPU programming with CUDA |
|
|
|
|
|
|
35 | Wed | Apr 11 | Lecture 35: CUDA contd. |
|
|
|
|
|
|
36 | Fri | Apr 13 | Lecture 36: Liveness and Progress Guarantees |
|
|
|
|
|
|
37 | Mon | Apr 16 | Lecture 37: Introduction to MPI |
|
|
|
|
|
|
38 | Wed | Apr 18 | Lecture 38: Introduction to MPI (contd) |
|
|
|
|
|
|
39 | Fri | Apr 20 | Lecture 39: Course Summary |
|
|
|
| Exam 2 (Take-home) | HW7 HW6 |
- | Fri | Apr 27 | Exam 2 due |
|
|
|
|
| Exam 2 |
...
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 | Points, regions, forall loops |
|
|
|
5 | Feb 07, 08, 09 | Abstract vs Real Performance, Work-sharing & Work-stealing schedulers |
|
|
|
6 | Feb 14, 15, 16 | Barriers and Phasers |
|
|
|
- | Feb 21, 22, 23 | No lab (midterm week) |
|
|
|
7 | Mar 06, 07, 08 | Atomic Variables |
|
|
|
8 | Mar 13, 14, 15 | Places |
|
|
|
9 | Mar 20, 21, 22 | Data Driven Tasks |
|
|
|
10 | Mar 27, 28, 29 | Java Concurrency I |
|
|
|
11 | Apr 03, 04, 05 | Java Concurrency II |
|
|
|
12 | Apr 10, 11, 12 | CUDA |
|
|
|
13 | Apr 17, 18, 19 | MPI |
|
|
|
...