This course aims to provide a systems perspective towards achieving the maximum possible performance out of a particular computing system for a particular problem.

This course is an introduction to parallel computing and aims at teaching basic models of parallel programming including the principles of parallel algorithm design, modern processors and parallel computer architectures, programming models for shared and distributed-memory systems, optimization and performance analysis, OpenMP, message passing programming models along with some important scientific and engineering algorithms/parallel patterns.

Major part of the course includes lectures and Lab Component for actual implementation after learning the basics of Parallel programming and HPC.

Course format

3 hours lecture per week. + 3 hours lab per week.

Course Placement

HPC is a core course offered to third year students of B.Tech Hons. ICT with Minor in Computational Science program. 

References:

Let’s HPC: A web-based platform to aid parallel, distributed and high performance computing education (https://doi.org/10.1016/j.jpdc.2018.03.001)

  1.       An Introduction to Parallel Programming; Elsevier; by Peter S. Pacheco.
  2.       Scientific Parallel Computing; Princeton University Press ; by Babak Bagheri Terry Clark L Ridgway Scott Bagheri Clark Scott
  3.       PARALLEL PROGRAMMING; Barry Wilkinson, Pearson Education.
  4.       Introduction to High Performance Computing for Scientists and Engineers; G. Hager & G. Wellein. CRC Press.
  5.       Algorithms Sequential & Parallel: A Unified Approach,  by Millers Russ; Cengage, ISBN 9788131525050
  6.        Parallel Programming in C with MPI and OpenMP; by Michael J. Quinn ; McGraw-Hill Higher Education
  7.       Parallel Computing Theory and Practice. By Michael J. Quinn; McGraw Hill Education (India).