...
Week | Day | Date (2014) | Topic | Reading | Videos | In-class Worksheets | Slides | Code Examples | Work Assigned | Work Due |
---|---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 13 | Lecture 1: The What and Why of Parallel Programming, Task Creation and Termination (Async, Finish) | Module 1: Sections 0.1, 0.2, 1.1 | worksheet1 | lec1-slides | Demo File: ReciprocalArraySum.java |
| ||
| Wed | Jan 15 | 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 | Demo File: Search.java | Topic 1.2 Lecture Quiz , Topic 1.2 Demo Quiz , Topic 1.3 Lecture Quiz , Topic 1.3 Demo Quiz |
|
| Fri | Jan 17 | Lecture 3: , Abstract Performance Metrics, Multiprocessor Scheduling | Module 1: Section 1.4 | Topic 1.4 Lecture, Topic 1.4 Demonstration | worksheet3 | lec3-slides | Worksheet File: Search.java Homework 1 Files: QuicksortUtil.java , QuicksortSeq.java , QuicksortPar.java | Homework 1, Topic 1.4 Lecture Quiz , Topic 1.4 Demo Quiz, Topic 1.6 Lecture Quiz , Topic 1.6 Demo Quiz | |
2 | Mon | Jan 20 | No lecture, School Holiday (Martin Luther King, Jr. Day) | |||||||
| Wed | Jan 22 | Lecture 4: Parallel Speedup and Amdahl's Law | Module 1: Section 1.5 | Topic 1.5 Lecture, Topic 1.5 Demonstration | worksheet4 | lec4-slides | Demo File: VectorAdd.java | Topic 1.5 Lecture Quiz , Topic 1.5 Demo Quiz | |
| Fri | Jan 24 | No lecture (inclement weather) | All 12 lecture & demo quizzes in Unit 1 are due by 5pm CST today | ||||||
3 | Mon | Jan 27 | Lecture 5: Future Tasks, Functional Parallelism | Module 1: Section 2.1 | Topic 2.1 Lecture , Topic 2.1 Demonstration | worksheet5 | lec5-slides | Demo File(s): ReciprocalArraySumFutures.java, BinaryTreesSeq.java, BinaryTrees.java | ||
| Wed | Jan 29 | Lecture 6: Finish Accumulators | Module 1: Section 2.3 | Topic 2.3 Lecture , Topic 2.3 Demonstration | worksheet6 | lec6-slides | Demo File: Nqueens.java |
| |
| Fri | Jan 31 | Lecture 7: 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 | lec7-slides | Demo File: ReciprocalArraySum.java | Homework 1 | ||
4 | Mon | Feb 03 | Lecture 8: Map Reduce | Module 1: Section 2.4 | Topic 2.4 Lecture , Topic 2.4 Demonstration | worksheet8 | lec8-slides | Demo File(s): WordCount.java, words.txt Worksheet Files: WordCount.java , words.txt Homework 2 Files: GeneralizedReduce.java, GeneralizedReduceApp.java, SumReduction.java, TestSumReduction.java | Homework 2 | |
| Wed | Feb 05 | Lecture 9: Memoization | Module 1: Section 2.2 | Topic 2.2 Lecture , Topic 2.2 Demonstration | worksheet9 | lec9-slides | Demo File: PascalsTriangleWithFuture.java Worksheet File: PascalsTriangleMemoized.java Worksheet Solution: PascalsTriangleMemoizedSolution.java | ||
| Fri | Feb 07 | Lecture 10: Abstract vs. Real Performance | worksheet10 | lec10-slides | |||||
5 | Mon | Feb 10 | Lecture 11: Loop-Level Parallelism, Parallel Matrix Multiplication | Topic 3.1 Lecture, Topic 3.1 Demonstration, Topic 3.2 Lecture , Topic 3.2 Demonstration | worksheet11 | lec11-slides | Demo File: ForallWithIterable.java, VectorAddForall.java, MatrixMultiplicationMetrics.java | |||
| Wed | Feb 12 | Lecture 12: Iteration Grouping (Chunking), Barrier Synchronization | Topic 3.3 Lecture , Topic 3.3 Demonstration , Topic 3.4 Lecture , Topic 3.4 Demonstration | worksheet12 | lec12-slides | Demo File: MatrixMultiplicationPerformance.java, BarrierInForall.java | |||
| Fri | Feb 14 | Lecture 13: Iterative Averaging Revisited | Topic 3.5 Lecture , Topic 3.5 Demonstration , Topic 3.6 Lecture , Topic 3.6 Demonstration | worksheet13 | lec13-slides | Demo File: OneDimAveragingGrouped.java, OneDimAveragingBarrier.java Worksheet File: OneDimAveragingBarrier.java |
| ||
6 | Mon | Feb 17 | Lecture 14: Data-Driven Tasks and Data-Driven Futures | Topic 4.5 Lecture , Topic 4.5 Demonstration | worksheet14 | lec14-slides | Demo File: DataDrivenFutures4.java | Homework 2 | ||
| Wed | Feb 19 | Lecture 15: Review of Module-1 HJ-lib API's | worksheet15 | lec15-slides | Homework 3 Files: SeqScoring.java | Homework 3 | |||
| Fri | Feb 21 | Lecture 16: Point-to-point Synchronization with Phasers | Topic 4.2 Lecture , Topic 4.2 Demonstration | worksheet16 | lec16-slides | Demo File: Phaser3Asyncs.java | |||
7 | Mon | Feb 24 | Lecture 17: Phasers (contd), Signal Statement, Fuzzy Barriers | Topic 4.1 Lecture , Topic 4.1 Demonstration | worksheet17 | lec17-slides | Demo File: PhaserSignal.java | |||
| Wed | Feb 26 | Lecture 18: Midterm Summary, Take-home Exam 1 distributed | Exam 1 | ||||||
| F | Feb 28 | No Lecture (Exam 1 due by 4pm today) | Exam 1 | ||||||
- | M-F | Feb 28- Mar 09 | Spring Break |
|
|
|
| |||
8 | Mon | Mar 10 | Lecture 19: Critical sections, Isolated statement, Atomic variables | Module 2: Chapters 1, 2, 4, 6 |
| |||||
| Wed | Mar 12 | Lecture 20: Parallel Spanning Tree algorithm, Monitors, Java Concurrent Collections | Module 2: Chapters 3, 7 | Homework 3 | |||||
| Fri | Mar 14 | Lecture 21: Actors | Module 2: Chapter 8 |
| |||||
9 | Mon | Mar 17 | Lecture 22: Actors (contd), Linearizability of Concurrent Objects | Module 2: Chapters 8, 9 |
|
|
| |||
| Wed | Mar 19 | Lecture 23: Linearizability of Concurrent Objects (contd) | Module 2: Chapters 9, 10 |
|
| ||||
| Fri | Mar 21 | Lecture 24: Safety and Liveness Properties, Intro to Java Threads | Module 2: Chapters 11, 12 |
|
|
| |||
10 | Mon | Mar 24 | Lecture 25: Java Threads (contd), Java synchronized statement | Module 2: Chapters 12, 13, 14 |
|
|
| |||
| Wed | Mar 26 | Lecture 26: Java synchronized statement (contd), advanced locking | Module 2: Chapter 14 |
| |||||
| Fri | Mar 28 | Lecture 27: Speculative parallelization of isolated blocks (Guest lecture by Prof. Swarat Chaudhuri) |
|
|
| ||||
11 | Mon | Mar 31 | Lecture 28: Java Executors and Synchronizers |
|
|
| ||||
| Wed | Apr 02 | Lecture 29: Dining Philosophers Problem |
|
|
| ||||
- | Fri | Apr 04 | Midterm Recess | |||||||
12 | Mon | Apr 07 | Lecture 30: Task Affinity with Places |
| ||||||
| Wed | Apr 09 | Lecture 31: More on Actors: Places, Dining Philosophers (Guest lecture by Shams Imam) |
|
|
| ||||
| Fri | Apr 11 | Lecture 32: Message Passing Interface (MPI) |
|
|
| ||||
13 | Mon | Apr 14 | Lecture 33: Message Passing Interface (MPI, contd) |
| ||||||
| Wed | Apr 16 | Lecture 34: Message Passing Interface (MPI, contd) |
|
|
| ||||
| Fri | Apr 18 | Lecture 35: Cloud Computing, Map Reduce |
|
|
| ||||
14 | Mon | Apr 21 | Lecture 36: Partitioned Global Address Space (PGAS) languages (Guest lecture by Prof. John Mellor-Crummey) |
|
| |||||
| Wed | Apr 23 | Lecture 37: Comparison of Parallel Programming Models |
|
|
| ||||
| Fri | Apr 25 | Lecture 38: Course Review, Take-home Exam 2 distributed | |||||||
- | Fri | May 02 | No lectures this week — Exam 2 due by 4pm today |
|
|
|
|
...