Computer Science 335
Parallel Processing and High Performance Computing

Fall 2026, Siena University

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 9 Lecture 1: Introduction; Handout: Why Parallel Processing?
September 11 Lecture 2: Parallelism Basics; Programming Project 1: Introduction to Jacobi Iteration out; Handout: Parallelism Basics Pacheco Ch. 1
September 14 Lecture 3: Java Threads; Lab 1: Java Threads Practice [HTML] [PDF] Topic Notes: Java Threads
September 16 Lecture 4: Java Threads; Decomposition Methods, Basics of Critical Sections Pacheco Ch. 2 (see lecture page for focus sections)
September 18 Lecture 5: C Programming for Scientific Computation; Programming Project 2: Jacobi Iteration in C [HTML] [PDF] out
September 21 Lecture 6: Lab 2: Chapter 2 Questions [HTML] [PDF] (no in-person meeting, sorry)
September 23 Lecture 7: Lab 2 Recap; Speedup and Scalability
September 25 Lecture 8: MPI Introduction; Lab 3: Processes and MPI Introduction [HTML] [PDF] Pacheco Ch. 3.1-3.3
September 28 Lecture 9: MPI Point to Point Communication; Lab 4: Point to Point Communication [HTML] [PDF]; Programming Project 3: MPI Recursive Digit Sum [HTML] [PDF] out
September 30 Lecture 10: Non-Blocking Messages; Lab 5: Non-Blocking Messages [HTML] [PDF]
October 2 Lecture 11: Collective Communication; Lab 6: Collective Communication [HTML] [PDF]; Programming Project 4: Collective Communication [HTML] [PDF] Pacheco Ch. 3.4
October 5 Lecture 12: Collective Communication; Programming Project 5: Parallelizing Jacobi Iteration [HTML] [PDF]
October 7 Lecture 13: Lab Catchup Day
October 9 Lecture 14: MPI Examples Topic Notes: Matrix-Matrix Multiplication with MPI
October 12 Lecture 15: MPI Bag of Tasks; Lab 7: Stampede3 Setup [HTML] [PDF]
October 14 Lecture 16: MPI on Stampede3; Lab 8: MPI on Stampede3 [HTML] [PDF]
October 16 No Class: October Break
October 19 No Class: October Break
October 21 Lecture 17: Review
October 23 Exam 1, During Class
October 26 Lecture 18: Introduction to Pthreads; Final Project Out; Lab 9: Introduction to Pthreads Pacheco Ch. 4.1-4.2
October 28 Lecture 19:
October 30 Lecture 20: Critical Sections and Synchronization with Pthreads; Programming Project 6: Pthreads Programming Out Topic Notes: Critical Sections with POSIX Threads
November 2 Lecture 21: Pthreads Examples
November 4 Lecture 22:
November 6 Lecture 23: Introduction to OpenMP Topic Notes: OpenMP
November 9 Lecture 24: OpenMP Examples
November 11 Lecture 25: OpenMP Examples
November 13 Lecture 26: OpenMP Practice; Lab 10: OpenMP Practice
November 16 Lecture 27: OpenMP Wrapup; Introduction to Scientific Computation Topic Notes: Scientific Computation
November 18 Lecture 28: Scientific Computation
November 20 Lecture 29: Computing on a Quadtree
November 23 Lecture 30:
November 25 No Class: Happy Thanksgiving!
November 27 No Class: Happy Thanksgiving!
November 30 Lecture 31: Parallel Adaptive Computation Topic Notes: Example Quadtree
December 2 Exam 2 During Class
December 4 Lecture 32: Partitioning and Dynamic Load Balancing Topic Notes: Partitioning and Dynamic Load Balancing
December 7 Lecture 33:
December 9 Lecture 34:
December 11 Lecture 35:
December 14 Lecture 36: Review; Wrapup
December TBD Final Project Presentations (during exam slot as scheduled by the Registrar)