Versions Compared

Key

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

...

Instructor:

Prof. Vivek Sarkar, DH 3131

  

Co-Instructor:

Dr. Eric Allen

Graduate TAs:

Prasanth Chatarasi, Peng Du, Xian Fan, Max Grossman

 Please send all emails to comp322-staff at rice dot eduUndergraduate TAs:Matthew Bernhard, Nicholas Hanson-Holtry, Yi Hua,

 

 

 

Yoko Li, Ayush Narayan, Derek Peirce, Maggie Tang,

Cross-listing:

ELEC 323

 

Bing XueMaggie Tang, Wei Zeng, Glenn Zhu

 

 

Course consultants:

Vincent Cavé, John Greiner, Shams Imam

Lectures:

Herzstein Hall 210

Lecture times:

MWF 1:00pm - 1:50pm

Labs:

DH 1064 (Section A01), DH 1070 (Section A02)

Lab times:

Wednesday, 07:00pm - 08:30pm

...

The prerequisite course requirements are COMP 182 and COMP 215.  COMP 322 should be accessible to anyone familiar with the foundations of sequential algorithms and data structures, and with basic Java programming.  COMP 221321 is also recommended as a co-requisite.  

...

Lecture Schedule

Demo File: Search.java Demo File: ReciprocalArraySum.java

Demo File: OneDimAveragingGrouped.java, OneDimAveragingBarrier.java

Worksheet File: OneDimAveragingBarrier.javaDemo File: Phaser3Asyncs.java  

Week

Day

Date (2015)

Topic

Assigned Reading

Assigned Videos

In-class Worksheets

Slides

Code Examples

Work Assigned

Work Due

1

Mon

Jan 12

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 14

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-slides  

Topic 1.2 Lecture Quiz , Topic 1.2 Demo Quiz , Topic 1.3 Lecture Quiz , Topic 1.3 Demo Quiz

 

 

Fri

Jan 16

Lecture 3: , Abstract Performance Metrics, Multiprocessor Scheduling

Module 1: Section 1.4Topic 1.4 Lecture, Topic 1.4 Demonstrationworksheet3 lec3-slides

Worksheet File: Search.java

Homework 1 Files: QuicksortUtil.java , QuicksortSeq.java , QuicksortPar.java

 Homework 1, Topic 1.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 19

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

      

 

Wed

Jan 21

Lecture 4:   Parallel Speedup and Amdahl's Law

Module 1: Section 1.5Topic 1.5 Lecture, Topic 1.5 Demonstrationworksheet4 lec4-slidesDemo File: VectorAdd.java Topic 1.5 Lecture Quiz , Topic 1.5 Demo Quiz 

 

Fri

Jan 23

No lecture (inclement weather)

      All 12 lecture & demo quizzes in Unit 1 are due by 5pm CST today

3

Mon

Jan 26

Lecture 5: Future Tasks, Functional Parallelism

Module 1: Section 2.1Topic 2.1 Lecture , Topic 2.1 Demonstrationworksheet5 lec5-slidesDemo File(s): ReciprocalArraySumFutures.java, BinaryTreesSeq.java, BinaryTrees.java   

 

WedFri

Jan 2830

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 30

Lecture 7: Data Races, 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-slides  Homework 1

4

Mon

Feb 02

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  Homework 2 

 

Wed

Feb 04

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 06

Lecture 10: Abstract vs. Real Performance

  worksheet10lec10-slides    

5

Mon

Feb 09

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-slidesDemo File: ForallWithIterable.java, VectorAddForall.java, MatrixMultiplicationMetrics.java   

 

Wed

Feb 11

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-slidesDemo File: MatrixMultiplicationPerformance.java, BarrierInForall.java   

 

Fri

Feb 13

Lecture 13: Iterative Averaging Revisited

 Topic 3.5 Lecture , Topic 3.5 Demonstration , Topic 3.6 Lecture , Topic 3.6 Demonstration  worksheet13lec13-slides  

 

 

6

Mon

Feb 16

Lecture 14: Data-Driven Tasks and Data-Driven Futures

 Topic 4.5 Lecture , Topic 4.5 Demonstrationworksheet14 lec14-slidesDemo File: DataDrivenFutures4.java  Homework 2

 

Wed

Feb 18

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

  worksheet15 lec15-slides Homework 3 Files: SeqScoring.java Homework 3 

 

Fri

Feb 20

Lecture 16: Point-to-point Synchronization with Phasers

 Topic 4.2 Lecture , Topic 4.2 Demonstrationworksheet16lec16-slides    

7

Mon

Feb 23

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

 Topic 4.1 Lecture , Topic 4.1 Demonstrationworksheet17 lec17-slidesDemo File: PhaserSignal.java   

 

Wed

Feb 25

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

   lec18-slides Exam 1 

 

F

Feb 27

No Lecture (Exam 1 due by 4pm today)

     Exam 1

-

M-F

Feb 28- Mar 08

Spring Break

 

 

  

 

 

8

Mon

Mar 09

Lecture 19: Critical sections, Isolated construct, Parallel Spanning Tree algorithm

 Topic 5.1 Lecture, Topic 5.1 Demonstration, Topic 5.2 Lecture, Topic 5.2 Demonstration, Topic 5.3 Lecture, Topic 5.3 Demonstrationworksheet19lec19-slides   

 

 

Wed

Mar 11

Lecture 20: Speculative parallelization of isolated constructs (Guest lecture by Prof. Swarat Chaudhuri)

  worksheet20lec20-slides   

Homework 3

 

Fri

Mar 13

Lecture 21: Read-Write Isolation, Atomic variables

 Topic 5.4 Lecture , Topic 5.4 Demonstration , Topic 5.5 Lecture, Topic 5.5 Demonstration, Topic 5.6 Lecture, Topic 5.6 Demonstrationworksheet21lec21-slides   

 

9

Mon

Mar 16

Lecture 22: Actors

 Topic 6.1 Lecture, Topic 6.1 Demonstration, Topic 6.2 Lecture, Topic 6.2 Demonstration, Topic 6.3 Lecture, Topic 6.3 Demonstrationworksheet22 lec22-slides 

Homework 4 Files: hw4_files.zip  

Homework 4

 

 

 

Wed

Mar 18

Lecture 23: Actors (contd)

 Topic 6.4 Lecture , Topic 6.4 Demonstration , Topic 6.5 Lecture, Topic 6.5 Demonstration, Topic 6.6 Lecture, Topic 6.6 Demonstrationworksheet23 lec23-slides 

 

 

 

Fri

Mar 20

Lecture 24: Monitors, Java Concurrent Collections, Linearizability of Concurrent Objects

 Topic 7.4 Lectureworksheet24lec24-slides  

 

 

10

Mon

Mar 23

Lecture 25: Linearizability (contd), Intro to Java Threads

 Topic 7.1 Lectureworksheet25 lec25-slides 

 

 

 

Wed

Mar 25

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

 Topic 7.2 Lectureworksheet26lec26-slides   

 

 

Fri

Mar 27

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

 Topic 7.3 Lectureworksheet27lec27-slides  

 

 

11

Mon

Mar 30

Lecture 28: Safety and Liveness Properties

 Topic 7.5 Lectureworksheet28 lec28-slides 

 

 

 

Wed

Apr 01

Lecture 29: Dining Philosophers Problem

 Topic 7.6 Lectureworksheet29lec29-slides  

 

Homework 4 (due by 11:55pm on April 2nd)

-

Fri

Apr 03

Midterm Recess

       

12

Mon

Apr 06

Lecture 30: Message Passing Interface (MPI)

  worksheet30 lec30-slides Homework 5 files: hw5_files.zipHomework 5

 

 

Wed

Apr 08

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

  worksheet31lec31-slides  

 

 

 

Fri

Apr 10

Lecture 32: Message Passing Interface (MPI, contd)

  worksheet32lec32-slides  

 

 

13

Mon

Apr 13

Lecture 33: Task Affinity with Places

  worksheet33 lec33-slides  

 

 

Wed

Apr 15

Lecture 34: GPU Computing

  worksheet34lec34-slides  

 

 

 

Fri

Apr 17

Lecture 35: Memory Consistency Models

  worksheet35 

lec35-slides

Homework 6 (written only)

 

 

14

Mon

Apr 20

Lecture 36: Comparison of Parallel Programming Models

  worksheet36lec36-slides  

 

Homework 5 (due by 11:55pm on Monday, April 21st)

 

Wed

Apr 22

NO CLASS (time allocated to work on homeworks)

    

 

 

 

 

Fri

Apr 24

Lecture 37: Course Review (lectures 19-35), Take-home Exam 2 distributed, Last day of classes

   lec37-slides Exam 2Homework 6 (due by 11:55pm on April 25th, penalty-free extension till May 2nd)

-

Fri

May 01

Exam 2 due by 4pm today

 

 

  

 

 

Exam 2

Lab Schedule

Lab #

Date (2015)

Topic

Handouts

Code Examples

1

Jan 14

Infrastructure setup, Async-Finish Parallel Programming

lab1-handout  lab_1.zip

-

Jan 21

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

  

2

Jan 28

Abstract performance metrics with async & finish

lab2-handout  ArraySum1.java , ArraySumUtil.java Search2.java , ArraySumLoop.java , ArraySumRecursive.java

3

Feb 04

Futures

lab3-handout  ArraySum2.java, ArraySum4.java, BinaryTrees.java

4

Feb 11

Real Performance from Finish Accumulators and Loop-Level Parallelism

lab4-handout

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

  

5

Feb

5

Feb 18

Futures vs. Data-Driven Futures

lab5-handout  MatrixEval.java, test.txt

6

Feb 25

Barriers and Phasers

lab6-handout  OneDimAveraging.java

-

Mar 04

No lab this week — Spring Break

  

7

Mar 11

Isolated Statement and Atomic Variables

lab7-handout  spanning_tree_seq.java

8

Mar 18

Actors

lab8-handout  PiSerial1.java PiActor1.java PiSerial2.java PiActor2.java PiUtil.java Sieve.java SieveSerial.java
9

Mar 25

Java Threads

lab9-handout  nqueens_hj.java spanning_tree_atomic_hj.java

10

Apr 01

Java Locks

lab10-handout  lab10.zip

11

Apr 08

Message Passing Interface (MPI)

lab11-handout  lab_11.zip

12

Apr 15

Map Reduce

lab12-handout  
-Apr 22No lab this week — Last Week of Classes  

...