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.  The links to the latest versions on Owlspace are Canvas are included below:

  • Module 1 handout (Parallelism)
  • Module 2 handout (Concurrency)
  • Module 3 handout (Distribution and Locality)

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.

...

Week

Day

Date (2017)

Lecture

Assigned Reading

Assigned Videos

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

Homework 1

(2 weeks)

 

 

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

 

 

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  

3

Mon

Jan 23

Lecture 6: Memoization

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

Homework 2

(2 weeks)

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

 

 

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  

 

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  

5

Mon

Feb 06

Lecture 12:  Barrier Synchronization

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

Homework 3

(5 weeks, with two intermediate checkpoints)

Homework 2
 

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   

-

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   

 

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  Topic 4.1 Demonstration, worksheet16 lec16-slides   

7

Mon

Feb 20

Lecture 17: Midterm Summary

    lec18-slides  Homework 3, Checkpoint-1

 

Wed

Feb 22

Midterm Review (interactive Q&A, 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   

8

Mon

Feb 27

Lecture 19: Task Scheduling Policies

   worksheet19 lec19-slides  

 

 

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  

 

9

Mon

Mar 06

Lecture 22:  Parallelism in Java Streams, Parallel Prefix Sums

 

   worksheet22 lec22-slides

 

Homework 3, Checkpoint-2

 

 

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   
-

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  Homework 3 (all)

 

Fri

Mar 24

Lecture 27: Parallel Design Patterns, Safety and Liveness Properties  

 Topic 7.5 Lecture worksheet27 lec27-slides  

 

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

 

 

 

Fri

Mar 31

Lecture 30: Java Synchronizers, Dining Philosophers Problem

 Topic 7.6 Lecture worksheet30 lec30-slides   

12

Mon

Apr 03

Lecture 31: Eureka-style Speculative Task Parallelism

   worksheet31 lec31-slides  

Homework 4 Checkpoint-1

 

Wed

Apr 05

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

   worksheet32 lec32-slides

 

 

 

Fri

Apr 07

Lecture 33: Message Passing Interface (MPI)

   worksheet33 lec33-slides

 

 

13

Mon

Apr 10

Lecture 34: Message Passing Interface (MPI, contd)

   worksheet34 lec34-slides

Homework 5  

(Due April 21st, with automatic extension till May 1st after which slip days may be used)

Homework 4 (all)

 

Wed

Apr 12

Lecture 35: GPU Computing

  worksheet35lec35-slides

 

 

 

Fri

Apr 14

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

  worksheet36

lec36-slides

  

14

Mon

Apr 17

Lecture 37: Apache Spark framework

  worksheet37lec37-slides 

 

 

Wed

Apr 19

Lecture 38: Topic TBD

 

    

 

 

 

Fri

Apr 21

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

   lec38-slides 

Homework 5 (automatic extension till May 1st, after which slip days may be used)

-MonApr 24Review session / Office Hours, 1pm - 3pm, location TBD      
-WedApr 26Review session / Office Hours, 1pm - 3pm, location TBD      
-FriApr 28Review session / Office Hours, 1pm - 3pm, location TBD      

-

 

April 26 - May 3

Scheduled final exam (Exam 2 – scope of exam limited to lectures 18-37), location and time TBD by registrar

 

 

  

 

 

...

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 

Grading, Honor Code Policy, Processes and Procedures

...

The purpose of the homeworks is to train you to solve problems and to help deepen your understanding of concepts introduced in class. Homeworks are due on the dates and times specified in the course schedule. Please turn in all your homeworks using the subversion system set up for the class. Homework  Homework is worth full credit when turned in on time. No late submissions (other than those using slip days mentioned below) will be accepted.

As in COMP 321, all students will be given 3 slip days to use throughout the semester. When you use a slip day, you will receive up to 24 additional hours to complete the assignment. You may use these slip days in any way you see fit (3 days on one assignment, 1 day each on 3 assignments, etc.). If you use slip days, you must submit a SLIPDAY.txt file in your SVN homework folder before the actual submission deadline indicating the number of slip days that you plan to use. Other than slip days, no extensions will be given unless there are exceptional circumstances (such as severe sickness, not because you have too much other work). Such extensions must be requested and approved by the instructor (via e-mail, phone, or in person) before the due date for the assignment. Last minute requests are likely to be denied.  If you do receive an extension from the instructor, please indicate this by placing an EXTENSION.txt file in your SVN homework folder before the actual submission deadline indicating the date that the extension was granted by the instructor as well as the length of the extension.

...

Worksheets are due by the beginning of the class after they are distributed, so that solutions to the worksheets can be discussed in the next class.

You will be expected to follow the Honor Code in all homeworks and exams.  All submitted homeworks are expected to be the result of your individual effort. You are free to discuss course material and approaches to homework problems with your other classmates, the teaching assistants and the professor, but you should never misrepresent someone else’s work as your own. If you use any material from external sources, you must provide proper attribution (as shown here).  Exams 1 and 2 test your individual understanding and knowledge of the material. Exams are closed-book, and collaboration on exams is strictly forbidden. Finally, it is also your responsibility to protect your homeworks and exams from unauthorized access. 

...