Overview
This course covers the learning outcomes and goals of parallel computing, including optimizing single-core performance and implementing parallel strategies such as multithreading, parallel algorithm design, tasks, distributed computing, and GPUs. The course teaches individual skills and tools like understanding performance overview, single instruction multiple data, and co-routines. The teaching method involves lectures and practical examples. The intended audience for this course includes individuals interested in improving computational efficiency through parallel computing techniques.
Syllabus
Introduction
- Introduction (10:24)
- Performance Overview (27:16)
Optimizing Single-Core Performance
- Serial Performance (43:49)
- Single Instruction, Multiple Data (27:36)
Parallel Strategies
- Multithreading (52:04)
- Parallel Algorithm Design (14:53)
- Tasks (Co-routines) (19:23)
- Distributed Computing (66:23)
- GPUs (30:33)
Taught by
Dr. Matt Bauman