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. | ||
DoGLFriday 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 DayMonday of 10th Week: No Class. Take this time to prepare for your Final Project presentations. |
||||
| W10 | Project Presentations
|
|||
| F10 | Project Presentations
- Group report on Building an HPC Cluster with RPis due by 11:59 p.m. | |||
| Finals Week | ||||
| No final exam. Enjoy the summer time! | ||||