Course Title: 
Parallel and Distributed Computing
Course Code: 
Year Taught: 
Postgraduate (PG)
School of Engineering

'Parallel and Distributed Computing' is an elective course offered in M. Tech. in Computer Science and Engineering program at School of Engineering, Amrita Vishwa Vidyapeetham.

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


  1. Kai Hwang, Jack Dongarra & Geoffrey C. Fox, “Distributed and Cloud Computing: Clusters, Grids, Clouds, and the Future Internet (DCC)”, 2012.
  2. Andrew S. Tanenbaum & Maarten van Steen, “Distributed Systems: Principles and Paradigms”, Prentice Hall, 2017.

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