| |
C-DAC Certified HPC Professional Certification Program (CCHPCP):
With the increasing demand for skilled professionals in High Performance Computing (HPC) and the current dearth of qualified manpower, HPC Solutions Group, Centre for Development of Advanced Computing (C-DAC), Pune has announced the launch of C-DAC Certified HPC Professional Certification Program (CCHPCP). The primary objective of this program is to offer a standardized scale to map the HPC skillsets of both current and aspiring professionals in this domain, and enable them to pursue careers in HPC. This will also assist the Government, R&D and IT industry to recruit the right candidates from a pool of HPC industry ready and certified professionals.
Exam Information:
Exam Date: 1st September 2012
Registration starts by 25th June 2012
Last date of Registration 25th August 2012
C-DAC Certified HPC Professional Certification Program (CCHPCP) examination will be available online. This online certification exam initially will be conducted every three months and in due course, on-demand 24 hours a day, seven days a week through the existing Advanced Computing Training School (ACTS) Authorised Training Centres (ATC) network located across India acting as prometric centers. Registration can be done at the existing C-DAC ACTS ATC. For detailed list of Centres refer to acts.cdac.in Once the exam fees are paid it will be on non-refundable basis.
CCHPCP online exam will be a closed-book exam where books, course materials and notes will not be allowed. Candidates who take the online exams are subject to C-DAC norms and policies.
To be admitted into an examination center, each candidate must present a valid government issued photo identification with the candidates photograph (e.g., driver’s licence, passport, etc.). Each candidate will be required to sign in at the examination center. A candidate who does not present positive identification or who refuses or is unable to provide a matching signature will not be permitted to write the examination.
Registration / How to Apply
Register Online
Certification Exam Fees:
Rs.12,500/- (Rupees Twelve Thousand Five Hundred only) for Indian citizens.
US $ 500/- (Five Hundred Dollars only) for Foreign nationals.
Arriving at the Prometric Testing center:
- Reporting at the testing center at least 30 minutes prior to the scheduled appointment is compulsory. Prior to entering the testing room, candidates will be identified and processed for admission by the Test Administrator. The candidate must be prepared to show at least two forms of identification. One must be a government-issued photo identification. Both forms of identification must contain candidates signature.
- If the candidate reports more than 15 minutes late, the testing center personnel may choose not to seat the candidate, if doing so disrupts the other examinees in the testing room.
- The candidate is not permitted to bring papers, books, bags, computers, personal organizers, or calculators into the testing room. The testing center personnel will provide you with an erasable noteboard or paper for use while testing. All noteboards and paper will be collected by testing center personnel at the end of the exam.
Questions and Timing:
The examination will comprise of 150 objective multiple-choice type questions with no negative marking for wrong answers. The total exam time will be of 90 minutes (One and half hours). The required percentage for passing would be 70%.
Test Results:
Exam results will available at the testing center upon completion of the test on the same day. Certification from C-DAC shall be provided to the successful candidates.

Syllabus*:
Syllabus for the C-DAC Certified HPC Professional Certification Program (CCHPCP) is as under:
| C, C++, FORTRAN and Computer Fundamentals |
 |
C and C++ |
|
 |
Preprocessor Directives, Functions, pointers, arrays, structures |
|
 |
Data Structures such as stacks, trees, graphs |
|
 |
Algorithm implementation such as searching, sorting |
 |
FORTRAN |
|
 |
FORTRAN77 |
|
 |
FORTRAN90 |
|
 |
FORTRAN95 |
|
 |
High Performance FORTRAN (HPF) |
|
 |
Subroutines, Functions, Modules, Interface |
|
 |
File Handling |
|
 |
Arrays, Pointers, Derived Data Types |
|
 |
Linked Lists Program Units |
|
 |
Debugging |
|
 |
Use of Program Libraries |
 |
Uni-Processor Optimization of Serial Codes |
 |
Overview of Parallel Computing |
|
 |
Why Parallel Computing? |
|
|
 |
What is Parallel Computing? |
|
|
 |
Parallel Programming Models |
|
|
 |
Parallel Algorithmic Paradigms |
|
|
 |
Classification Of Parallel Architectures |
|
|
 |
HPC Clusters |
|
|
 |
Scalability of parallel programs |
|
|
 |
Performance Metrics |
|
|
 |
Problems of Parallelism |
|
 |
Issues and Challenges |
 |
OS Concepts, Linux and Cluster Building and Administration |
|
 |
OS Concepts |
|
|
 |
OS Structures |
 |
Process Management |
 |
Memory Management |
 |
Distributed Systems |
 |
Special Purpose Systems |
|
| |
 |
Linux Environment |
|
|
 |
Installation of Linux |
 |
Directory Structure and Predefined Environment Variables |
 |
Essential tools (grep, tar, yum, links, permissions etc.) |
 |
Shell Scripting |
 |
Linux Partitions |
 |
Logical Volume Manager (LVM) |
 |
Administration of users and groups |
 |
Linux scheduling and services |
|
| |
 |
Cluster Building and Administration |
|
|
 |
HPC Architecture |
 |
HPC Cluster Components (Hardware and Software) |
 |
Cluster Management Suite e.g. ROCKS, Oscar, xCat |
 |
Workload and Resource Managers |
 |
Virtualization |
 |
Cluster Monitoring Tools, e.g. Ganglia, Nagios and Cacti |
 |
Installing Compilers & License Manager |
 |
Storage (RAID, NAS, SAN and NFS) |
 |
Parallel File system(GFS, GPFS, Luster) |
 |
Back-up Management |
|

 |
Profiling and Debugging of Codes |
| |
 |
Identify opportunities for parallelism |
| |
 |
Performance Metrics of codes |
| |
 |
Debugging Tools |
| |
 |
Debugging of codes |
 |
Message Passing Interface |
| |
 |
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 |
| |
 |
MPI 2 Standard |
| |
|
 |
Parallel I/O |
| |
|
 |
Dynamic Process Spawning |
| |
|
 |
Interprocess Communication |
| |
 |
Case Studies (Algorithms and Parallelization Approaches) |
| |
|
 |
Jacobian Solver |
| |
|
 |
Monte Carlo Algorithm |
| |
|
 |
Matrix - Matrix Multiplication (Cannon’s Algorithm) |
| |
|
 |
FFT |
 |
OpenMP |
| |
 |
Why OpenMP |
| |
 |
OpenMP Programming Model |
| |
 |
OpenMP constructs |
| |
 |
Case-Studies (Algorithms and Parallelization Approaches) |
| |
|
 |
Matrix -Matrix-multiplication |
| |
|
 |
Density Matrix Renormalization Group Algorithm |
 |
Pthreads |
| |
 |
Pthreads Overview |
| |
|
 |
What is a thread? |
|
|
 |
What are Pthreads? |
|
|
 |
Why Pthreads? |
|
|
 |
Designing Threaded Programs |
|
 |
Pthreads APIs |
|
 |
Thread Management |
|
|
 |
Creating and Terminating Threads |
|
|
 |
Passing Arguments to Threads |
|
|
 |
Joining and Detaching Threads |
|
|
 |
Stack Management |
|
|
 |
Miscellaneous Routines |
|
 |
Mutex Variables and Condition Variables |
|
 |
Case Studies: Producer Consumer Problem |

 |
Parallel Programming with Java |
| |
 |
Core Java |
| |
 |
Java for Parallel Programming |
| |
 |
Communication in Parallel Programming with Java |
| |
 |
PVM in Java |
| |
 |
MPI in Java |
| |
 |
OpenMP in Java |
 |
MPI with Perl and Python |
 |
GPGPU Technology |
| |
 |
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 |
| |
|
 |
Cryptography Algorithms |
 |
Parallel Programming on Heterogeneous Platforms with OpenCL |
| |
 |
Introduction to OpenCL |
| |
 |
The OpenCL programming language |
| |
 |
OpenCL Platform and Runtime API |
| |
 |
OpenCL Vs CUDA (Point interchangeable in places) |
| |
 |
Case-Studies *(Algorithms and Parallelization Approaches) |

 |
Grid Computing and FPGA Based H/W Accelerators |
|
 |
Grid Computing |
|
|
 |
Introduction to Grid Computing |
|
|
 |
Grid Middleware |
|
|
 |
Grid Security |
|
|
 |
Grid Applications |
|
|
 |
Brief on algorithms and program development for Grids |
|
 |
FPGA Based H/W accelerators |
|
|
 |
Introduction to FPGAs & Cards |
|
|
 |
Introduction to VHDL |
|
|
 |
EDA tools |
|
|
 |
Programming Style |
| |
|
*Syllabus may be revised from time to time. |

What can I do to prepare for the test?
The test measures how much comprehensive knowledge you have acquired over time through on-the-job experience and training. The following books will be an extremely valuable aide in preparing to take, and pass the test.
Recommended books for reference:
Reference Books for C, C++, FORTRAN, OS concepts, PERL, PYTHON, Parallel programming paradigm using MPI, OpenMP, GPU computing:
- C++: The Complete Reference by Herbert Schildt
- Distributed Operating Systems: Concepts and Design by P K Sinha
- Introduction to Parallel Computing by Ananth Grama, George Karypis, Vipin Kumar and Anshul Gupta
- Introduction to Programming with Fortran: With Coverage of Fortran 90,95, 2003, 2008 and 77 by Ian Chivers and Jane Sleightholme
- Learning Perl by Randal L. Schwartz, Brian D Foy and Tom Phoenix
- Operating System Concepts by Abraham Silberschatz, Peter B. Galvin and Greg Gagne
- Parallel Programming in C with MPI and OpenMP by Quinn, Michael J
- Parallel Programming in OpenMP by Rohit Chandra, Ramesh Menon, Leo Dagum and David Kohr
- Programming Massively Parallel Processors: A Hands-on Approach (Applications of GPU Computing Series) by David B. Kirk and Wen-mei W. Hwu
- Programming in ANSI C by Balaguruswamy
- Programming Python by Mark Lutz
- Using MPI and Using MPI-2 (Scientific and Engineering Computation) by William Gropp, Ewing L Lusk, Anthony Skjellum and Rajeev Thakur
Reference books for HPC Cluster building and maintenance
- Building Clustered Linux Systems by Robert W. Lucke
- Building Linux Clusters by David HM Spector(O'REILLY)
- High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI by Joseph D Sloan
- How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters (Scientific and Engineering Computation) by Thomas Sterling (Author), Daniel F. Savarese (Author), Donald J. Becker (Author), John Salmon
- Linux Clustering: Building and Maintaining Linux Clusters by Charles Bookman
Note: These books cover most of the test topics which will help in preparing for CCHPCP Certification exam. The above list is not comprehensive and should not be used as the only study material for this test.

|
|