Versions Compared

Key

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

...

Instructor:

Prof. Vivek Sarkar, DH 30803131

Head TA:Max Grossman

Admin Assistant:

Annepha Hurlock, annepha@rice.edu, DH 3080, 713-348-5186

Graduate TAs:

Prasanth Chatarasi, Arghya Chatterjee, Yuhan Peng, Jonathan Sharman

Co-Instructor:Dr. Mackale JoynerUndergraduate TAs:

Prudhvi Boyapalli, Peter Elmers, Nicholas Hanson-Holtry, Ayush Narayan, Timothy Newton, Alitha Partono, Tom Roush, Hunter Tidwell, Bing Xue

Piazza site:

https://piazza.com/class/iirz0u74egl2q9 (Piazza is the preferred medium for all course communications, but you can also send email to comp322-staff at rice dot edu if needed)

Cross-listing:

ELEC 323

Lecture location:

Herzstein Hall 210

Lecture times:

MWF 1:00pm - 1:50pm (followed by group office hours during 2pm - 3pm, usually in DH 3092)

Lab locations:

DH 1042, DH 1064

Lab times:

Wednesday, 07:00pm - 08:30pm

...

Week

Day

Date (2016)

Topic

Assigned Reading

Assigned Videos (Quizzes due by Friday of each week)

In-class Worksheets

Slides

Work Assigned

Work Due

1

Mon

Jan 09

Lecture 1: Task Creation and Termination (Async, Finish)

Module 1: Section 1.1

Topic 1.1 Lecture, Topic 1.1 Demonstration

worksheet1lec1-slides

 

 

 

Wed

Jan 11

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

 

 

 FriJan 13Lecture 3: Abstract Performance Metrics, Multiprocessor SchedulingModule 1: Section 1.4Topic 1.4 Lecture, Topic 1.4 Demonstrationworksheet3lec3-slides

Homework 1

(2 weeks)

Lecture & demo quizzes for topics 1.1, 1.2, 1.3, 1.4

2

Mon

Jan 16

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

      

 

Wed

Jan 18

Lecture 4:   Parallel Speedup and Amdahl's Law

Module 1: Section 1.5Topic 1.5 Lecture, Topic 1.5 Demonstrationworksheet4lec4-slides  

 

Fri

Jan 20

Lecture 5: Future Tasks, Functional Parallelism

Module 1: Section 2.1Topic 2.1 Lecture ,   Topic 2.1 Demonstrationworksheet5lec5-slides Lecture & demo quizzes for topics 1.5, 2.1 (topic 1.6 is optional)

3

Mon

Jan 23

Lecture 6: Memoization

Module 1: Section 2.2Topic 2.2 Lecture  ,  Topic 2.2 Demonstrationworksheet6lec6-slides

BinomialCoefficient.java

Worksheet5.java

 
 WedJan 25

Lecture 7: Finish Accumulators

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

 

Fri

Jan 27

Lecture 8: 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   worksheet8lec8-slides

Homework 2

Homework 2 JARs (optional)

(2 weeks)

Homework 1, Lecture & demo quizzes for topics 2.2, 2.3, 2.5, 2.6

4

Mon

Jan 30

Lecture 9: Map Reduce

Module 1: Section 2.4Topic 2.4 Lecture  ,  Topic 2.4 Demonstration   worksheet9lec9-slides  

 

Wed

Feb 01

Lecture 10: Java’s Fork/Join LibraryFJP chapter: Sections 7.3 & 7.5 worksheet10lec10-slides

ArraySum.java

ArraySumFourWay.java

 

 

Fri

Feb 03

Lecture 11: Loop-Level Parallelism, Parallel Matrix Multiplication, Iteration Grouping (Chunking)

Module 1: Sections 3.1, 3.2, 3.3

Topic 3.1 Lecture , Topic 3.1 Demonstration , Topic 3.2 Lecture, Topic 3.2 Demonstration, Topic 3.3 Lecture , Topic 3.3 Demonstration

worksheet11lec11-slides Lecture & demo quizzes for topics 2.4, 3.1, 3.2, 3.3

5

Mon

Feb 06

Lecture 12:  Barrier Synchronization

Module 1: Section 3.4Topic 3.4 Lecture , Topic 3.4 Demonstration worksheet12 lec12-slides   

 

Wed

Feb 08

Lecture 13: Iterative Averaging Revisited, SPMD pattern

Module 1: Sections 3.5, 3.6Topic 3.5 Lecture , Topic 3.5 Demonstration , Topic 3.6 Lecture,   Topic 3.6 Demonstration    worksheet13 lec13-slides Worksheet12.java

-

Fri

Feb 10

Spring Recess

      

6

Mon

Feb 13

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

Module 1: Section 4.5Topic 4.5 Lecture ,   Topic 4.5 Demonstration worksheet14 lec14-slides

Homework 3

(5 weeks, with two intermediate checkpoints)

Homework 2, Lecture & demo quizzes for topics 3.4 , 3.5, 3.6, 4.5

 

Wed

Feb 15

Lecture 15: Phasers, Point-to-point Synchronization

Module 1: Sections 4.2, 4.3Topic 4.2 Lecture ,   Topic 4.2 Demonstration, Topic 4.3 Lecture,  Topic 4.3 Demonstration worksheet15 lec15-slides   

 

Fri

Feb 17

Lecture 16: Pipeline Parallelism, Signal Statement, Fuzzy Barriers

Module 1: Sections 4.4, 4.1Topic 4.4 Lecture ,   Topic 4.4 Demonstration, Topic 4.1 Lecture,  Topic 4.1 Demonstration, worksheet16 lec16-slides  Lecture & demo quizzes for topics 4.1, 4.2, 4.3, 4.4

7

Mon

Feb 20

Lecture 17: Midterm Summary

    lec18-slides   

 

Wed

Feb 22

Midterm Review (interactive Q&A only, no lecture)

    Exam 1 held during lab time (7:00pm - 10:00pm), scope of exam limited to lectures 1-17  

 

Fri

Feb 24

Lecture 18: Abstract vs. Real Performance

   worksheet17 lec17-slides  Homework 3 Checkpoint-1, Lecture & demo quizzes for topic 4.6

8

Mon

Feb 27

Lecture 19: Task Scheduling Policies

 Topic 4.6 Lecture ,   Topic 4.6 Demonstration worksheet19 lec19-slides Lec19HelpFirstWorkStealing.java

 

 

Wed

Mar 01

Lecture 20: Critical sections, Isolated construct, Parallel Spanning Tree algorithm (start of Module 2)

Module 2: Sections 5.1, 5.2, 5.3, 5.6Topic 5.1 Lecture, Topic 5.1 Demonstration, Topic 5.2 Lecture, Topic 5.2 Demonstration, Topic 5.3 Lecture, Topic 5.3 Demonstration  worksheet20 lec20-slides  

 

 

Fri

Mar 03

Lecture 21: Atomic variables, Read-Write Isolation

Module 2: Sections 5.4, 5.5Topic 5.4 Lecture, Topic 5.4 Demonstration, Topic 5.5 Lecture, Topic 5.5 Demonstration, Topic 5.6 Lecture, Topic 5.6 Demonstration  worksheet21 lec21-slides  

Homework 3 Checkpoint-2, Lecture & demo quizzes for topics 5.1 to 5.6

9

Mon

Mar 06

Lecture 22:  Parallelism in Java Streams, Parallel Prefix Sums

 

   worksheet22 lec22-slides

 

 

 

Wed

Mar 08

Lecture 23: Java Threads, Java synchronized statement

 Topic 7.1 Lecture, Topic 7.2 Lecture worksheet23 lec23-slides

 

 

 

Fri

Mar 10

Lecture 24: Java synchronized statement (contd), wait/notify

 Topic 7.3 Lecture worksheet24 lec24-slides

 

Homework 3, Lecture quizzes for topics 7.1 - 7.4

-

M-F

Mar 13 - Mar 17

Spring Break

      

10

Mon

Mar 20

Lecture 25: Concurrent Objects, Linearizability of Concurrent Objects

  Topic 7.4 Lecture worksheet25 lec25-slides

Homework 4

(3 weeks, with one intermediate checkpoint)

 

 

Wed

Mar 22

Lecture 26: Linearizability (contd), Java locks

 Topic 7.3 Lecture (recap), Topic 7.4 Lecture (recap) worksheet26 lec26-slides  

 

 

Fri

Mar 24

Lecture 27: Parallel Design Patterns, Safety and Liveness Properties  

 Topic 7.5 Lecture worksheet27 lec27-slides  

Lecture & demo quizzes for topics 7.5

11

Mon

Mar 27

Lecture 28: Actors

 Topic 6.1 Lecture ,   Topic 6.1 Demonstration ,   Topic 6.2 Lecture, Topic 6.2 Demonstration, Topic 6.3 Lecture, Topic 6.3 Demonstration  worksheet28

lec28-slides

  

 

Wed

Mar 29

Lecture 29:  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 Demonstration worksheet29 lec29-slides

Lec29Slide2ThreadRing.java
Lec29Slide4EchoActor.java
Lec29Slide6Pipeline.java
Lec29Slide15ReqReplyActor.java
Lec29Slide15SyncReplyActor.java

 

 

FriApr

01Mar 31

Lecture 30: Java Synchronizers, Dining Philosophers Problem

 Topic 7.6 Lecture worksheet30 lec30-slides  Lecture quiz for topic 7.6

12

Mon

Apr 0403

Lecture 31: Eureka-style Speculative Task Parallelism

   worksheet31 lec31-slides  

Homework 4 Checkpoint-1

 

Wed

Apr 0605

Lecture 32:  Task Affinity with Places (start of Module 3)

   worksheet32 lec32-slides

 

 

 

Fri

Apr 0807

Lecture 33: Message Passing Interface (MPI)

   worksheet33 lec33-slides

 

 

13

Mon

Apr 1109

Lecture 34: Message Passing Interface (MPI, contd)

   worksheet34 lec34-slides  

Homework 4

 

Wed

Apr 1312

Lecture 35: GPU Computing

  worksheet35lec35-slides

Homework 5  

(Due April 22nd, with automatic extension till May 2nd after which slip days may be used)

 

 

Fri

Apr 1514

Lecture 36: Partitioned Global Address Space (PGAS) programming models

  worksheet36

lec36-slides

  

14

Mon

Apr 18NO CLASS TODAY DUE TO INCLEMENT WEATHER17

Lecture 37: Apache Spark framework

   worksheet37 lec37-slides 

 

 

Wed

Apr 2019

Lecture 38: Topic TBD

  37: Apache Spark framework

  worksheet37 lec37-slides 

 

 

 

Fri

Apr 2221

Lecture 3839: Course Review (lectures 20-37), Last day of classes

   lec38-slides 

Homework 5 (automatic extension till May 2nd)

-MonApr 2524Review session / Office Hours, 1pm - 3pm, Herzstein 212 (different room from usual)      
-WedApr 2726Review session / Office Hours, 1pm - 3pm, Herzstein 212 (different room from usual)      
-ThuApr 2928Review session / Office Hours, 1pm - 3pm, Herzstein 212 (different room from usual)      

-

Tue

May 3

Scheduled final exam in Herzstein Hall Auditorium, 9am - 12noon, May 3rd (Exam 2 – scope of exam limited to lectures 2018-37), location and time TBD by registrar

 

 

  

 

 

Lab Schedule

Lab #

Date (2015)

Topic

Handouts

Code Examples

0 Infrastructure Setuplab0-handout-

1

Jan 13

Async-Finish Parallel Programming

lab1-handout, lab1-slides
lab_1.zip

2

Jan 20

Abstract performance metrics with async & finish

lab2-handout, lab2-slides
lab_2.zip

3

Jan 27

DIY HJ-lib Programming, Futures, HJ-Viz 

lab3-handout, lab3-slides lab_3.zip

4

Feb 03

Finish Accumulators and Loop-Level Parallelism

lab4-handout   and lab4-slides   lab_4.zip

5

Feb 10

Loop Chunking and Barrier Synchronization

lab5-handout and lab5-slides lab_5.zip

6

Feb 17

Data-Driven Futures and Phasers

lab6-handout   lab_6.zip

-

Feb 24

No lab this week — Exam 1

--

-

Mar 02

No lab this week — Spring Break

--

7

Mar 09

Isolated Statement and Atomic Variables

lab7-handout  

8

Mar 16

Java Threads

lab8-handout  
9

Mar 23

Java Locks

lab9-handout  

10

Mar 30

Actors and Selectors

lab10-handout  

11

Apr 06

Eureka-style Speculative Task Parallelism

lab11-handout  

12

Apr 13

Message Passing Interface (MPI)

lab12-handout 
13Apr 20Apache Spark
lab13-handout 

...