Syllabus
Unit 1
Introduction to HPC architectures: Shared and Distributed memory architectures, Multiprocessor Architecture. Parallel Processing Concepts, Levels and model of parallelism: instruction, transaction, task, thread, memory, function, data flow models, demand-driven computation.
Unit 2
Parallel architectures: superscalar architectures, multi-core, multi-threaded, server and cloud; Fundamental design issues in HPC: Load balancing, scheduling, synchronization and resource management.
Unit 3
Operating systems for scalable HPC, Parallel languages and programming environments, Open MP, Pthread, MPI, java, Cilk, Performance analysis of parallel algorithms, Fundamental limitations in HPC: bandwidth, latency, and latency hiding techniques
Unit 4
Scalable storage systems: RAID, SSD cache, SAS, SAN; HPC based on cluster, cloud, and grid computing: economic model, infrastructure, platform, computation as service; Accelerated HPC: architecture, programming and typical accelerated system with GPU, FPGA
Unit 5
Power-aware HPC Design: computing and communication, processing, memory design, interconnect design, power management; Advanced topics: peta scale computing; big data processing, optics in HPC, quantum computers.
Text Books / References
Text Books:
- George Hager, Gerhard Wellein – Introduction to High-Performance Computing for Scientists and Engineers, CRC Press, Taylor & Francis Group, 2019. Revised edition
- Vipin Kumar, Ananth Grama, Anshul Gupta, George Karypis. Introduction to Parallel Computing (2nd ed.). Pearson India. 2003.
- John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach (5th ed.). Elsevier India Pvt. Ltd. 2011.
References:
- David B. Kirk and Wen-mei W. Hwu. Programming Massively Parallel Processors: A Hands-On Approach (1st ed.). Elsevier India Pvt. Ltd. 2010.
- Michael T. Heath. Scientific Computing: An Introductory Survey (2nd ed.). McGraw Hill Education (India) Private Limited, 2011
Introduction
The HPC course objectives focus on enabling participants to understand parallel computing fundamentals, utilize high-performance cluster architectures, and develop proficiency in parallel programming (MPI, OpenMP) for scientific simulations. Courses aim to teach performance optimization, job scheduling, and efficient resource management for large-scale data processing
Objectives and Outcomes
Course Outcomes: After successful completion of the course, students will be able to
- CO1: Understand and apply various levels of parallelism including instruction, transaction, task,thread, memory, function, and data flow models.
- CO2: Develop skills in parallel algorithm design and programming models to effectively utilize multi-core and cluster systems.
- CO3: Learn techniques to measure and analyse performance of parallel algorithms
- CO4: Analyse and compare scalable storage systems including RAID, SSD cache, SAS, and SAN.
- CO5: Design and implement high-performance solutions for complex and large-scale computing
CO-PO Mapping:
| |
PO1 |
PO2 |
PO3 |
PO4 |
PO5 |
PO6 |
PO7 |
PO8 |
PO9 |
PO10 |
PO11 |
PO12 |
| CO1 |
3 |
2 |
3 |
2 |
3 |
3 |
|
|
|
|
3 |
|
| CO2 |
3 |
2 |
3 |
2 |
3 |
3 |
|
|
|
|
3 |
|
| CO3 |
3 |
2 |
3 |
2 |
3 |
3 |
|
|
|
|
3 |
|
| CO4 |
3 |
2 |
3 |
2 |
3 |
3 |
|
|
|
|
3 |
|
| CO5 |
3 |
2 |
3 |
2 |
3 |
3 |
|
|
|
|
3 |
|