Course Syllabus
Introduction-Asynchronous/synchronous computation/communication, concurrency control, fault tolerance, GPU architecture and programming, heterogeneity, interconnection topologies, load balancing, memory consistency model, memory hierarchies, Message passing interface (MPI), MIMD/SIMD examples.
Multithreaded programming, parallel algorithms & architectures, parallel I/O, performance analysis and tuning, power, programming models (data parallel, task parallel, process-centric, shared/distributed memory), scalability and performance studies, scheduling, storage systems, synchronization, and tools.
Course Outcome
At the end of the course the students will be able to
|
Course Outcome |
Bloom’s Taxonomy Level |
CO 1 |
Understand the requirements for programming parallel systems and how they can be used to facilitate the programming of concurrent systems. |
L2 |
CO 2 |
To learn and apply knowledge of parallel and distributed computing techniques and methodologies |
L3 |
CO 3 |
To learn the architecture and parallel programming in graphics processing units (GPUs). |
L2 |
CO 4 |
Understand the memory hierarchy and cost-performance tradeoffs. |
L2, L5 |
CO 5 |
To gain experience in the design, development, and performance analysis of parallel and distributed applications |
L4, L6, L5 |