Introduction: Motivation for parallel programming; Performance metrics for parallelprograms such as speedup, utilization, efficiency, scalability; Models of Parallel Computation such as Single-instruction Multiple-Data (SIMD), Multiple-Instruction Multiple-Data (MIMD); Parallel Random Access Memory (PRAM) models such as Concurrent-Read Concurrent-Write (CRCW) and Concurrent-Read ExclusiveWrite(CREW); Basics of pipelining, latency, and throughput; Amdahl’s Law; Sequential consistency; Correctness of parallel programs-Mutual Exclusion, Liveness and Safety conditions.
Introduction to Parallel Hardware: Organization of multi-core and multi-processor machines; shared memory and message passing architecture, coherence.
Programming Shared Memory architectures: Process and Thread management -creation and termination; Inter-process communication mechanisms; Critical sectionand its importance; Synchronization - need for it, and tools for it such as locks and barriers; Relaxed Consistency and memory fences - benefits and pitfalls; Examples ofparallel algorithms and its implementations on shared memory architectures.
Programming Distributed Memory architectures : Introduction to Message Passing Interface (MPI); Synchronous and asynchronous send-receive; Collective communication - Scatter, Gather, Broadcast, Reduce; Examples of parallel algorithms and its implementations on distributed memory architectures. Programming Graphics Processing Units (GPUs) Introduction to GPU architecture; Introduction to CUDA and SIMT computation; Thread blocks; Warps; Divergence in Control Flow and avoiding them; Example programs
Past Offerings
- Offered in Aug-Nov, 2023 by Unnikrishnan C
- Offered in Jan-May, 2022 by Unnikrishnan C
- Offered in Jul-Dec, 2020 by Unnikrishnan
- Offered in Jan-May, 2019 by Sandeep
Course Metadata
Item | Details |
---|---|
Course Title | Parallel Programming |
Course Code | CS5005 |
Course Credits | 3-0-0-3 |
Course Category | PME |
Proposing Faculty | Sandeep Chandran |
Approved on | Senate 6 of IIT Palakkad |
Course prerequisites | Data Structures, Analysis & Design of Algorithms, Computer Organizations |
Course status | New |