Unit II: Architecture of cluster-based systems, Issues in cluster design: performance, single-system-image, fault tolerance, manageability, programmability, load balancing, security, storage.
High performance sequential computing: Effects of the memory hierarchy, Out-of-order execution, superscalar processors, Vector processing.
Unit III: Shared-memory processing: Architectures (extensions of the memory hierarchy), Programming paradigms, OpenMP.
Distributed-memory processing: Architectural issues (networks and interconnects), Programming paradigms, MPI (+MPI2).
Unit IV: Grids: Computational grids, Data grids ,Architecture of Grid systems, Grid security infrastructure. Examples of Grids: Globus.
The productivity crisis & future directions: Development overheads, Petaflops programming, New parallel languages: UPC, Titanium, Co-Array FORTRAN.
Unit V: Performance Issues and Techniques: Cost and Frequency Models for I/O, paging, and caching. Notion of Cacheing; temporal and spatial locality models for instruction and data accesses; Intra-process parallelism and pipelining.
Typical Compiler Optimizations of Programs; Improving Performance: Identifying program bottlenecks - profiling, tracing; simple high-level-language optimizations - locality enhancement, memory disambiguation, moving loop-invariants.
Charles Severance, Kevin Dowd, O’reilly, “High Performance Computing”, Second Edition July
David j. Kuck, “High Performance Computing”, Oxford Univ Pr, 1996
Gary W. Sabot, “High Performance Computing ”, Addison-Wesley, 1995
Dowd K, “High Performance Computing”, O' Reilly Series, 1993.
R.E. Bryant and D. O'Hallaron, “Computer Systems:A Programer's Perspective”, Pearson Education, 2003.