SCHEDULE


IMPORTANT NOTE:The COMP481 schedule might change during the quarter! Watch this space frequently for any updates during the quarter).
Week 1
Day Class Topic Reading Due Recommendations
M1 - Syllabus review
- Introduction to parallel algorithms
W1 #MakeClimateAClass
- A little bit of history
- What can parallelism do?
Start Assignment #1
F1 Preparing your machine for parallel computing "Hints for Making Your Computer a Parallel Machine" Discussion Question #1
Week 2
Day Class Topic Reading Due Recommendations
M2 - Basic concepts
- Parallel execution time
- Speedup
- Efficiency
Exercise #1: Performance
Section 2.1 and 2.6
W2 - Amdahl's Law
- Brent’s Theorem
Section 2.6 Discussion Question #2
F2 Quiz #1: Parallel Performance • [open book and notes]
- Review of computational models
- Models for parallel computing
Section 2.2 and 2.3 Assignment #1
Week 3
Day Class Topic Reading Due Recommendations
M3 - Interconnection networks and communication Section 2.3.3 Start Assignment #2
W3 - Parallel Programs Section 2.4 Discussion Question #3
F3 Quiz #2: Interconnection Networks • [take home]
- Setting up an account in Jigwé
Week 4
Day Class Topic Reading Due Recommendations
M4 - Shared-memory programing with OpenMP
- Writing multi-threaded programs
Sections 5.1, 5.3, and 5.4
W4 OpenMP Practice: compiling and running a program Quiz #2
F4 - Parallelizing for loops Sections 5.5 and 5.6 Discussion Question #4
Week 5
Day Class Topic Reading Due Recommendations
M5 - Scheduling Parallel Loops in OpenMP
Section 5.7 and Assignment #2
W5 - Parallel tasks in OpenMP
- Critical and atomic sections in OpenMP Quiz #3: OpenMP • [group quiz]
Section 5.8
F5 OpenMP Practice: Parallelizing a sequential program Start Assignment #3
Week 6
Day Class Topic Reading Due Recommendations
M6 - Distributed-Memory programing with MPI Section 3.1 Discussion Question #5
W6 - Basic MPI operations
- MPI Communication
Section 3.4
F6 MPI Practice: compiling and running a program
Week 7
Day Class Topic Reading Due Recommendations
M7 Work day (catch up)
W7 - Massively Parallel Graphic Processors
- NVidia GPUs and CUDA
Start reviewing the Final Project.

DoGL


Friday of 7th Week: No Class. This day has been declared as "Day of Gracious Living."

Week 8
Day Class Topic Reading Due Recommendations
M8 CUDA Practice: compiling and running a program
- Final Project discussion day
- An Easy Introduction to CUDA C and C++
- An Even Easier Intorduction to CUDA
W8 Building an HPC Cluster with RPis: Initial Setup Assignment #3
F8 Building an HPC Cluster with RPis: Configuration & Testing Final Project Proposal
Week 9
Day Class Topic Reading Due Recommendations
M9 Building an HPC Cluster with RPis: Parallel Programs & Benchmarks
W9 Special Topics: Deep Learning and Parallel Programming using GPUs
Invited speaker Usman Tariq
F9 - Work Day
Quiz #4: Parallel Computing Concepts • [individual quiz]
Week 10
Day Class Topic Reading Due Recommendations

Memorial Day


Monday of 10th Week: No Class. Take this time to prepare for your Final Project presentations.

W10 Project Presentations
  • "Parallelizing the Black-Scholes Model for Efficient Options Pricing" by GROUP #5
  • "Parallelization of Maze Solving Algorithms" by GROUP #1
  • "Efficient Seam Carving: A Parallel Approach for Content-Aware Image Resizing" by GROUP #4
F10 Project Presentations
  • "Parallelizing Machine Learning Algorithms for Efficient Training and Inference" by GROUP #2
  • "Mobile Parallel Computing and its Usage in the Optimization of Communication with the Blockchain-powered Platform" by GROUP #3
- Course evaluation & closing remarks
- Group report on Building an HPC Cluster with RPis due by 11:59 p.m.
Finals Week
No final exam. Enjoy the summer time!