CSCI 3366 (Introduction to Parallel and Distributed Processing):
Lecture Topics and Assignments

The table below shows what we will be discussing in each class meeting, readings (from the textbook unless otherwise indicated), and due dates for homeworks. Homework is due at 11:59pm on the date shown, unless otherwise stated. All items are subject to change.

Date Topics Reading Due dates
January 14 (Th) No class    
January 19 (T) About the course (Notes)    
January 21 (Th) Overview of hardware, programming models (Notes) 1 (skim), 2.1 through 2.7  
January 26 (T) Overview of application development; multithreaded programming and OpenMP (Notes) A.1 through A.8  
January 28 (Th) Multithreaded programming and OpenMP, continued (Notes)    
February 2 (T) Message passing and MPI (Notes) B.1 through B.7  
February 4 (Th) Multithreaded programming and Java (Notes) C.1 through C.7 Homework 1 (OpenMP program)
February 9 (T) No class    
February 11 (Th) No class    
February 16 (T) Multithreaded programming and Java, continued; more about message passing and MPI (Notes)   Homework 1 (MPI program)
February 18 (Th) Design patterns; overview of pattern language; example applications (Notes) 4.3 Homework 1 (Java program)
February 23 (T) Homework 1 revisited (Notes)    
February 25 (Th) Finding Concurrency patterns (Notes) 3.1 through 3.8  
March 2 (T) No class    
March 4 (Th) Finding Concurrency patterns, continued (Notes)    
March 9 (T) Algorithm Structure patterns (Notes) 4.1 through 4.9  
March 11 (Th) Supporting Structures patterns (Notes) 5.1 through 5.7  
March 16 (T) Spring break    
March 18 (Th) Spring break    
March 23 (T) No class    
March 25 (Th) Supporting Structures patterns, continued (Notes) 5.8 through 5.11 Homework 2
March 30 (T) Example application(s) (Notes)    
April 1 (Th) Example application(s), continued (Notes)    
April 6 (T) Example applications, continued (Notes)    
April 8 (Th) Example applications, continued (Notes)   Homework 3
April 13 (T) Example applications, continued (Notes)    
April 15 (Th) Example applications, continued (Notes)    
April 20 (T) Implementation Mechanisms (Notes) 6  
April 22 (Th) Multithreaded programming with POSIX threads (Notes)   Homework 4
April 27 (T) Distributed-memory programming in Java (Notes)    
April 29 (Th) Course wrap-up and evaluations (Notes)   Project proposal
May 8 (Sa), noon Project presentations   Project presentation, report, and code