The notes are taken from the books required for the course:
📚 Course Syllabus
According to the official course syllabus:
Main lectures topics:
- Motivations for parallel chips, processor basics: why parallelism?
- Multicore processors, SIMD processors, Memory models.
- GPU architectures
- Heterogenous parallel processing & Accelerators
- Parallel programming abstractions: PRAM model.
- Parallel programming basics: multithreading, data parallelism, shared memory space, memory consistency, synchronization.
- Tools and languages for parallel programming: Posix threads, OpenMP, Message Passing Interface, and CUDA.
- Parallel programming performance analysis and optimization.
- Data and computation parallel patterns: map, reduce, scan, gather, scatter, etc.
- Domain-specific programming languages: Halide.
Innovative Learning. The innovative learning activities in the course will be provided by the following active-classroom forms:
- Selected topics covered in a flipped-classroom form