Versions Compared

Key

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

...

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 handout (Concurrency)
  • There is no lecture handout for Module 3 (Distribution and Locality).  The instructor will refer you to optional resources to supplement the lecture slides and videos.

...

Week

Day

Date (2021)

Lecture

Assigned Reading

Assigned Videos (see Canvas site for video links)

In-class Worksheets

Slides

Work Assigned

Work Due

  

1

Mon

Jan 25

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 27

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 29Lecture 3: Abstract Performance Metrics, Multiprocessor SchedulingModule 1: Section 1.4Topic 1.4 Lecture, Topic 1.4 Demonstrationworksheet3lec3-slides

 

   

2

Mon

Feb 01

Lecture 4: Parallel Speedup and Amdahl's Law

Module 1: Section 1.5Topic 1.5 Lecture, Topic 1.5 Demonstrationworksheet4lec4-slidesQuiz for Unit 1   

 

Wed

Feb 03

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

 

Fri

Feb 05

Lecture 6:   Finish Accumulators

Module 1: Section 2.3Topic 2.3 Lecture, Topic 2.3 Demonstrationworksheet6lec6-slides Quiz for Unit 1  
3MonFeb 08

Lecture 7: Map Reduce

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

 

   

 

Wed

Feb 10

Lecture 8: Data Races, Functional & Structural Determinism

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

Homework 2

Homework 1  

 

Fri

Feb 12

Lecture 9: Java’s Fork/Join Library

 Topic 2.7 Lecture, Topic 2.7 Demonstration, Topic 2.8 Lecture, Topic 2.8 Demonstrationworksheet9lec9-slidesQuiz for Unit 2   

4

Mon

 

Feb 15No class (weather)        
 WedFeb 17Spring "Sprinkle" Day (no class)        
 FriFeb 19No class (weather)        
5

Mon

Feb 22

Lecture 10: Loop-Level Parallelism, Parallel Matrix MultiplicationModule 1: Sections 3.1, 3.2Topic 3.1 Lecture , Topic 3.1 Demonstration ,  Topic 3.2 Lecture,  Topic 3.2 Demonstrationworksheet10lec10-slides    

 

Wed

Feb 24

Lecture 11: Iteration Grouping (Chunking), Barrier Synchronization

Module 1: Sections 3.3, 3.4

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

worksheet11lec11-slides    

 

Fri

Feb 26

 Lecture 12: Data-Driven Tasks 

 

Module 1: Sections 4.5

Topic 4.5 Lecture   Topic 4.5 Demonstration

worksheet12lec12-slides Quiz for Unit 2  
6

Mon

Mar 01

Spring "Sprinkle" Day (no class)

        

 

Wed

Mar 03

Lecture 13: Parallelism in Java Streams, Parallel Prefix Sums 

Module 1: Sections 3.7Topic 3.7 Lecture , Topic 3.7 Demonstrationworksheet13lec13-slides

Homework 3 (includes one intermediate checkpoint)

 

Homework 2  
 FriMar 05

Lecture 14: 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 lec14-slidesQuiz for Unit 3   

7

Mon

Mar 08

Lecture 15:  Point-to-point Synchronization with Phasers

Module 1: Section 4.2, 4.3Topic 4.2 Lecture ,   Topic 4.2 Demonstration, Topic 4.3 Lecture,  Topic 4.3 Demonstrationworksheet15lec15-slides    

 

Wed

Mar 10

Lecture 16: Midterm Review

   lec16-slides    

 

Fri

Mar 12 

Lecture 17: 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 Demonstrationworksheet17lec17-slides    

8

Mon

Mar 15

Lecture 18: Abstract vs. Real Performance

  worksheet18lec18-slides   Quiz for Unit 4Quiz for Unit 3  

 

Wed

Mar 17

Lecture 19: 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 Demonstrationworksheet19lec19-slides    

 

Fri

Mar 19

Lecture 20: Parallel Spanning Tree algorithm, Atomic variables

Module 2: Sections 5.3, 5.4, 5.5Topic 5.3 Demonstration, Topic 5.4 Lecture, Topic 5.4 Demonstration, Topic 5.5 Lecture, Topic 5.5 Demonstrationworksheet20lec20-slides 

Quiz for Unit 4

  

9

Mon

Mar 22

Lecture 21: Actors

Module 2: 6.1, 6.2

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

worksheet21 lec21-slides Quiz for Unit 5

 

  

 

Wed

Mar 24

Lecture 22: Actors (contd)

Module 2: 6.3, 6.4Topic 6.3 Lecture, Topic 6.3 Demonstration, Topic 6.4 Lecture , Topic 6.4 Demonstrationworksheet22 lec22-slides 

Homework 3, Checkpoint-1

  

 

Fri

Mar 26

Spring "Sprinkle" Day (no class)

 

     

 

 

  
10

Mon

Mar 29

Lecture 23: Actors (contd)

Module 2: 6.5, 6.6Topic 6.5 Lecture, Topic 6.5 Demonstration, Topic 6.6 Lecture, Topic 6.6 Demonstrationworksheet23lec23-slides 

Quiz for Unit 5

  
 WedMar 31 Lecture 24: Java Threads, Java synchronized statementModule 2: 7.1, 7.2Topic 7.1 Lecture, Topic 7.2 Lectureworksheet24lec24-slides

Quiz for Unit 6

   

 

Fri

Apr 02

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

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

 

  

11

Mon

Apr 05

Lecture 26: Java Locks

Module 2: 7.3Topic 7.3 Lecture worksheet26lec26-slides Homework 4 (includes one intermediate checkpoint)Homework 3 (all)  

 

Wed

Apr 07

Lecture 27: Linearizability of Concurrent Objects 

Module 2: 7.4Topic 7.4 Lecture worksheet27lec27-slides

 

   

 

Fri

Apr 09

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

 Topic 7.5 Lecture, Topic 7.6 Lectureworksheet28lec28-slides

Quiz for Unit 7

 

 

  

12

Mon

Apr 12

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

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

 

Quiz for Unit 6

  

 

Wed

Apr 14

Lecture 30: Message Passing Interface (MPI, contd)

 Topic 8.4 Lectureworksheet30lec30-slides

 

   

 

Fri

Apr 16

Lecture 31: Message Passing Interface (MPI, contd)

  Topic 8.5 Lecture, Topic 8 Demonstration Videoworksheet31lec31-slidesQuiz for Unit 8

Quiz for Unit 7

  

13

Mon

Apr 19

Lecture 32: Task Affinity with Places

  worksheet32lec32-slides

 

Homework 4 Checkpoint-1

  

 

Wed

Apr 21

Lecture 33: Eureka-style Speculative Task Parallelism

  worksheet33

lec33-slides

 

   

 

Fri

Apr 23

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

  worksheet34lec34-slides 

Quiz for Unit 8

  

14

Mon

Apr 26

Lecture 35: Algorithms based on Parallel Prefix (Scan) operations cont.  worksheet35lec35-slides

 

 

  
 WedApr 28Lecture 36: Course Review (Lectures 19-33)   lec36-slides Homework 4 (all)  
 FriApr 30Lecture 37: Course Review (Lectures 19-33)   lec37-slides    

Lab Schedule

Lab #

Date (2021)

Topic

Handouts

Examples

0 Infrastructure Setuplab0-handout 

1

Jan 26

Async-Finish Parallel Programming with abstract metrics

lab1-handout
 
-Feb 02No lab this week  

2

Feb 09

Futures

lab2-handout
 
-Feb 16No lab this week (classes cancelled)  

3

Feb 23

Cutoff Strategy and Real World Performance

lab3-handout  
4

Mar 02

DDFs

lab4-handout handout  
-

Mar 09

No lab this week (Midterm exam)

  
-Mar 16No lab this week (Spring "Sprinkle" Day)  
5Mar 23Loop-level Parallelismlab5-handoutlab5-intro

6

Mar 30

Isolated Statement and Atomic Variables

lab6-handout 
-Apr 06No lab this week (Spring "Sprinkle" Day)  
7Apr 13Java Threads, Java Lockslab7-handout 
8

Apr 20

Actors

lab8-handout 

-

 

Message Passing Interface (MPI)

  

-

 

Apache Spark

  

-

 

Eureka-style Speculative Task Parallelism

  
- 

Java's ForkJoin Framework

  

...