OBJECTIVE: To introduce various High-performance computing environments and implementation issues.
Prerequisites: Introduction to Design and Analysis of Sequential Algorithms and Computer Organization and Architecture.
UNIT I: Introduction to Parallel Computing 
Introduction — Computational Demands — Two real-time needs — Parallel Processing Terminology — Data, Temporal and Control Parallelisms — Flynn’s Taxonomy — Processor arrays, Multiprocessors, Multicomputers- Fundamental Algorithms — Broadcasting and All-prefix-sums Criteria for Complexity Analyses.
UNIT II: Parallel Algorithms 
Parallel algorithms on various models with complexity analyses for selection, merging sorting and searching problems. Introduction to Parallel Programming Languages — CS and Sequent C - Comparison of Parallel Computing with Supercomputing and Distributed Computing.
UNIT III: Introduction to Distributed Computing 
Message Passing Model — Message passing, general programming models and PVM —Remote Procedure Call — Parameter passing, locating the server, Semantics in the presence of failures, security, Problem Areas.
UNIT IV: Grid Computing 
Introduction — Definition, Evolution and Elements — Current Perspective — Definition, block Diagram, Grid Computing Business areas and Applications - Grid Computing Infrastructure and vulnerability — security Issues — Resource Management.
UNIT V: Cluster Computing 
Introduction - Cluster Computer and its Architecture, Parallel Applications and Their Development - Strategies for Developing Parallel Applications - Code Granularity and Levels of Parallelism - Parallel Programming Models and Tools - Parallel Languages, Message Passing, Virtual Shared Memory, Parallel Object-Oriented Programming, Programming Skeletons - Methodical Design of Parallel Algorithms - Partitioning, Communication, Agglomeration, Mapping.
1. A.Y.Zomaya, "Parallel and Distributed Computing Handbook", 1995. McGrawHill Professional.
2. Michael J.Quinn, "Parallel Computing: Theory and Practice", Second Edition, 1994, Tata McGrawHill, Inc.
3. M.Sasikumar, Dinesh Shikhare, P.Ravi Prakash, "Introduction to Parallel Processing", 2000, PHI.
4. Joshy Joseph, Creig Fellenstein, "Grid Computing", 2003, PHI.
5. Rajkumar Buyya, "High Performance Cluster Computing: Architectures and Systems", Vol. I, 1999, PH Inc.
6. Rajkumar Buyya, "High Performance Cluster Computing: Programming and Applications", Vol. 2, 1999, PH Inc.