Computer Science 335
Parallel Processing and High Performance Computing

Fall 2021, 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.


Topic and/or Event Readings
September 10 Lecture 01: Introduction; Programming Project 1: Introduction to Jacobi Iteration [PDF] out Topic Notes: Introduction and Overview
September 13 Lecture 02: Java Threads; Lab 1: Java Threads Practice [HTML] [PDF] Pacheco Ch. 1; Topic Notes: Java Threads
September 17 Lecture 03: Decomposition Methods, Basics of Critical Sections Pacheco Ch. 2 (see lecture page for focus sections)
September 20 Lecture 04: C Programming for Scientific Computation; Programming Project 2: Jacobi Iteration in C out
September 24 Lecture 05: Speedup and Scalability; Stampede2; Lab 2: Stampede2 Setup
September 27 Lecture 06: MPI Introduction; Lab 3: Processes and MPI Introduction; Lab 4: Point to Point Communication Pacheco Ch. 3.1-3.3
October 1 Lecture 07: MPI Point to Point Communication
October 4 Lecture 08: Non-Blocking Messages; Lab 5: Non-Blocking Messages; Lab 6: MPI on Stampede2
October 8 Lecture 09: MPI Collective Communication; Lab 7: Collective Communication; Programming Project 3: Parallelizing Jacobi Iteration Pacheco Ch. 3.4
October 11 Lecture 10: More MPI Examples; Lab 8: More Collective Communication Topic Notes: Matrix-Matrix Multiplication with MPI
October 15 Lecture 11: MPI Wrapup
October 18 No Class: Fall Break
October 22 Lecture 12: MPI Bag of Tasks; Review; Lab/Project Work
October 25 Lecture 13: Midterm Exam
October 29 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 5 Lecture 16: Pthreads Examples
November 8 Lecture 17: Introduction to OpenMP Topic Notes: OpenMP
November 12 Lecture 18: More OpenMP; Lab 10: OpenMP Practice
November 15 Lecture 19: OpenMP Practice
November 19 Lecture 20: Scientific Computation Topic Notes: Scientific Computation
November 22 Lecture 21: Scientific Computation
November 26 No Class: Happy Thanksgiving!
November 29 Lecture 22: Multithreaded Quadtree Solver; Partitioning and Dynamic Load Balancing
December 3 Lecture 23: Distributed Data Structures; Partitioning and Dynamic Load Balancing Topic Notes: Partitioning and Dynamic Load Balancing; Papers: ANM 1996, JPDC 1997
December 6 Lecture 24: Parallelizations of Traveling Salesperson; Lab 11: Traveling Salesperson Problem Multilevel k-way Partitioning Scheme for Irregular Graphs
December 10 Lecture 25: Parallelizations of Traveling Salesperson
December 13 Lecture 26: Final Project Presentations
December 15-18 Take-Home Final Exam