Versions Compared

Key

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

COMP 322: Fundamentals of Parallel Programming (Spring

...

2020)

 

Instructor:

Mackale Joyner, DH 20712063

Head TA:Srdan Milakovic

Co-Instructor:

Zoran Budimlić, DH 3134

Graduate TAs:Jonathan SharmanCai (hw), Paul Jiang (lab 1pm), William Su (lab 4pm)
Admin Assistant:Annepha Hurlock, annepha@rice.edu, DH 3122, 713-348-5186Undergraduate TAs:

Liam Bonnage, Harrison BrownKrishna Goel, Ryan Green, Ryan Han, Rishu Harpavat, Namanh Kapur, Tian Lan, Tam Le, Eva Ma, Hamza Nauman, Rutvik Patel, Aryan Sefidi,Tory Songyang, Jiaqi Wang, Erik Yamada, Yifan Yang Zishi Wang

Piazza site:

https://piazza.com/class/jmwfpr1i85n7l4configure-classes/spring2020/comp322 (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:

Herring Sewell Hall 100301

Lecture times:

MWF 1:00pm - 1:50pm

Lab locations:

Herring Sewell Hall 100301

Lab times:

Thursday, 4, 1:00pm - 1:50pm, 4:00pm - 4:50pm

Course Syllabus

...

There are no required textbooks for the class. Instead, lecture handouts are provided for each module as follows.  You are expected to read the relevant sections in each lecture handout before coming to the lecture.  We will also provide a number of references in the slides and handouts.The links to the latest versions of the lecture handouts are included below:

  • Module 1 handout (Parallelism)
  • Module 2 handout (Concurrency)
  • There is no lecture handout for Module 3 (Distribution and Locality).  The instructors will refer you to optional resources to supplement the lecture slides and videos.

...

Lecture Schedule

 

Fri 18Memoization 2 2 3lec11-slides5Wed 06 13Lecture 14  Quiz for Unit  lec23-slides Mar 11 - Mar 15 10lec25-slidesWed 20lec27 28: Message Passing Interface (MPI), (start of Module 3)Topic 8 8, Topic 8.3 Lecture,

Week

Day

Date (20182020)

Lecture

Assigned Reading

Assigned Videos (see Canvas site for video links)

In-class Worksheets

Slides

Work Assigned

Work Due1

  

1

Mon

Jan 0713

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 0915

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

Homework 1

 

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

 

   

2

Mon

Jan 20

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

        

 

Wed

Jan 22 14

Lecture 4:    Parallel Speedup and Amdahl's Law

Module 1: Section 1.5Topic 1.5 Lecture, Topic 1.5 Demonstrationworksheet4 lec4-slides Quiz for Unit 1   

 

FriWed

Jan 1624

Lecture 5: Future Tasks, Functional Parallelism ("Back to the Future")Module 1: Section 2.1Topic 2.1 Lecture, Topic 2.1 Demonstrationworksheet5lec5-slides  Quiz for Unit 1  

3

Mon

Jan

27

Lecture 6:  

Finish Accumulators

Module 1: Section 2.23Topic 2.3 Lecture, Topic 2.3 Demonstrationworksheet6lec6-slides  

Mon

Jan 21

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

      
 WedJan 2329

Lecture 7: Finish Accumulators Map Reduce

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

Homework 2

Homework 1 

Fri

Jan 25

Lecture 8: Map Reduce

Module 1: Section 2.4Topic 2.4 Lecture, Topic 2.4 Demonstration 

 

Fri

Jan 31

Lecture 8

worksheet8lec8-slides

 

Quiz for Unit 1

4

Mon

Jan 28

Lecture 9: Data Races, Functional & Structural Determinism

Module 1: Sections Section 2.5, 2.6Topic 2.5 Lecture, Topic 2.5 Demonstration, Topic 2.6 Lecture, Topic 2.6 Demonstration   worksheet9worksheet8lec9lec8-slides

 

 Quiz for Unit 1  

4

Mon

Feb 03

Wed

Jan 30

Lecture

10

9: Java’s Fork/Join Library

Module 1: Sections 2.7, 2.8Topic 2.7 Lecture, Topic 2.8 Lecture,worksheet10worksheet9lec10lec9-slidesQuiz for Unit 2   

 

WedFri

Feb 0105

Lecture 1110: Loop-Level Parallelism, Parallel Matrix Multiplication, Iteration Grouping (Chunking) Module 1: Sections 3.1, 3.2, 3.3Topic 3.1 Lecture , Topic 3.1 Demonstration ,  Topic 3.2 Lecture,  Topic 3.2 Demonstration , Topic 3.3 Lecture , Topic 3.3 Demonstration worksheet11worksheet10lec10-slides    Mon

 

Feb 04Fri

Feb 07

Lecture 12: 11: Iteration Grouping (Chunking), Barrier Synchronization

Module 1: Section Sections 3.3, 3.4

Topic 3.3 Lecture , Topic 3.3 Demonstration, Topic 3.4 Lecture  ,   Topic 3.4 Demonstration

worksheet12worksheet11lec12lec11-slides    

5

Mon

Feb

10

Lecture

12:  Parallelism in Java Streams, Parallel Prefix Sums

 Module 1: Section 3.7Topic Topic 3.7 Java Streams, Topic 3.7 Java Streams Demonstrationworksheet13worksheet12lec13lec12-slides

Homework 3 (includes 2 intermediate checkpoints)

Homework 2

-

Fri

Feb 08

 Quiz for Unit 2Spring Recess   
    

Wed

Feb 12

Lecture 13

6

Mon

Feb 11

: 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 Demonstrationworksheet14 worksheet13lec14lec13-slides

Homework 3 (includes 2 intermediate checkpoints)

Quiz for Unit 3

Homework 2  

-

FriWed

Feb 1314

Spring Recess

        

6

Mon

Feb 17

Lecture 14: DataLecture 15:  Data-Driven Tasks 

Module 1: Section Sections 4.5Topic 4.5 Lecture   Topic 4.5 Demonstrationworksheet15worksheet14lec15lec14-slides    

 

WedFri

Feb 1519

Lecture 1615:  Point-to-point Synchronization with Phasers

Module 1: Sections Section 4.2, 4.3Topic 4.2 Lecture ,   Topic 4.2 Demonstration, Topic 4.3 Lecture,  Topic 4.3 Demonstrationworksheet16worksheet15lec16lec15-slides  Quiz for Unit 3

7

Mon

Feb 18

Lecture 17: Midterm Summary

   lec17-slides  
  

 

Fri

Feb 21

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 Demonstrationworksheet16lec16-slidesQuiz for Unit 4Quiz for Unit 3  

7

Mon

Feb 24

Lecture 17: Midterm Review

   lec17-slides

 

Wed

Feb 20

Midterm Review (interactive Q&A)

     

 

FriWed

Feb 2226

Lecture 18: Abstract vs. Real Performance

  worksheet18 lec18-slides  Homework 3, Checkpoint-1   

 

Fri

Feb 28

8

Mon

Feb 25

Lecture 19: Pipeline Parallelism, Signal Statement, Fuzzy Barriers

Module 1: Sections 4.4, 4.1

Critical Sections, Isolated construct (start of Module 2)

Module 2: Sections 5.1, 5.2, 5.6, Topic 5.1 Lecture, Topic 5.1 Demonstration, Topic 5.2 Lecture, Topic 5.2 Demonstration, Topic 5.6 Lecture, Topic 5.6 DemonstrationTopic 4.4 Lecture ,   Topic 4.4 Demonstration, Topic 4.1 Lecture,  Topic 4.1 Demonstration,worksheet19lec19-slides Homework 3, Checkpoint-1Quiz for Unit 4  

8

WedMon

Feb 27Mar 02

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

Module 2: Sections 5.1, 5.2, 5.3, 5.4, 5.65Topic 5.1 Lecture, Topic 5.1 Demonstration, Topic 5.2 Lecture, Topic 5.2 Demonstration, Topic 5.3 Lecture, Topic 5.3 Demonstration, Topic 5.4 Lecture, Topic 5.4 Demonstration, Topic 5.6 5 Lecture, Topic 5.6 5 Demonstrationworksheet20lec20-slides 

 

  

 

FriWed

Mar 0104

Lecture 21:   Read-Write Isolation, Review of Phasers Actors

Module 2: Section 5.5Topic 5.5 Lecture, Topic 5.5 Demonstrationworksheet21 lec21-slidesQuiz for Unit 5

Quiz for Unit 4

9

Mon

Mar 04

Lecture 22: Actors

Module 2: 6.1, 6.6.1, 6.2

Topic 6.1 Lecture ,   Topic 6.1 Demonstration ,   Topic 6.2 Lecture, Topic 6.2 Demonstration

worksheet22 worksheet21lec22lec21-slides 

 

  

 

FriWed

Mar 06

Lecture 2322:   Actors (contd)

Module 2: 6.3, 6.4, 6.5, 6.6Topic 6.3 Lecture, Topic 6.3 Demonstration, Topic 6.4 Lecture , Topic 6.4 Demonstration,   Topic 6.5 Lecture, Topic 6.5 Demonstration , Topic 6.6 Lecture, Topic 6.6 Demonstrationworksheet23 worksheet22 lec22-slides 

Quiz for Unit 6Homework 3, Checkpoint-24

  

9

MonFri

Mar 08

Lecture 24: Java Threads, Java synchronized statement

Module 2: 7.1, 7.2Topic 7.1 Lecture, Topic 7.2 Lectureworksheet24lec24-slides

09

No class

    

Quiz for Unit 5

-

M-F

Spring Break

 

 

  

 

Wed

Mar 11

MonNo class

Mar 18

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

Module 2: 7.2Topic 7.2 Lectureworksheet25    

 

 

  

 

Fri

Mar 13

No class

        
-

M-F

Mar 16 - Mar 20

Spring Break

Lecture 26: Java Locks, Linearizability of Concurrent Objects

Module 2: 7.3, 7.4Topic 7.3 Lecture, Topic 7.4 Lectureworksheet26 lec26-slides

Homework 4

(includes one intermediate checkpoint)

 

 

       Homework 3 (all) 

10

FriMon

Mar 2223

Lecture 27: Safety and Liveness Properties, Java Synchronizers, Dining Philosophers Problem23: Actors (contd)

Module 2: 76.5, 7.6Topic 76.5 6 Lecture, Topic 76.6 LectureDemonstrationworksheet27 lec23-slidesQuiz for Unit 7

Quiz for Unit 6

 

 

 

  
 

Wed

11

Mon

Mar 25

Lecture

24: Java Threads, Java synchronized statement

Module 2: 7.1, 7.2Topic 7 .1 Lecture, Topic 7.2 Lecture lec24worksheet28lec28-slides

 

 

   

 

FriWed

Mar 27

Lecture 29:  Message Passing Interface (MPI, contd)

 Topic 8.4 Lecture, Topic 8.5 Lecture, Topic 8 Demonstration Videoworksheet29 lec29-slides

Quiz for Unit 8

 

 

Fri

Mar 29

Lecture 30: Distributed Map-Reduce using Hadoop and Spark frameworks

 Topic 9.1 Lecture (optional, overlaps with video 2.4), Topic 9.2 Lecture, Topic 9.3 Lectureworksheet30 lec30-slides  Quiz for Unit 7

12

Mon

Apr 01

Lecture 31: TF-IDF and PageRank Algorithms with Map-Reduce

 Topic 9.4 Lecture, Topic 9.5 Lecture, Unit 9 Demonstrationworksheet31 lec31-slides Quiz for Unit 9

 

 

Wed

Apr 03

Guest Lecture

    

 

Homework 4 Checkpoint-1

 

Fri

Apr 05

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

 Lectures 10.1 - 10.5, Unit 10 Demonstration (all videos optional – unit 10 has no quiz)worksheet32lec32-slides

 

Quiz for Unit 8

13

Mon

Apr 08

Lecture 33: Combining Distribution and Multithreading

  worksheet33lec33-slides 

25: Java Threads, Java synchronized statement (contd), wait/notify

Module 2: 7.1, 7.2Topic 7.1 Lecture, Topic 7.2 Lecture lec25-slides  

Homework 3, Checkpoint-2

  

11

Mon

Mar 30

Lecture 26: Java Threads (exercise)

   lec26-handout Quiz for Unit 6Quiz for Unit 5  

 

Wed

Apr 01

Lecture 27: Java Locks

Module 2: 7.3Topic 7.3 Lecture  lec27-slides

 

   

 

Fri

Apr 03

Lecture 28: Linearizability of Concurrent Objects

Module 2: 7.4Topic 7.4 Lecture lec28-slides

 

Homework 4 (includes one intermediate checkpoint)

 

Homework 3 (all)

 

  

12

Mon

Apr 06

Lecture 29:  Java Locks (exercise)

   lec29-handout  

Quiz for Unit 6

  

 

Wed

Apr 08

Lecture 30: Safety and Liveness Properties, Java Synchronizers, Dining Philosophers Problem

Module 2: 7.5, 7.6Topic 7.5 Lecture, Topic 7.6 Lecture lec30-slides

Quiz for Unit 7

 

  

 

Fri

Apr 10

Lecture 31: Message Passing Interface (MPI), (start of Module 3)

 Topic 8.1 Lecture, Topic 8.2 Lecture, Topic 8.3 Lecture lec31-slides

 

   

13

Mon

Apr 13

Lecture 32: Message Passing Interface (MPI, contd)

 Topic 8.4 Lecture  lec32-slides 

Homework 4 Checkpoint-1

  

 

Wed

Apr 15

Lecture 33: Message Passing Interface (MPI, contd)

 Topic 8.5 Lecture, Topic 8 Demonstration Video lec33-slides

 

 

  

 

Fri

Apr 17

Lecture 34: Task Affinity with Places

   

lec34-slides

  Quiz for Unit 8

Quiz for Unit 7  

14

Mon

Apr 20

Lecture 35: Eureka-style Speculative Task Parallelism

   lec35

 

Wed

Apr 10

Lecture 34: Task Affinity with Places

  worksheet34lec34-slides

Homework 5

Homework 4 (all)

 

Fri

Apr 12

Lecture 35: Eureka-style Speculative Task Parallelism

  worksheet35

lec35-slides

 

Quiz for Unit 9

14

Mon

Apr 15

Lecture 36: Algorithms based on Parallel Prefix (Scan) operations

  worksheet36lec36-slides 

 

  

 

Wed

Apr 1722

Lecture 3736: Algorithms based on Parallel Prefix (Scan) operations, contd.  worksheet37 lec37lec36-slides

 

Homework 4 (all)

  

 

Fri

Apr 1924

Lecture 3837: Course Review (Lectures 2019-3834)

   lec38lec37-slides 

Quiz for Unit 8

  Homework 5
-           
            

Lab Schedule

Feb 7-No lab this week - Spring Break

Lab #

Date (20192020)

Topic

Handouts

Examples

0 Infrastructure Setuplab0-handout- 

1

Jan 1016

Async-Finish Parallel Programming with abstract metrics

lab1-handout
 
- No lab this week  

2

Jan 1730

Futures

lab2-handout
-
 

3

Jan 24Feb 06

Cutoff Strategy and Real World Performance

lab3-handout -

4

Jan 31

Java's ForkJoin Framework

lab4-handout - 

-

 

No lab this week - Spring Recess  
54

Feb 1420

DDFs

lab4-handout  lab5-handout-

-

Feb 27

No lab this week (midterm exam)

 

  

5

Mar 05

6

Feb 28

Loop-level Parallelism

lab6lab5-handout lab6lab5-intro

7-

Mar 7

Isolated Statement and Atomic Variables

lab7-handout -

-

Mar 14

 

 

  

-

 

Isolated Statement and Atomic Variables

  
8-Mar 21 Actors  lab8-handout
-9

 

Mar 28

Java Threads, Java Locks

 lab9-handout  

-10

 

Apr 4

Message Passing Interface (MPI)

 lab10-handout  

-

11

Apr 11 

Apache Spark

  lab11-handout

-

 

 

Eureka-style Speculative Task Parallelism

  
 - 

 Java's ForkJoin Framework

  

Grading, Honor Code Policy, Processes and Procedures

...