Parallel Programming Models
Parallel Programming Models #
Parallel algorithms need hardware that can execute independent work efficiently. Modern systems therefore combine multiple CPU cores, memory hierarchies, threads, instruction pipelines, GPUs, clusters, and specialised matrix processors.
Course coverage:
- Parallel programming models for expressing independent work
- MapReduce, task-parallel, and request-parallel patterns
- Multi-core CPUs and GPGPUs: SIMD, MIMD, SIMT, memory hierarchy, and bandwidth
- Distributed clusters: CPU-only and GPU-accelerated systems, data sharding, parameter servers, and all-reduce
The hardware sections also cover specialised matrix processors and the performance limits introduced by memory and communication.