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. indicated.

Multithreaded programming with POSIX threads; distributed-memory programming in Java
Date Topics Reading Due dates
January 13 (Th) No class    
January 18 (T) About the course (Notes)    
January 20 (Th) Overview of hardware, programming models (Notes) 1 (skim), 2.1 through 2.7  
January 25 (T) Overview continued; multithreaded programming and OpenMP (Notes) A.1 through A.8  
January 27 (Th) Multithreaded programming and OpenMP, continued (Notes)    
February 1 (T) No class    
February 3 (Th) No class    
February 8 (T) Message passing and MPI (Notes) B.1 through B.7  
February 10 (Th) Multithreaded programming and Java (Notes) C.1 through C.7 Homework 1 (OpenMP program)
February 15 (T) More about MPI and multithreaded programming in Java (Notes)   Homework 1 (MPI program)
February 17 (Th) Design patterns; overview of pattern language; example applications (Notes) 4.3 Homework 1 (Java program)
February 22 (T) No class    
February 24 (Th) Homework 1 revisited (Notes)    
March 1 (T) No class    
March 3 (Th) Finding Concurrency patterns (Notes) 3.1 through 3.8  
March 8 (T) Algorithm Structure patterns (Notes) 4.1 through 4.9 Homework 2
March 10 (Th) No class    
March 15 (T) Spring break    
March 17 (Th) Spring break    
March 22 (T) Supporting Structures patterns (Notes) 5  
March 24 (Th) Supporting Structures patterns, continued (Notes)    
March 29 (T) Supporting Structures patterns, continued; example application(s) (Notes)    
March 31 (Th) No class    
April 5 (T) Example application(s), continued (Notes)   Homework 3
April 7 (Th) Example application(s), continued (Notes)    
April 12 (T) No class    
April 14 (Th) Implementation Mechanisms (Notes) 6 Homework 4
April 19 (T) (Notes)    
April 21 (Th) Distributed-memory programming in Java, continued (Notes)    
April 26 (T) Matrix multiplication revisited (Notes)   Project proposal
April 28 (Th) A little about GPGPU programming with OpenCL; course wrap-up and evaluations (Notes)    
May 4 (W), 8:30am Project presentations   Project presentation, report, and code