Versions Compared

Key

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

...

Undergrad Max Grossman

Instructor:

Prof. Vivek Sarkar, DH 3131

Graduate TA:

Sanjay Chatterjee Rishi Surendran

 

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

Graduate TA:

Deepak Majeti

Assistant:

Amanda Nokleby, akn3@rice.edu, DH 3137

Graduate TA:

Dragos Sbirlea Max Grossman

  Graduate TA:Kumud Bhandari

 

 

Undergrad TA:

Damien StoneYunming Zhang

Cross-listing:

ELEC 323

Undergrad TA:

Yunming ZhangAnnirudh Prasad

 

 

Research Programmer:

Vincent Cavé

Lectures:

Brockman 101 (new location effective 1/18/2012)Herzstein Hall 212

Lecture times:

MWF 1:00 - 1:50pm

Labs:

Ryon 102

Lab times:

Tuesday, 4:00 - 5:20pm 15pm (Section 3)

 

 

 

Wednesday, 3:30 - 4:50pm (Section 2)

 

 

 

Thursday, 4:00 - 5:20pm 15pm (Section 1)

Introduction

The goal of COMP 322 is to introduce you to the fundamentals of parallel programming and parallel algorithms, using a pedagogical approach that exposes you to the intellectual challenges in parallel software without enmeshing you in low-level details of different parallel systems.  To that end, the main pre-requisite course requirement is COMP 215 or equivalent.  This course should be accessible to anyone familiar with the foundations of sequential algorithms and data structures, and with basic Java programming.  COMP 221 is also recommended as a co-requisite.

...

Lecture Schedule

lec30-audio

 

Day

Date (20122013)

Topic

Slides

Audio (Panopto)

Code Examples

Homework Assigned

Homework Due

1

Mon

Jan 7

Lecture 1: The What and Why of Parallel Programming

 

 

 

 

 

2

Wed

Jan 9

Lecture 2: Async-Finish Parallel Programming and Computation Graphs

lec2-slides

lec2-audio

 

  PrimeSieve.hj

 

 

3

Fri

Jan 11

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

lec3-slides

lec3-audio

ArraySum1.hj

HW2 (HJ Programming Assignment)

     HW1

4

Mon

Jan 14

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

lec4-slides

  lec4-audio   

5

Wed

Jan 16

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

lec5-slides

lec5-audio

   (See Lab 3)  

6

Fri

Jan 18

Lecture 6: Memory Models, Atomic Variables

lec6-slides

lec6-audio

   (See Lab 3)  

-

Mon

Jan 1421

School Holiday

     

7

Wed

Jan 2523

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

lec7-slides

lec7-audio

   ArraySum2.hj  

8

Fri

Jan 2725

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

lec8-slides

lec8-audio

   binarytrees.hj  

9

Mon

Jan 3028

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

lec9-slides

lec9-audio

   nqueens.hj HW2 

10

WedFeb

01Jan 30

Lecture 10: Forasync Chunking, Parallel Prefix Sum algorithm

lec10-slides

  lec10-audio   

11

Fri

Feb 031

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

lec11-slides

  lec11-audio HW3 (HJ Programming Assignment), SeqScoring.hjX.txtY.txtBigSeq.zip 

12

Mon

Feb 0604

Lecture 12: Finish Accumulators, Forall Loops and Barrier Synchronization

lec12-slides

  lec12-audio   

13

Wed

Feb 0806

Lecture 13: Forall Loops and Barrier Synchronization (contd)

lec13-slides

  lec13-audio   

14

Fri

Feb 1008

Lecture 14: Point-to-point Synchronization and Phasers

lec14-slides

  lec14-audio   

15

Mon

Feb 1311

Lecture 15: Phaser Accumulators, Bounded Phasers

lec15-slides

  lec15-audio   

16

Wed

Feb 1513

Lecture 16: Summary of Barriers and Phasers

lec16-slides

  lec16-audio   

17

Fri

Feb 1715

Lecture 17: Task Affinity with Places

lec17-slides

  lec17-audio   

18

Mon

Feb 2018

Lecture 18: Task Affinity with Places (contd)

lec18-slides

  lec18-audio   

19

Wed

Feb 2220

Lecture 19: Midterm Summarylec19-slides

     

-

F

Feb 2422

No Lecture (Take-home Exam 1 due by 4pm today)

    HW3 

-

M-F

Feb 27 25- Mar 0201

Spring Break

 

 

 

 

 

20

Mon

Mar 0504

Lecture 20: Critical sections and the Isolated statement

lec20-slides

  lec20-audio  

 

21

Wed

Mar 0706

Lecture 21: Isolated statement (contd), Monitors, Actors

lec21-slides

  lec21-audio HW4 (HJ Programming Assignment), hw_4.zip 

 

22

Fri

Mar 0908

Lecture 22: Actors (contd)

lec22-slides

lec22-audio

   HJ Actor Examples 

 

23

Mon

Mar 1211

Lecture 23: Linearizability of Concurrent Objects

lec23-slides

  lec23-audio

 

 

 

24

Wed

Mar 1413

Lecture 24: Linearizability of Concurrent Objects (contd)

lec24-slides

  lec24-audio 

 

 

25

Fri

Mar 1615

Lecture 25: Safety and Liveness Properties

lec25-slides

  lec25-audio

 

 

 

26

Mon

Mar 1918

Lecture 26: Parallel Programming Patterns

lec26-slides

  lec26-audio

 

 

 

27

Wed

Mar 2120

Lecture 27: Introduction to Java Threads

lec27-slides

lec27-audio

 

HW5 (Written Assignment) --- HW5.pdf or HW5.doc

HW4

-

Fri

Mar 23

Midterm Recess

    

 

28

MonFri

Mar 2622

Lecture 28: Bitonic Sort (guest lecture by Prof. John Mellor-Crummey)lec28-slides

  

 

 

 

29

WedMon

Mar 2825

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

lec29-slides

  lec29-audio

 

 

 

30

FriWed

Mar 3027

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

lec30-slides

  

 

 

 

-

Fri

Mar 29

Midterm Recess

     

31

Mon

Apr 0201

Lecture 31: Java Executors and Synchronizers

lec31-slides

  lec31-audio 

 

 

32

Wed

Apr 0403

Lecture 32: Volatile Variables and Java Memory Model

lec32-slides

  lec32-audio

 

 

 

33

Fri

Apr 0605

Lecture 33: Message Passing Interface (MPI)

lec33-slides

  lec33-audio

 

 

HW5 

34

Mon

Apr 0908

Lecture 34: Message Passing Interface (MPI, contd)

lec34-slides

  lec34-audio HW6 (Java Programming Assignment) , hw_6.zip 

 

35

Wed

Apr 1110

Lecture 35: Cloud Computing, Map Reduce

lec35-slides

  lec35-audio

 

 

 

36

Fri

Apr 1312

Lecture 36: Map Reduce (contd)

lec36-slides

  lec36-audio

 

 

 

37

Mon

Apr 1615

Lecture 37: Speculative parallelization of isolated blocks (Guest lecture by Prof. Swarat Chaudhuri)lec37-slides

  

 

 

 

38

Wed

Apr 1817

Lecture 38: Comparison of Parallel Programming Models

lec38-slides

  lec38-audio

 

 

 

39

Fri

Apr 2019

Lecture 39: Course Review

lec39-slides

  lec39-audio 

Exam 2 (Take-home)

  HW6

-

Fri

Apr 2725

Exam 2 due

 

 

 

 

Exam 2 

Lab Schedule

Lab #

Date (2011)

Topic

Handouts

Code Examples

Solutions

1

Jan 1008, 1109, 1210

DrHJ setup, Async-Finish Parallel Programming

lab1-handout

  HelloWorld.hjReciprocalArraySum.hjPrimeSieve.hj

 

2

Jan 1715, 1816, 1917

Abstract performance metrics with async & finish

lab2-handout

Search.hj

 

3

Jan 22, 23, 25, 2624

Data race detection and repair

lab3-handout

RacyArraySum1.hjRacyFib.hjRacyNQueens.hjRacyFannkuch.hj

 

4

Jan 29, 30 Feb 01, 0231

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

lab4-handout

nqueens.hjArraySum2.hj

 

5

Feb 0705, 0806, 0907

Data-driven futures

lab5-handout

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

 

6

Feb 1412, 1513, 1614

Barriers and Phasers

lab6-handout

OneDimAveraging.hj

 

-

Feb 2119, 2220, 2321

No lab (Exam 1 week)

 

 

 

7

Mar 05, 06, 07, 08

Atomic Variables and Isolated Statement

lab7-handout

spanning_tree_isolated.hjSortedListExampleGbl.hj

 

8

Mar 12, 13, 14, 15

Actors

lab8-handout

HJ Actor Examples

 

-9

Mar 19, 20, 21, 22

No lab (HW4 deadline, midterm recess)

 

 

 

9

Mar 27, 28, 29

Java Threads

lab9-handout

nqueens.hj spanning_tree_atomic.hj

 
-

Mar 26, 27, 28

No lab (HW4 deadline, midterm recess)

   

10

Apr 02, 03, 04, 05

Java Locks

lab10-handout

lab10.zip

 

11

Apr 09, 10, 11, 12

Message Passing Interface (MPI)

lab11-handout

lab11.zip

 

12

Apr 16, 17, 18, 19

Map Reduce

lab12-handout

WordCount.hj  MapReduce.hjwords.txt Index.hj

 

...