Course Schedule

Links will be added here with additional information about each meeting or assignment. All assignment dates are subject to change, and are provided only as a general guideline until the actual assignment is handed out.

Date Topic and/or Events Readings
Sept. 3 Introduction and Overview, C Programming and Unix; Lab 0: Cluster Setup; Lab 1: C and Unix Topic Notes: Introduction; Topic Notes: C and Unix
Sept. 10 More C and Unix, Finding Parallelism; Lab 2: Finding Palindromic Words - Sequential Implementation
Sept. 17 Multithreading, POSIX Threads; Lab 3: Finding Palindromic Words with POSIX Threads Topic Notes: POSIX Threads
Sept. 24 Domain Decomposition, Recursive Parallelism, OpenMP; Lab 4: Multithreaded Matrix-Matrix Multiplication Topic Notes: Data Parallel Computation; Topic Notes: OpenMP; Quinn Ch. 17
Oct. 1 Loop Scheduling in OpenMP; Lab 5: Jacobi Iteration with OpenMP
Oct. 8 Introduction to Message Passing and MPI Topic Notes: Message Passing; Quinn Ch. 4
Oct. 15 Exam 1; MPI; Lab 6: Matrix-Matrix Multiplication with MPI Topic Notes: MPI
Oct. 22 MPI Programming; Term Project Out; Lab 7: Jacobi Iteration with MPI
Oct. 29 Parallel Algorithms; Lab 8: Benchmarking Message Passing Topic Notes: Parallel Algorithms; Quinn Ch. 3, Ch. 5
Nov. 5 More Parallel Algorithms Quinn Ch. 6
Nov. 12 Exam 2; Scientific Computing Topic Notes: Scientific Computation
Nov. 19 Scientific Computation: Jacobi Iteration on a Quadtree
Nov. 26 Happy Thanksgiving!
Dec. 3 Project Presentation; Jacobi Iteration on a Quadtree Wrapup; Partitioning and Dynamic Load Balancing
Dec. 8-13 Take-home Final Exam