Versions Compared

Key

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

...

Graduate

Instructor:

Prof. Vivek Sarkar, DH 3131

Graduate TA:

Kumud Bhandari

 

Please send all emails to comp322-staff at rice dot edu

Graduate TA:

Deepak MajetiYunming Zhang

Assistant:

Sherry Nassar, sherry.nassar@rice.edu, DH 3137

Graduate TA:

 

 Sriraj Paul

  Undergrad TA:Rishi Surendran

 

 

Undergrad TA:

Annirudh Prasad

Cross-listing:

ELEC 323

Undergrad TA:

Yunming Zhang 

 

 

HJ consultants:

Vincent Cavé, Max Grossman, Shams Imam

Lectures:

Herzstein Hall 212

Lecture times:

MWF 1:00 - 1:50pm

Labs:

Ryon 102

Lab times:

Tuesday, 4:00 - 5:15pm (Section 3, TAs: Kumud Bhandari, Yunming Zhang)

 

 

 

Wednesday, 3:30 - 4:50pm (Section 2, TAs: Deepak Majeti, Sriraj Paul)

 

 

 

Thursday, 4:00 - 5:15pm (Section 1, TAs: Annirudh Prasad, Rishi Surendran)

...

Week

Day

Date (2013)

Topic

Reading

Slides

Audio (Panopto)

Code Examples

Homework Assigned

Homework Due

1

Mon

Jan 7

Lecture 1: The What and Why of Parallel Programming

Module 1: Sections1.1, 1.2, 2.1, 2.2

lec1-slides

lec1-audio

ArraySum0.hj

 

 

 

Wed

Jan 9

Lecture 2: Async-Finish Parallel Programming, Data & Control Flow with Async Tasks, Computation Graphs

Module 1: Sections 1.3, 3.1, 3.2

lec2-slides

lec2-audio 

HW1, quicksort.hj

 

 

Fri

Jan 11

Lecture 3: Computation Graphs (contd), Parallel Speedup, Strong Scaling, Abstract Performance Metrics

Module 1: Sections 3.1, 3.2, 3.3lec3-slides ArraySum1.hj 

2

Mon

Jan 14

Lecture 4: Abstract Performance Metrics (contd), Parallel Efficiency, Amdahl's Law, Weak Scaling

Module 1: Sections 3.3, 3.4lec4-slideslec4-audioSearch2.hj  

 

Wed

Jan 16

Lecture 5: Data Races, Determinism, Memory Models

Module 1: Chapter 4lec5-slides    

 

Fri

Jan 18

Lecture 6: Data races (contd), Futures --- Tasks with Return Values

Module 1: Chapter 4, Section 5.1, 5.2lec6-slideslec6-audio   

3

Mon

Jan 21

No lecture, School Holiday (Martin Luther King, Jr. Day)

      

 

Wed

Jan 23

No lecture, Reading Assignment on Futures: Chapter 5 of Module 1 handout

Module 1: Chapter 5   

HW2, GeneralizedReduce.hj,

GeneralizedReduceApp.hj,

SumReduction.hj,

TestSumReduction.hj

HW1 (due by 5pm on Jan 23rd)

 

Fri

Jan 25

Lecture 7: Futures (contd), Parallel Design Patterns, Finish Accumulators

Module 1: Chapter 5, Chapter 6lec7-slides    

4

Mon

Jan 28

Lecture 8: Parallel N-Queens, Parallel Prefix Sum (Array Reductions with Associative Operators)

Module 1: Chapter 7lec8-slideslec8-audio   

 

Wed

Jan 30

Lecture 9: Abstract vs. Real Performance

Module 1: Chapter 9lec9-slideslec9-audio   

 

Fri

Feb 1

Lecture 10: Abstract vs. Real Performance (contd), seq clause

Module 1: Chapter 9lec10-slideslec10-audio   

5

Mon

Feb 04

Lecture 11: Forasync Loops, Forasync Chunking

Module 1: Sections 8.1, 9.4lec11-slides

   

 

Wed

Feb 06

Lecture 12: Forall Loops, Barrier Synchronization

Module 1: Sections 10.1, 10.2, 10.4lec12-slides   HW2 (due by 5pm on Feb 7th)

 

Fri

Feb 08

Lecture 13: Forall and Barriers, Dataflow Computing, Data-Driven Tasks

Module 1: Chapters 10, 11lec13-slideslec13-audio 

HW3, SeqScoring.hj, X.txt,

Y.txt, BigSeq.zip,

UsefulParScoring.hj, SparseParScoring.hj

 

6

Mon

Feb 11

Lecture 14: Recap of HJ constructs, Point-to-point Synchronization, Pipeline Parallelism, Introduction to Phasers

Module 1: Sections 12.1, 12.2lec14-slideslec14-audio   

 

Wed

Feb 13

Lecture 15: Point-to-point Synchronization with Phasers

Module 1: Section 12.3lec15-slides    

 

Fri

Feb 15

Lecture 16: Phaser Accumulators, Bounded Phasers, Summary of Barriers and Phasers

Module 1: Chapter 12lec16-slideslec16-audio   

7

Mon

Feb 18

Lecture 17: Midterm Summary

 lec17-slideslec17-audio   

 

Wed

Feb 20

Lecture 18: Midterm Summary (contd), Take-home Exam 1 distributed

 lec18-slides    

 

F

Feb 22

No Lecture (Exam 1 due by 5pm today)

     HW3 (due by 11:55pm on Feb 24th)

-

M-F

Feb 25- Mar 01

Spring Break

 

 

 

 

 

 

8

Mon

Mar 04

Lecture 19: Critical sections, Isolated statement, Atomic variables

Module 2: Chapters 1, 2, 4, 6lec19-slideslec19-audio  

 

 

Wed

Mar 06

Lecture 20: Parallel Spanning Tree algorithm, Monitors, Java Concurrent Collections

Module 2: Chapters 3, 7lec20-slideslec20-audio HW4, hw_4.zip

 

 

Fri

Mar 08

Lecture 21: Actors

Module 2: Chapter 8lec21-slideslec21-audio  

 

9

Mon

Mar 11

Lecture 22: Actors (contd), Linearizability of Concurrent Objects

Module 2: Chapters 8, 9lec22-slideslec22-audio

 

 

 

 

Wed

Mar 13

Lecture 23: Linearizability of Concurrent Objects (contd)

Module 2: Chapters 9, 10lec23-slideslec23-audio 

 

 

 

Fri

Mar 15

Lecture 24: Safety and Liveness Properties, Intro to Java Threads

Module 2: Chapters 11, 12lec24-slideslec24-audio

 

 

 

10

Mon

Mar 18

Lecture 25: Java Threads (contd), Java synchronized statement

Module 2: Chapters 12, 13, 14lec25-slides 

 

 

 

 

Wed

Mar 20

Lecture 26: Java synchronized statement (contd), advanced locking

Module 2: Chapter 14lec26-slides   

 

 

Fri

Mar 22

Lecture 27: Speculative parallelization of isolated blocks (Guest lecture by Prof. Swarat Chaudhuri)

 lec27-slides 

 

 

HW4 (due by 11:55pm on March 22nd)

11

Mon

Mar 25

Lecture 28: Java Executors and Synchronizers

 lec28-slideslec28-audio

 

 

 

 

Wed

Mar 27

Lecture 29: Dining Philosophers Problem

 lec29-slides 

 

 

 

-

Fri

Mar 29

Midterm Recess

      

12

Mon

Apr 01

Lecture 30: Task Affinity with Places

 lec30-slideslec30-audio HW5, hw_5.zip

 

 

Wed

Apr 03

Lecture 31: More on Actors: Places, Dining Philosophers (Guest lecture by Shams Imam)

 lec31-slides 

DiningPhilosopher.hj

 

 

 

Fri

Apr 05

Lecture 32: Message Passing Interface (MPI)

 lec32-slideslec32-audio

 

 

 

13

Mon

Apr 08

Lecture 33: Message Passing Interface (MPI, contd)

 lec33-slides   

 

 

Wed

Apr 10

Lecture 34: Message Passing Interface (MPI, contd)

 lec34-slides 

 

 

 

 

Fri

Apr 12

Lecture 35: Cloud Computing, Map Reduce

 lec35-slides 

 

 

HW5 (due by 11:55pm on Sunday, April 14th)

14

Mon

Apr 15

Lecture 36: Partitioned Global Address Space (PGAS) languages (Guest lecture by Prof. John Mellor-Crummey)

 lec36-slides  

HW6

 

 

Wed

Apr 17

Lecture 37: Comparison of Parallel Programming Models

 lec37-slides 

 

 

 

 

Fri

Apr 19

Lecture 38: Course Review, Take-home Exam 2 distributed

 lec38-slides   HW6 (due by 11:55pm on April 19th, penalty-free extension till April 26th)

-

Fri

Apr 26

No lectures this week — Exam 2 due by 4pm today

 

 

 

 

 

 

...

Lab #

Date (2013)

Topic

Handouts

Code Examples

1

Jan 08, 09, 10

Infrastructure setup, Async-Finish Parallel Programming

lab1-handoutHelloWorldError.hj, ReciprocalArraySum.hj

2

Jan 15, 16, 17

Abstract performance metrics with async & finish

lab2-handoutArraySum1.hj, Search2.hj, ArraySum3.hj

3

Jan 22, 23, 24

Data race detection and repair

lab3-handoutRacyArraySum1.hj, RacyFib.hj, RacyParSearch.hj, RacyFannkuch.hj

4

Jan 29, 30, 31

Futures, Finish Accumulators

lab4-handoutArraySum2.hj, ArraySum4.hj, binarytrees.hj

5

Feb 05, 06, 07

Real performance, work-sharing and work-stealing runtimes

lab5-handout,

linux-tutorial-handout

nqueens.hj, OneDimAveraging.hj

6

Feb 12, 13, 14

Barriers, Data-Driven Futures

lab6-handoutData-Driven Future Examples: TestAsyncDDF0.hj, TestAsyncDDF2.hj

-

Feb 19, 20, 21

No lab (HW3 due, Exam 1 assigned)

 

 

7

Mar 05, 06, 07

Isolated Statement and Atomic Variables

lab7-handoutspanning_tree_seq.hj

8

Mar 12, 13, 14

Actors

lab8-handoutPiSerial1.hj, PiSerial2.hj, PiUtil.hj, PiActor1.hj, PiActor2.hj, SieveSerial.hj, Sieve.hj, other-actor-examples

9

Mar 19, 20, 21

Java Threads

lab9-handout
nqueens.hj
, spanning_tree_atomic.hj
10

Mar 26, 27, 28

Java Locks

lab10-handoutlab10.zip

-

Apr 02, 03, 04

No new lab (extra time to complete Lab 10 due to midterm recess)

  

11

Apr 09, 10, 11

Message Passing Interface (MPI)

lab11-handoutlab11.zip

12

Apr 16, 17, 18

Map Reduce

lab12-handout 

...