Back close

Course Detail

Course Name Parallel and Distributed Systems
Course Code 26CSC345
Program 5 Year Integrated M.Sc in Data Science
Credits 3
Campus Coimbatore

Syllabus

Syllabus

INTRODUCTION: Concepts and Terminology – Generic Processor / ASIC Processor Architecture – Pipeline Architecture – Instruction Set Architecture –modification to the von Neumann architecture – Types of Parallelism – Flynn’s Classical Taxonomy –concurrent, parallel, distributed.

PARALLEL COMPUTER MEMORY ARCHITECTURES: Shared Memory – Distributed Memory -Hybrid Distributed-Shared Memory Multiprocessors: Communication and Memory issues – Message Passing Architectures –UMA – NUMA – Vector Processing and SIMD Architectures – Memory consistency models.

PARALLEL PROGRAMMING MODELS: Overview -Shared Memory Model – Threads Model – Message Passing Model – Data Parallel Model – Other Models. DESIGNING PARALLEL PROGRAMS: Automatic vs. Manual Parallelization – Understand the Problem and the Program – Partitioning -Communications – Synchronization -Data Dependencies – Load Balancing -Granularity -I/O -Limits and Costs of Parallel Programming – Performance Analysis and Tuning –speedup, efficiency – Amdahl’s Lab – Gustafson’s law – scalability – Parallel Examples -Array Processing – Compiler Transformation techniques for High performance computing: – Transformations for parallel Machines.

PRAM ALGORITHMS& BSP: PRAM model of computation- Work-Time formalism and Brent’s Theorem; algorithm design techniques- parallel reduction, parallel prefix, pointer jumping, Euler tours, divide and conquer, symmetry breaking; survey of data-parallel algorithms; relative power of PRAM.

HIGH PERFORMANCE COMPUTING ARCHITECTURES: Latency Hiding Architectures -Multithreading Architectures -Dataflow Architectures – GPGPU Architecture- Overview of basic Accelerators /GPU / GPGPU and its programming model – CUDA – OpenCL. (6)

DISTRIBUTED COMPUTING: Introduction -Definitions, motivation – system models – architectural model – client-server model – peer-to-peer model – distributed computing paradigm – Communication Mechanisms – Communication protocols-RPC- RMI – group communication – external data representation and marshalling – distributed file system – HDFS –  DISTRIBUTED PROGRAMMING ALGORITHMS: Fundamental issues & concepts – synchronization – termination detection – clocks – event ordering – locking – snapshots – leader election – replication and coherence – consistency models and protocols – Fault Tolerance

Text Books / References

Text Books

  1. George Coulouris, Jean Dollimore, Time kindberg and Gordon Blair, “Distributed Systems: Concepts and design”, Pearson, 2021 2.
  2. Peter S Pacheco, Matthew Malensec, “An Introduction to Parallel Programming”, Morgan Kaufmann (Elsevier), 2022 3.
  3. John L. Hennessy and David A. Patterson, “Computer Architecture a Quantitative Approach”, Elsevier, 2016.

References

  1. Andrew S. Tanenbaum and Maarten van Steen, “Distributed Systems, Principles and Paradigm”, Prentice Hall, 2017.
  2. Michael J Quinn, “Parallel Computing: Theory and Practice”, Tata Mcgraw-Hill,2017.
  3. Michael J Quinn, “Parallel Programming in C with MPI and OpenMP”, McGrawHill, 2017.
  4. David F. Bacon, Susan L. Graham and Oliver J. Sharp, “Compiler Transformations for High Performance Computing”, Technical report, 1994.

Introduction

This course provides a comprehensive study of parallel and distributed computing principles, architectures, programming models, and algorithmic foundations. It introduces processor architectures, types of parallelism, memory models, and classical taxonomies, followed by detailed exploration of shared and distributed memory systems, SIMD and vector processing architectures. Students learn parallel programming models, performance analysis techniques, and program design strategies including partitioning, synchronization, load balancing, and scalability analysis using Amdahls and Gustafsons laws. The course covers theoretical models such as PRAM and BSP along with high-performance computing architectures including GPUs and accelerator-based systems. It also explores distributed computing paradigms, communication mechanisms, coordination algorithms, fault tolerance, and consistency protocols. The course equips students with both theoretical foundations and practical insights required for designing scalable high-performance and distributed systems.

Objectives and Outcomes

Course Outcomes (COs)

After successful completion of the course, students will be able to:

CO1: Explain the fundamental concepts of parallel and distributed computing, including processor architectures, types of parallelism, memory models, and classical taxonomies.

CO2: Analyze shared, distributed, and hybrid parallel computer architectures, including SIMD, vector processors, GPGPU systems, and memory consistency models.

CO3: Design and evaluate parallel programs using appropriate programming models, applying partitioning, synchronization, load balancing, and performance optimization techniques.

CO4: Apply theoretical models such as PRAM and BSP to develop and analyze parallel algorithms using work-time formalism, Brent’s theorem, and scalability principles.

CO5: Develop solutions for distributed systems by implementing communication protocols, synchronization mechanisms, leader election, consistency models, and fault-tolerant strategies

CO-PO Mapping

  PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12
CO1 2 3 2 2 1         1 1 2
CO2 1 2 3 2 2 3     1 1 1 2
CO3 1 2 3 3 2 3     1 1 2 3
CO4 1 2 3 3 3 3     1 1 2 3
CO5 1 2 3 3 3 3     1 1 2 3

DISCLAIMER: The appearance of external links on this web site does not constitute endorsement by the School of Biotechnology/Amrita Vishwa Vidyapeetham or the information, products or services contained therein. For other than authorized activities, the Amrita Vishwa Vidyapeetham does not exercise any editorial control over the information you may find at these locations. These links are provided consistent with the stated purpose of this web site.

Admissions Apply Now