Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reverted from v. 251

...

 

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

lec1-slides

 

ArraySum0.hj

 

HW1 (Written Assignment)

 

2

Wed

Jan 11

Lecture 2: Async-Finish Parallel Programming and Computation Graphs

lec2-slides

lec2-audio

PrimeSieve.hj

 

 

 

3

Fri

Jan 13

Lecture 3: Computation Graphs, Abstract Performance Metrics, Array Reductions

lec3-slides

lec3-audio

ArraySum1.hj

 

HW2 (Programming Assignment)

HW1

-

Mon

Jan 16

School Holiday

 

 

 

 

 

 

4

Wed

Jan 18

Lecture 4: Parallel Speedup, Efficiency, Amdahl's Law

lec4-slides

lec4-audio

 

 

 

 

5

Fri

Jan 20

Lecture 5: Data & Control Flow with Async Tasks, Data Races

lec5-slides

lec5-audio

(See Lab 3)

 

 

 

6

Mon

Jan 23

Lecture 6: Memory Models, Atomic Variables

lec6-slides

lec6-audio

(See Lab 3)

 

 

 

7

Wed

Jan 25

Lecture 7: Memory Models (contd), Futures --- Tasks with Return Values

lec7-slides

lec7-audio

ArraySum2.hj

 

 

 

8

Fri

Jan 27

Lecture 8: Futures (contd), Dataflow Programming, Data-Driven Tasks

lec8-slides

lec8-audio

binarytrees.hj

 

 

 

9

Mon

Jan 30

Lecture 9: Abstract vs. Real Performance, seq clause, forasync loops

lec9-slides

lec9-audio

nqueens.hj

 

 

HW2

10

Wed

Feb 01

Lecture 10: Forasync Chunking, Parallel Prefix Sum algorithm

lec10-slides

lec10-audio

OneDimAveraging.hj

 


 

11

Fri

Feb 03

Lecture 11: Parallel Prefix Sum (contd), Parallel Quicksort

lec11-slides

lec11-audio

 

 

HW3 (Programming Assignment)SeqScoring.hjX.txtY.txt

 

12

Mon

Feb 06

Lecture 12: Finish Accumulators, Forall Loops and Barrier Synchronization

lec12-slides

lec12-audio

 

 

 

 

13

Wed

Feb 08

Lecture 13: Forall Loops and Barrier Synchronization (contd)

lec13-slides

lec13-audio

[OneDimAveraging.h

 

 

 

 

14

Fri

Feb 10

^OneDimAveraging.hj]j
| | | ||
|| 14 | Fri | Feb 10 | Lecture 14: Point-to-point Synchronization and Phasers |

lec14-slides

| lec14-audio | [OneDimAveraging.h

 

 

 

 

15

Mon

Feb 13

^OneDimAveraging.hj]j
| | | ||
|| 15 | Mon | Feb 13 | Lecture 15: Point-to-point Synchronization and Phasers (contd) | | | | | | ||
|| 16 | Wed | Feb 15 |

 

 

 

 

 

 

16

Wed

Feb 15

Lecture 16: Advanced Phaser topics | | | | | |

 

 

 

 

 

 

17

Fri

Feb 17

||
|| 17 | Fri | Feb 17 | Lecture 17: Parallel Bitonic Sort

 

 

 

 

 

 

18

Mon

Feb 20

| | | | | | ||
|| 18 | Mon | Feb 20 | Lecture 18: Java Concurrent Collections

 

 

 

 

 

 

19

Wed

Feb 22

| | | | | | ||
|| 19 | Wed | Feb 22 | Lecture 19: Midterm Summary | | | | | | HW3

 

 

 

 

 

HW3

-

Fri

Feb 24

||
|| - | Fri | Feb 24 | Exam 1 (in class)

 

 

 

 

 

 

-

| | | | | | ||
|| - | M-F |

Feb 27 - Mar 02 | Spring Break | | | | | | ||

Spring Break

 

 

 

 

 

 

20

Mon

Mar 05

|| 20 | Mon | Mar 05 | Lecture 20: Critical sections and the Isolated statement

 

 

 

 

HW4

 

21

Wed

Mar 07

| | | | | HW4 | ||
|| 21 | Wed | Mar 07 | Lecture 21: Isolated statement (contd) | | | | | | |

 

 

 

 

 

 

22

Fri

Mar 09

|
|| 22 | Fri | Mar 09 | Lecture 22: Linearizability of Concurrent Objects

 

 

 

 

 

 

23

Mon

Mar 12

| | | | | | ||
|| 23 | Mon | Mar 12 | Lecture 23: Task Affinity with Places | | | | | | ||
|

 

 

 

 

 

 

24

Wed

Mar 14

| 24 | Wed | Mar 14 | Lecture 24: Task Affinity with Places, contd.

 

 

 

 

 

 

25

Fri

Mar 16

| | | | | | ||
|| 25 | Fri | Mar 16 | Lecture 25: Map Reduce

 

 

 

 

 

 

26

Mon

Mar 19

| | | | | | ||
|| 26 | Mon | Mar 19 | Lecture 26: Map Reduce, contd. | | | | | | HW4 ||

 

 

 

 

 

HW4

27

Wed

Mar 21

|| 27 | Wed | Mar 21 | Lecture 27: Dataflow Programming with Intel Concurrent Collections | | | | | HW5 | ||
|| - | Fri | Mar 23 | Midterm Recess | | | | | | ||
|| 28 | Mon

 

 

 

 

HW5

 

-

Fri

Mar 23

Midterm Recess

 

 

 

 

 

 

28

Mon

Mar 26

Lecture 28: Java Threads

 

 

 

 

 

 

29

Wed

Mar 28

| Mar 26 | Lecture 28: Java Threads | | | | | | ||
|| 29 | Wed | Mar 28 | Lecture 29: Java Threads (contd), synchronized statement | | | | | | ||
|

 

 

 

 

 

 

30

Fri

Mar 30

| 30 | Fri | Mar 30 | Lecture 30: Java synchronized statement with wait/notify

 

 

 

 

 

 

31

Mon

Apr 02

| | | | | | ||
|| 31 | Mon | Apr 02 | Lecture 31: Advanced locking in Java | | | | | | |

 

 

 

 

 

 

32

Wed

Apr 04

|
|| 32 | Wed | Apr 04 | Lecture 32: Java Executors and Synchronizers | | | | | | HW5

 

 

 

 

 

HW5

33

Fri

Apr 06

||
|| 33 | Fri | Apr 06 | Lecture 33: Volatile Variables and Java Memory Model

 

 

 

 

HW6

 

34

Mon

Apr 09

| | | | | HW6 | ||
|| 34 | Mon | Apr 09 | Lecture 34: GPGPU programming with CUDA

 

 

 

 

 

 

35

Wed

Apr 11

| | | | | | ||
|| 35 | Wed | Apr 11 | Lecture 35: CUDA contd. | | | | | | |

 

 

 

 

 

 

36

Fri

Apr 13

|
|| 36 | Fri | Apr 13 | Lecture 36: Liveness and Progress Guarantees

 

 

 

 

 

 

37

Mon

Apr 16

| | | | | | ||
|| 37 | Mon | Apr 16 | Lecture 37: Introduction to MPI | | | | | | ||

 

 

 

 

 

 

38

Wed

Apr 18

|| 38 | Wed | Apr 18 | Lecture 38: Introduction to MPI (contd) |

 

 

 

 

 

 

39

Fri

Apr 20

| | | | | ||
|| 39 | Fri | Apr 20 | Lecture 39: Course Summary

 

 

 

 

| | | | | Exam 2 (Take-home) |

HW6 || ||

-

| Fri

| Apr 27

| Exam 2 due | | | | | | Exam 2 ||
h2.

 

 

 

 

 

Exam 2

Lab Schedule

|| || || || || || || ||

Lab #

Date (2011)

Topic

Handouts

Code Examples

Solutions

1

| Jan 10, 11, 12

| DrHJ setup, Async-Finish Parallel Programming |

lab1-handout

| HelloWorld.hjReciprocalArraySum.hjPrimeSieve.hj
|

TwoWayParallelPrimeSieve.hj

2

||
|| 2 | Jan 17, 18, 19 |

Abstract performance metrics with async & finish |

lab2-handout

| Search.hj
| ||

  ||

3

| Jan 23, 25, 26 |

Data race detection and repair |

lab3-handout |

RacyArraySum1.hjRacyFib.hjRacyNQueens.hjRacyFannkuch.hj

 

4

| ||
|| 4 | Jan 30 Feb 01, 02 |

Real performance, work-sharing and work-stealing runtimes, futures |

lab4-handout

| nqueens.hjArraySum2.hj
| ||

  ||

5

| Feb 07, 08, 09 |

Data-driven futures
|

lab5-handout

| MatrixEval.hj, test0.txt, test.txtDDFEx.hj
|

MatrixEvalDDF.hj

6

||
|| 6 | Feb 14, 15, 16 |

Barriers and Phasers

 

 

 

-

| | | ||
|| - | Feb 21, 22, 23 |

No lab (midterm week)

 

 

 

7

| | | ||
|| 7 | Mar 06, 07, 08 |

Atomic Variables

 

 

 

8

| | | ||
|| 8 | Mar 13, 14, 15 | Places

Places

 

 

 

9

| | | ||
|| 9 | Mar 20, 21, 22 |

Data Driven Tasks

 

 

 

10

| | | ||
|| 10 | Mar 27, 28, 29 |

Java Concurrency I

 

 

 

11

| | | ||
|| 11 | Apr 03, 04, 05 |

Java Concurrency II

 

 

 

12

| | | ||
|| 12 | Apr 10, 11, 12 | CUDA

CUDA

 

 

 

13

| | | ||
|| 13 | Apr 17, 18, 19 | MPI | | | ||
h2.

MPI

 

 

 

Grading, Honor Code Policy, Processes and Procedures

Grading will be based on your performance on homeworks (worth 50%) and exams (20% for first exam, and 30% for the second exam).

The purpose of the homeworks is to train you to solve problems and to help deepen your understanding of concepts introduced in class. Homeworks and programming assignments are due on the dates and times specified in the course schedule. Please turn in all your homeworks using the CLEAR turn-in system. Homework is worth full credit when turned in on time. A 10% penalty per day will be levied on late homeworks, up to a maximum of 6 days. No submissions will be accepted more than 6 days after the due date.

...