The theoretical and practical mix of the HPC Application development programs has the following objectives:
- To explore the fundamental concepts of Parallel programming and HPC Solutions and their applications.
- To develop in-depth knowledge and understanding of the High-Performance Computing domain.
- To learn the use of various HPC tools.
- To understand the applications using Map Reduce Concepts, OpenMP, CUDA, MPI, OpenACC, oneAPI.
- Basic introduction to ML, DL and AI
- Graduate in Engineering or Technology (10+2+4 or 10+3+3 years) in IT / Computer Science / Electronics / Telecommunications / Electrical / Instrumentation. OR
- MSc/MS (10+2+3+2 years) in Computer Science, IT, Electronics. OR
- Post Graduate Degree in Physics/ Computational Sciences/ Mathematics or allied areas, OR
- MCA
Software Engineering concepts (4 Hrs)
C, C++ Programming and Data Structure (54 Hrs)
Difference between C and C++, pointers and Arrays using Pointers
Classes and Objects, Access Specifiers, Overloading, Inheritance, Polymorphism
Algorithms & Data Structures using C
Stacks, Queues, Linked Lists (Singly, Doubly, Circular), Trees, Graphs, Sorting (Bubble, Quick, Heap, Merge)
Java Programming (40 Hrs)
Data Types, Operators and Language, Constructs, Inner Classes and Inheritance, Interface and Package, Exceptions, Threads, Java.lang, Java.util, Java. awt, Java.io.
FORTRAN & Go Language (20 Hrs)
Programs, Arithmetic Operations, Subroutines, Functions, Modules, Interface Formatting, and File Handling, Arrays, Pointers, Derived Data Types, Use of Program Libraries
Go Programming Overview, Environment Setup, Program Structure, Basic Syntax, Data Types, Variables, Constants, Operators, Decision Making Statements, Loops, Functions.
Linux shell scripting (30 Hrs)
Linux Commands, Processes scheduling & synchronization, Memory management, File Systems, Shell Scripting, Package Managers (RPM, APM, etc.)
Perl Scripting (20 Hrs)
Perl Fundamentals, Control structure and loops, Useful/necessary functions to memorize, Array Functions, Hash Functions, Array and hash manipulation, Inbuilt special variables, Regular Expressions basics, File Handling, Introduction to Modules and Packages, Database Connectivity
PHP (10 Hrs)
Introduction to PHP, Working with arrays, Functions, Forms, Handling date and Times, Working with Files
Computer Architecture and Interconnects (40 Hrs)
Basic concepts of computer organization, Classes of computer architecture, Processor vs. System architecture, Elements of computer systems, Goals of computer architecture, Memory Hierarchy, CISC vs. RISC architectures. Multi-Processor architecture, Memories and Caches, Cache coherency, Standard I/O interfaces GPU elements, An overview of the latest Intel processor., Distributed systems, cluster computing, grid computing, connectivity architectures, etc., SMP & NUMA, PCI
Introduction to communication system, issues in Computer Networking, OSI Layers, TCP/IP Models, Discussion of Networking Protocols, IP Addressing and Routing, Hub, Switch, Router, Interconnect Network (types, GB ethernet, OmniPath Architecture, and Infiniband)
Introduction to Processor & Co-processor Architectures (20 hrs)
Introduction to processor architecture
Introduction to different processor Architectures: Intel, AMD, ARM, IBM Power
Introduction to Co-processors: Intel, Nvidia- GPU, FPGA, Cross Compilation techniques.
Uniprocessor optimization and Pthreads (15 Hrs)
Compiler level optimizations, Arithmetic optimizations, loop unrolling, loop fusion, loop interchange, Loop invariant code motion, Inlining, Pthreads Overview, What is thread, What are Pthreads, Why Pthreads, Designing Threaded Programs, Pthreads APIs, Creating and Terminating Threads, Passing Arguments to Threads, Joining and Detaching Threads, Stack Management, Miscellaneous Routines, Mutex Variables, and Condition Variables, DPDK /SPDK libraries Performance Metrics – Speed-up, efficiency, Amdahl’s Law, weak/strong scalability, performance/watt, performance/$, Arithmetic Intensity (FLOPS/Bytes)
OpenMP (50 Hrs)
Why OpenMP, OpenMP Programming Model, OpenMP constructs, Case-Studies (Algorithms and Parallelization Approaches), Matrix –Matrix-multiplication. Introduction to OpenMP4.0
Message Passing Interface (55 Hrs)
Basic MPI, MPI Point – to Point, MPI Collective Communication: Data Synchronization, Data Movement, Collective Computation. Advance MPI: Derived Data Types, Derived Types, Special type Constructors, Type Matching, Packing/Unpacking Data, Groups, and Communicators: Virtual Topologies, MPI3 Standard, and MPI Threads, Case Studies (Algorithms and Parallelization Approaches), Micro benchmarking, macro benching. Application benchmarking and check the scalability of the applications
Numerical Methods in Science & Engineering (30 Hrs)
Approximations and Round-Off errors, Truncation errors, Roots of equations. Roots of Polynomials. Linear Algebraic Equations: Gauss Elimination, Matrix Inversion. Regression and Interpolation. Numerical Integration. Numerical Differentiation. Numerical solution of ordinary and partial differential equations. Case studies include sequential and parallel algorithms. Introduction to Algorithms for scientific domains: Monte Carlo, SIMPLE algorithm for Navier-Stokes equation in CFD, Finite Volume Method, FFTW. Monte Carlo Methods: Pseudo-random number generators, parallel random number generation, Monte Carlo methods for numerical integration and simulation, applications (e.g., radiation transport and network simulation) Data Management: Introduction to data management, Parallel file systems and parallel I/O, Scientific data formats and libraries (e.g., NetCDF, and HDF5), Input/Output using MPI, Data intensive computing (distributed file systems and MapReduce), SPARK, Web interface and protocols for data exchange (e.g. OPeNDAP), Workflows for data processing, Benchmarking and profiling data intensive applications Application Domains – Basics of different domains, algorithms, parallelism, computational characteristics, optimization of computational performance of applications, Case Studies
Introduction to High-Performance Computing Profiling and debugging tools & Application Optimization (50 hrs)
Profiling and Debugging of codes tools: gprof, Vtune, gdb, Performance library like mkl, lapack, fft, Analysis tools like: ITAC, MPI libraries. Demo of the sample code by using the above tools
Introduction to micro-architecture analysis tools: LIKWID
Case Studies (Scientific & Engineering Domains)
Study and optimization of computational performance of applications
Resource Management & Monitoring tools, Schedulers & Job Submission (10 hrs)
Introduction to different HPC monitoring tools - ganglia, C-Chakshu, Grafana, Prometheus
Basics of scheduling, Introduction to resource management tools, Introduction to PBS, Torque and SLURM
Job Submission: Writing the batch job script, submission, monitoring. Application level checkpointing
CUDA Programming/ OpenCL, (40 Hrs)
Introduction to GPGPU, GPU Performance Vs CPU Performance, GPU Computing Application Domain, nVIDIA’s GPGPU Hardware Model, GPU Computing with CUDA, Thread Hierarchy, Memory Hierarchy, CUDA constructs, Case-Studies (Algorithms and Parallelization Approaches): Matrix – Multiplication,
Introduction to OpenCL, Host Program, Kernel Program
optimization & debugging using heterogeneous Programming.
OpenACC & one API (SYCL) (20 Hrs)
OpenAcc Introduction, Parallelize and optimize loop, Optimize data locality, OpenACC Interoperability
Cloud Computing & Operations (20 Hours)
Introduction to Cloud Computing: Definition, Characteristics, Components, Cloud provider, SAAS, PAAS, IAAS and other Organizational scenarios of clouds, Administering & Monitoring cloud services, benefits and limitations, Deploy application over clouds. Comparison among SAAS, PAAS, IAAS, Cloud computing platforms: Infrastructure as service, Platform as Service, OpenStack and introduction to cloud stack
Platforms & Deployment Strategies (10 Hrs)
Spack
Virtualization: Virtualization Basics, Virtual machine provisioning, virtualization applications in enterprises, Pitfalls of virtualization.
Containers: Container orchestration system, docker, singularity, Kubernetes orchestration system. hands on sessions using any container.
- To design artificial intelligence enabled products and services for realworld problems
- To understand accelerated computing and its capability in reducing ML/DL/AI workloads by evaluating algorithms in Machine Learning and Deep Learning.
- To efficiently use HPC infrastructure in AI workloads.
- To understand and apply various parallel programming libraries like CUDA, MPI, Python for parallel computing to implement HPC Solutions
Q: What is the eligibility of the PG Diploma course in HPC Application Programming?
A: The eligibility Criteria for PG-DHPCAP is Candidate holding any one of the following degrees
Graduate in Engineering (10+2+4 or 10+3+3 years) in IT / Computer Science / Electronics / Telecommunications / Electrical / Instrumentation. OR MSc/MS (10+2+3+2 years) in Computer Science, IT, Electronics. OR Post Graduate Degree in Physics/ Computational Sciences/ Mathematics or allied areas, OR MCA. The candidates must have secured a minimum of 55% marks in their qualifying examination.
Q: What is course fee of the PG-DHPCAP?
A: The course fee is INR. 1,15,000/- plus GST. However this course fees is sponsored for candidates from officially designated socially disadvantaged groups (SC & ST) in India who qualify the C-CAT exam under the National Supercomputing Mission (NSM) Capacity Building initiative.
Q: When the PG-DHPCAP course is commencing?
A: This PG-DHPCAP course is commencing from March / August every year for which the NSM C-CAT is scheduled on January / May during the year.
Q: Duration of the course?
A: The duration of course is 900 hours 24 weeks approximately full-time course.
Q: Infrastructure Facilities available?
A: Fully equipped classrooms with capacity of 40 seats to accommodate students and state-of-art labs to explore you computing skills is made available.
Q: What is the value of the course in the international market?
A: The course has been a launched on a pilot mode by C-DAC and the course curriculum is designed based on the requirements of HPC industry requirements and trends of application prevailing in the industry and the opportunities that it generates; hence it will give the edge for the students who wish to make a mark in HPC domains and gives him the edge in Industry.
Q: How is the admission process to the PG Diploma HPC Application Programming course?
A: The eligible candidates who wish to apply to PG-Diploma courses of C-DAC, ACTS and also wish to apply for the “PG-Diploma in HPC Application Programming (PG-DHPCAP) ensure that he applies for both separately. Admission to NSM PG-Diploma courses is given based on ranking obtained in NSM C-CAT rank who has applied under the NSM capacity building programme. The ranking obtained in C-CAT cannot be consider for admission under NSM capacity building programme if the candidates have not applied to PG-Diploma in HPC Application Programming course through the NSM C-CAT application process.