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 Lecture 13: Midterm Exam
October 28 Lecture 14: Introduction to Pthreads; Final Project Out; Lab 9: Introduction to pthreads Pacheco Ch. 4.1-4.2
November 1 Lecture 15: Critical Sections and Synchronization with pthreads; Programming Project 4: Pthreads Programming Out Topic Notes: Critical Sections with POSIX Threads
November 4 Lecture 16: Pthreads Examples
November 8 Lecture 17: Introduction to OpenMP Topic Notes: OpenMP
November 11 Lecture 18: More OpenMP; Lab 10: OpenMP Practice
November 15 Lecture 19: OpenMP Practice
November 18 Lecture 20: Scientific Computation Topic Notes: Scientific Computation
November 22 Lecture 21: Scientific Computation
November 25 Lecture 22: Multithreaded Quadtree Solver; Partitioning and Dynamic Load Balancing
November 29 No Class: Happy Thanksgiving!
December 2 Lecture 23: Distributed Data Structures; Partitioning and Dynamic Load Balancing Topic Notes: Partitioning and Dynamic Load Balancing
December 6 Lecture 24: Parallelizations of Traveling Salesperson; Lab 11: Traveling Salesperson Problem
December 9 Lecture 25: Final Project Presentations
December TBD Final Exam, as scheduled by the Registrar