Computer Science 335
Parallel Processing and High Performance Computing

Fall 2024, Siena College

Course Schedule

"Pacheco" indicates readings from An Introduction to Parallel Programming, First Edition, by Peter Pacheco. Additional readings will be given occasionally. Links will be added here with additional information about lectures, labs, and programming assignments. All assignment dates are subject to change, and are provided only as a general guideline until the actual assignment is handed out in class.

Date

Topic and/or Event Readings
September 6 Lecture 1: Introduction; Programming Project 1: Introduction to Jacobi Iteration [PDF] out Topic Notes: Introduction and Overview
September 9 Lecture 2: Java Threads; Lab 1: Java Threads Practice [HTML] [PDF] Pacheco Ch. 1; Topic Notes: Java Threads
September 13 Lecture 3: Decomposition Methods, Basics of Critical Sections Pacheco Ch. 2 (see lecture page for focus sections)
September 16 Lecture 4: C Programming for Scientific Computation; Lab 2: Chapter 2 Questions [HTML] [PDF]; Programming Project 2: Jacobi Iteration in C [HTML] [PDF] out
September 20 Lecture 5: Speedup and Scalability
September 23 Lecture 6: MPI Introduction; Lab 3: Processes and MPI Introduction [HTML] [PDF]; Lab 4: Point to Point Communication [HTML] [PDF]; Programming Project 3: MPI Recursive Digit Sum [HTML] [PDF] out Pacheco Ch. 3.1-3.3
September 27 Lecture 7: MPI Point to Point Communication
September 30 Lecture 8: Non-Blocking Messages, Collective Communication; Lab 5: Non-Blocking Messages [HTML] [PDF]; Lab 6: Collective Communication [HTML] [PDF]; Programming Project 4: Collective Communication [HTML] [PDF] Pacheco Ch. 3.4
October 4 Lecture 9: Collective Communication
October 7 Lecture 10: More MPI Examples; Programming Project 5: Parallelizing Jacobi Iteration [HTML] [PDF] Topic Notes: Matrix-Matrix Multiplication with MPI
October 11 Lecture 11: MPI Bag of Tasks; Lab 7: Stampede3 Setup
October 14 Lecture 12: MPI on Stampede3; Review; Lab 8: MPI on Stampede3
October 18 No Class: October Break
October 21 No Class: October Break
October 25 Midterm Exam
October 28 Lecture 13: Introduction to Pthreads; Final Project Out; Lab 9: Introduction to Pthreads Pacheco Ch. 4.1-4.2
November 1 Lecture 14: Critical Sections and Synchronization with Pthreads; Programming Project 6: Pthreads Programming [HTML] [PDF] Out Topic Notes: Critical Sections with POSIX Threads
November 4 Lecture 15: Pthreads Examples
November 8 Class Cancelled
November 11 Lecture 16: Introduction to OpenMP Topic Notes: OpenMP
November 15 Lecture 17: OpenMP Examples
November 18 Lecture 18: OpenMP Practice; Lab 10: OpenMP Practice [HTML] [PDF]
November 22 Lecture 19: OpenMP Wrapup; Introduction to Scientific Computation Topic Notes: Scientific Computation
November 25 Lecture 20: Computing on a Quadtree
November 29 No Class: Happy Thanksgiving!
December 2 Lecture 21: Parallel Adaptive Computation; Partitioning and Dynamic Load Balancing Topic Notes: Partitioning and Dynamic Load Balancing; Example Quadtree
December 6 Lecture 22: Partitioning and Dynamic Load Balancing
December 9 Lecture 23: Final Project Presentations
December 11 Final Exam, 4-6 PM. RB 302 (as scheduled by the Registrar)