PG Diploma in High Performance Computing Application Programming (PG-DHPCAP)
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 (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
Pre-requisites: Candidates should have sound knowledge of Fundamentals of Programming, C programming, and basics of Linux.
- 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
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)
FORTRAN (12 Hrs)
Programs, Arithmetic Operations, Subroutines, Functions, Modules, Interface Formatting, and File Handling, Arrays, Pointers, Derived Data Types, Use of Program Libraries
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.
Go Language (10 Hrs)
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.
Cloud Computing & Operations (35 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: Amazon EC2, Platform as Service: Google App Engine, Microsoft Azure Utility Computing, Elastic Computing, SLA, clusters, cloud analytics, challenges of cloud environment, Bare Metal Provisioning, HPC in the cloud, OpenStack and introduction to cloud stack
Introduction to Cloud Technologies: Hypervisors, Architecture of hypervisors, Compare SOAP and REST Web services, AJAX and mashups-Web services: SOAP and REST, SOAP versus REST, AJAX: asynchronous 'rich' interfaces, Mashups: user interface services. Virtualization, Virtual machine provisioning, virtualization applications in enterprises, Pitfalls of virtualization, Multitenant software: Multi-entity support, Multi-schema approach, Multi-tenancy using cloud data stores, Data access control for enterprise applications
Platforms & Deployment Strategies (25 Hrs)
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.
Internet of Things: IoT definitions, End Devices, Gateways, IoT platforms, Reference architecture, Introduction to IoT devices, Sensors and Actuators, Case studies of IoT solutions
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
Introduction to Machine Learning (using Scikit Learn), Supervised Learning, Model Selection and Boosting, Unsupervised Learning, Neural Networks with Tensor Flow 2.x, intro to Keras, OpenCV, Open Vino
Q: Who can apply for the PG Diploma courses in HPC Application Programming (PG-DHPCAP)?
A: The candidates belonging to Scheduled Caste (SC) and Scheduled Tribes (ST) communities with the required educational qualifications can apply for the PG Diploma course in HPC Application Programming (PG-DHPCAP).
Q: What is the eligibility of the PG Diploma course in HPC Application Programming?
A: The eligibility Criteria for PG-DAC 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 September 15, 2022 for which the NSM C-CAT is scheduled on July 30 / 31 2022. This
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: Do you have centralized placement cell?
A: Yes, we do have a centralized national level Common Campus Placement Programme, spread across five regions where the respective centers actively coordinate the task of organizing the campus interviews for all the students.
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.