Versions Compared

Key

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

...

Week

Day

Date (2022)

Lecture

Assigned Reading

Assigned Videos (see Canvas site for video links)

In-class Worksheets

Slides

Work Assigned

Work Due

Worksheet Solutions 

1

Mon

Jan 09

Lecture 1: Introduction

 

 

worksheet1lec1-slides  

 

 

WS1-solution 

 

Wed

Jan 11

Lecture 2:  Functional Programming

GList.java worksheet2lec02-slides

 

 

WS2-solution 
 FriJan 13Lecture 3: Higher order functions  worksheet3 lec3-slides   

 

 WS3-solution 

2

Mon

Jan 16

No class: MLK

        

 

Wed

Jan 18

Lecture 4: Lazy Computation

LazyList.java

Lazy.java

 worksheet4lec4-slides  WS4-solution 

 

Fri

Jan 20

Lecture 5: Java Streams

  worksheet5lec5-slidesHomework 1 WS5-solution 
3MonJan 23

Lecture 6: Map Reduce with Java Streams

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

 

 WS6-solution 

 

Wed

Jan 25

Lecture 7: Futures

Module 1: Section 2.1Topic 2.1 Lecture , Topic 2.1 Demonstrationworksheet7lec7-slides

 

 WS7-solution 

 

Fri

Jan 27

Lecture 8:  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 Demonstrationworksheet8lec8-slides  WS8-solution 

4

Mon

 

Jan 30 Lecture 9: Async, Finish, Data-Driven Tasks 

Module 1: Section 1.1, 4.5

 

Topic 1.1 Lecture, Topic 1.1 Demonstration, Topic 4.5 Lecture, Topic 4.5 Demonstration

worksheet9

lec9-slides   WS9-solution 
 WedFeb 01Lecture 10: Event-based programming model

 

  worksheet10lec10-slides Homework 1WS10-solution 
 FriFeb 03Lecture 11: GUI programming as an example of event-based,
futures/callbacks in GUI programming
  worksheet11lec11-slidesHomework 2 WS11-solution 
5

Mon

Feb 06

Lecture 12: Scheduling/executing computation graphs
Abstract performance metrics
Module 1: Section 1.4Topic 1.4 Lecture , Topic 1.4 Demonstrationworksheet12lec12-slides  WS12-solution 

 

Wed

Feb 08

Lecture 13: Parallel Speedup, Critical Path, Amdahl's Law

Module 1: Section 1.5

Topic 1.5 Lecture , Topic 1.5 Demonstration

worksheet13lec13-slides  WS13-solution 

 

Fri

Feb 10

No class: Spring Recess

 

        
6

Mon

Feb 13

Lecture 14: Accumulation and reduction. Finish accumulators

Module 1: Section 2.3Topic 2.3 Lecture   Topic 2.3 Demonstrationworksheet14lec14-slides  WS14-solution 

 

Wed

Feb 15

Lecture 15: Recursive Task Parallelism  

  worksheet15lec15-slides

 

 

 WS15-solution 
 FriFeb 17

Lecture 16: 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 Demonstrationworksheet16 lec16-slidesHomework 3Homework 2WS16-solution 

7

Mon

Feb 20

Lecture 17: Midterm Review

   lec17-slides    

 

Wed

Feb 22

Lecture 18: Limitations of Functional parallelism.
Abstract vs. real performance. Cutoff Strategy

  worksheet18lec18-slides  WS18-solution 

 

Fri

Feb 24 

Lecture 19: Fork/Join programming model. OS Threads. Scheduler Pattern 

 Topic 2.7 Lecture, Topic 2.7 Demonstration, Topic 2.8 Lecture, Topic 2.8 Demonstration, worksheet19lec19-slides  WS19-solution 

8

Mon

Feb 27

Lecture 20: Confinement & Monitor Pattern. Critical sections
Global lock

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 Demonstrationworksheet20lec20-slides        WS20-solution 

 

Wed

Mar 01

Lecture 21:  Atomic variables, Synchronized statements

Module 2: Sections 5.4, 7.2

Topic 5.4 Lecture, Topic 5.4 Demonstration, Topic 7.2 Lectureworksheet21lec21-slides  WS21-solution 

 

Fri

Mar 03

Lecture 22: Parallel Spanning Tree, other graph algorithms 

  worksheet22lec22-slidesHomework 4

Homework 3

WS22-solution 

9

Mon

Mar 06

Lecture 23: Java Threads and Locks

Module 2: Sections 7.1, 7.3

Topic 7.1 Lecture, Topic 7.3 Lecture

worksheet23 lec23-slides  

 

WS23-solution 

 

Wed

Mar 08

Lecture 24: Java Locks - Soundness and progress guarantees  

Module 2: 7.5Topic 7.5 Lecture worksheet24 lec24-slides 

 

WS24-solution 

 

Fri

Mar 10

 Lecture 25: Dining Philosophers Problem  Module 2: 7.6Topic 7.6 Lectureworksheet25lec25-slides 

 

WS25-solution 
 

Mon

Mar 13

No class: Spring Break

     

 

  
 WedMar 15No class: Spring Break    

 

   

 

Fri

Mar 17

No class: Spring Break

     

 

  

10

Mon

Mar 20

Lecture 26: N-Body problem, applications and implementations 

  worksheet26lec26-slides   WS26-solution 

 

Wed

Mar 22

Lecture 27: Read-Write Locks, Linearizability of Concurrent Objects

Module 2: 7.3, 7.4Topic 7.3 Lecture, Topic 7.4 Lectureworksheet27lec27-slides

 

 WS27-solution 

 

Fri

Mar 24

Lecture 28: Message-Passing programming model with Actors

Module 2: 6.1, 6.2Topic 6.1 Lecture, Topic 6.1 Demonstration,   Topic 6.2 Lecture, Topic 6.2 Demonstration worksheet28lec28-slides

 

 

 

WS28-solution 

11

Mon

Mar 27

Lecture 29: Active Object Pattern. Combining Actors with task parallelism 

Module 2: 6.3, 6.4Topic 6.3 Lecture, Topic 6.3 Demonstration,   Topic 6.4 Lecture, Topic 6.4 Demonstrationworksheet29lec29-slides

 

 

WS29-solution 

 

Wed

Mar 29

Lecture 30: Task Affinity and locality. Memory hierarchy 

  worksheet30lec30-slides

 

 WS30-solution 

 

Fri

Mar 31

Lecture 31: Data-Parallel Programming model. Loop-Level Parallelism, Loop 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 Demonstrationworksheet31lec31-slidesHomework 5

Homework 4

WS31-solution 

12

Mon

Apr 03

Lecture 32: Barrier Synchronization with PhasersModule 1: Section 3.4Topic 3.4 Lecture,  Topic 3.4 Demonstrationworksheet32lec32-slides

 

 

WS32-solution 

 

Wed

Apr 05

Lecture 33:  Stencil computation. Point-to-point Synchronization with Phasers

Module 1: Section 4.2, 4.3

Topic 4.2 Lecture, Topic 4.2 Demonstration, Topic 4.3 Lecture,  Topic 4.3 Demonstration

worksheet33lec33-slides

 

 WS33-solution 

 

Fri

Apr 07

Lecture 34: Fuzzy Barriers with Phasers

Module 1: Section 4.1Topic 4.1 Lecture, Topic 4.1 Demonstrationworksheet34lec34-slides 

 

WS34-solution 

13

Mon

Apr 10

Lecture 35: Eureka-style Speculative Task Parallelism 

 

worksheet35lec35-slides

 

 

WS35-solution 
 WedApr 12Lecture 36: Scan Pattern. Parallel Prefix Sum 

 

worksheet36lec36-slides  WS36-solution 
 FriApr 14Lecture 37: Parallel Prefix Sum applications  worksheet37lec37-slides    
14MonApr 17Lecture 38: Overview of other models and frameworks   lec38-slides    
 WedApr 19Lecture 39: Course Review (Lectures 19-38)   lec39-slides    
 FriApr 21Lecture 40: Course Review (Lectures 19-38)   lec40-slides Homework 5  

Lab Schedule

7 28lab7

Lab #

Date (20222023)

Topic

Handouts

Examples

1

Jan 1009

Infrastructure setup

lab0-handout

lab1-handout

 
-Jan 16No lab this week (MLK)  
2Jan 1723Functional Programminglab2-handout 

3

Jan 2430

Java Streams

lab3-handout
 
4Jan 31Feb 06Futureslab4-handout 

5

Feb 0713

Data-Driven Tasks

lab5-handout 6

Feb 14

Async / Finish

lab6-handout 
-Feb 2120No lab this week (Midterm)  
6

Feb

27

Async / Finish

lab6Recursive Task Cutoff Strategy-handout 
87Mar 07Java Threads06Recursive Task Cutoff Strategylab7lab8-handout 
-Mar 1413No lab this week (Spring Break)  
8Mar 20Java Threadslab8-handout 
9Mar 2127Concurrent Listslab9-handout 
10Mar 28Apr 03Actorslab10-handout 
11

Apr 0410

Loop Parallelism

lab11-handout 

-

Apr 11

No lab this week

  

-

Apr 1817

No lab this week

  

Grading, Honor Code Policy, Processes and Procedures

...