Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Topic 1.1 Lecture, Topic 1.1 Demonstration

worksheet1lec1-slides

Demo File: ReciprocalArraySum.java

Topic 1.1 Lecture Quiz, Topic 1.1 Demo Quiz

 

 

Wed

Jan 15

Lecture 2:  Computation Graphs, Ideal Parallelism

Module 1: Sections 1.2, 1.3Topic 1.2 Lecture, Topic 1.2 Demonstration, Topic 1.3 Lecture, Topic 1.3 Demonstrationworksheet2lec2-slidesDemo 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.4Topic 1.4 Lecture, Topic 1.4 Demonstrationworksheet3lec3-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.5Topic 1.5 Lecture, Topic 1.5 Demonstrationworksheet4lec4-slidesDemo File: VectorAdd.javaTopic 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.1Topic 2.1 Lecture, Topic 2.1 Demonstrationworksheet5lec5-slidesDemo File(s): ReciprocalArraySumFutures.java, BinaryTreesSeq.java, BinaryTrees.java  

 

Wed

Jan 29

Lecture 6: Finish Accumulators

Module 1: Section 2.3Topic 2.3 Lecture, Topic 2.3 Demonstration worksheet6lec6-slides

Demo File: Nqueens.java

Worksheet5.java, nqueens.java

 

 

 

Fri

Jan 31

Lecture 7: Data Races, Functional & Structural Determinism

Module 1: Sections 2.5, 2.6Topic 2.5 Lecture, Topic 2.5 Demonstration, Topic 2.6 Lecture, Topic 2.6 Demonstration  lec7-slidesDemo File: ReciprocalArraySum.java Homework 1

4

Mon

Feb 03

Lecture 8: Map Reduce

Module 1: Section 2.4Topic 2.4 Lecture, Topic 2.4 Demonstration worksheet8lec8-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.2Topic 2.2 Lecture, Topic 2.2 Demonstrationworksheet9lec9-slides

Demo File: PascalsTriangleWithFuture.java

Worksheet File: PascalsTriangleMemoized.java

Worksheet Solution: PascalsTriangleMemoizedSolution.java

  

 

Fri

Feb 07

Lecture 10: Abstract vs. Real Performance

  worksheet10lec10-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 worksheet11lec11-slidesDemo 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 worksheet12lec12-slidesDemo 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 worksheet13lec13-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 Demonstrationworksheet14lec14-slidesDemo File: DataDrivenFutures4.java Homework 2

 

Wed

Feb 19

Lecture 15: Review of Module-1 HJ-lib API's

  worksheet15lec15-slidesHomework 3 Files: SeqScoring.javaHomework 3 

 

Fri

Feb 21

Lecture 16: Point-to-point Synchronization with Phasers

 Topic 4.2 Lecture, Topic 4.2 Demonstrationworksheet16lec16-slidesDemo File: Phaser3Asyncs.java  

7

Mon

Feb 24

Lecture 17: Phasers (contd), Signal Statement, Fuzzy Barriers

 Topic 4.1 Lecture, Topic 4.1 Demonstration  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

 

 

  

 

 

 

Lab Schedule

...

Lab #

Date (2014)

Topic

Handouts

Code Examples

1

Jan 13, 15

Infrastructure setup, Async-Finish Parallel Programming

lab1-handoutHelloWorldError.java, ReciprocalArraySum.java

-

Jan 20, 22

No lab this week — Jan 20 is Martin Luther King, Jr. Day

  

2

Jan 27, 29

Abstract performance metrics with async & finish

lab2-handoutArraySum1.java, ArraySumUtil.java Search2.java, ArraySumLoop.java, ArraySumRecursive.java

3

Feb 03, 05

Futures

lab3-handoutArraySum2.java, ArraySum4.java, BinaryTrees.java

4

Feb 10, 12

Real Performance from Finish Accumulators and Loop-Level Parallelism

lab4-handout

Nqueens.java, OneDimAveraging.java, Linux/Sugar Tutorial

5

Feb 17, 19

Futures Vs Data-Driven Futures

lab5-handoutMatrixEval.java, test.txt

6

Feb 24, 26

Barriers and Phasers

 lab6-handout

-

Mar 03, 05

No lab this week — Spring Break

  

7

Mar 10, 12

Isolated Statement and Atomic Variables

  

8

Mar 17, 19

Actors

  
9

Mar 24, 26

Java Threads

  

10

Mar 31, Apr 02

Java Locks

  

11

Apr 07, 09

Message Passing Interface (MPI)

  

12

Apr 14, 16

Map Reduce

  

...