Course Details
Subject {L-T-P / C} : CS6129 : Introduction To High Performance Computing { 3-0-0 / 3}
Subject Nature : Theory
Coordinator : Prof. Ashok Kumar Turuk
Syllabus
Introduction to parallel computing: Motivating parallelism, scope of parallel computing
Parallel Programming platforms: Implicit Parallelism: Trends in Microprocessor Architectures, Limitations of memory system performance, Dichotomy of parallel computing platforms, Physical organization of parallel platform
Principles of parallel algorithm design: Decomposition techniques, characteristics of tasks and interactions, mapping techniques for load balancing, parallel algorithm models
Basic Comunication operations: one-to-all broadcast and all-to-one reduction, All-to-all broadcast and reduction, all-reduce and refix-sum operations, scatter and gather, all-to-all personalized communications, circular shift
Analytical modeling of parallel programs: Performance metrics for parallel system, The effect of granularity on performance, Scalability of parallel systems
Programming using the message-passing paradigm, programing shared address platforms
Course Objectives
- Learn parallelisation of serial program
Course Outcomes
Learn techniques for parallelization, programming in OpenMP/MPI
Essential Reading
- Ananth Grams, Anshul Gupta, George Karypis, Vipin Kumar, Introduction to Parallel Computing, Pearson
- Peter S. Pacheco, An Introduction to Parallel Programming, Morgan Kaufman
Supplementary Reading
- Ian Foster, The Sourcebook of Parallel Computing, Morgan Kaufman
- Michael McCool, James Reinders , Arch Robison, Structured Parallel Programming: Patterns for Efficient Computation, Morgan Kaufman