Computer Science 335
Parallel Processing and High Performance Computing
Fall 2024, Siena College
"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; Stampede3; Lab 2: Stampede3 Setup | |
September 23 | Lecture 6: MPI Introduction; Lab 3: Processes and MPI Introduction; Lab 4: Point to Point Communication | Pacheco Ch. 3.1-3.3 |
September 27 | Lecture 7: MPI Point to Point Communication | |
September 30 | Lecture 8: Non-Blocking Messages; Lab 5: Non-Blocking Messages; Lab 6: MPI on Stampede3 | |
October 4 | Lecture 9: MPI Collective Communication; Lab 7: Collective Communication; Programming Project 3: Parallelizing Jacobi Iteration | Pacheco Ch. 3.4 |
October 7 | Lecture 10: More MPI Examples; Lab 8: More Collective Communication | Topic Notes: Matrix-Matrix Multiplication with MPI |
October 11 | Lecture 11: MPI Wrapup; Review | |
October 14 | Lecture 12: Midterm Exam | |
October 18 | No Class: October Break | |
October 21 | No Class: October Break | |
October 25 | Lecture 13: MPI Bag of Tasks | |
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 | |