e-Brochure

 
C-DAC Logo
 
Logo

PG Diploma in High Performance Computing Application Programming (PG-DHPCAP)

Download Course Flyer
(File Type: PDF, File Size: 485 KB, Date: 21/05/2024)


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

The educational eligibility of the PG Diploma in HPC Application programming is 
  • 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
The candidates must have secured a minimum of 55% marks in their qualifying examination.

 

  

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.

   Data Manipulation, Web Scraping, NumPy & Pandas, Data Pre-processing, Data Manipulation, Data Visualization, Basics of Statistics and tatistical Analytics, Exploratory Data Analysis (EDA), Probability and Distribution functions, Inferential Statistics, Regression- Linear & Logistics, Random Processes

   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

  
Aptitude: Percentage, Profit & Loss, Ratio & Proportion, Average, Mixture & Allegation, Simple Interest & Compound Interest,   Seating Arrangements (Linear & Circular), Ages, Time, Speed & Distance, Trains, Boats & Streams, Time & Work, Wages (Man days), Pipes & Cisterns, Clocks, Permutations & Combinations, Probability,

Effective Communication: Personality Development, English Grammar, Correct Usage of English, Common Mistakes in English Communication, Listening Skills, Reading Skills, Writing Skills, Public Speaking, Presentation Skills, Group Discussions, Interpersonal Skills, Personal Interviews

   Designing parallel programming models, optimization techniques, performance analysis, and software development practices for HPC Application Programming.

   The PG Diploma in HPC Application Programming will help students
 
  • 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.

Top