i Center for Computational Data Science

Courses and Syllabus

Micro-Specialization: High-performance computing and applications

Find course overview and syllabus here


Microcredit Course on Accelerated Data Science

Course Overview:Most machine/deep learning systems require heavy computational resources and a long time to train and deploy. Many of these algorithms can be accelerated using GPU programming. The goal of this the course is to cover state of the art in GPU accelerated machine learning systems.

The microcredit course will first cover the theoretical basics of machine learning and deep learning algorithms with emphasis on their prospects of GPU based executions. Then several technologies based on CUDA systems on GPUs will be explained. The course will focus on practical aspects of implementation with actual demonstration with examples. Hand-on session on the Paramshakti supercomputer will be conducted.

Syllabus: Fundamentals of GPU Architecture & CUDA Introduction to Accelerated Data Science: RAPIDS, Introduction to Machine Learning Algorithms Case Study/Hands-on: Solving and Benchmarking End to End Data Science Problem using RAPIDS Introduction to Deep Neural Network & Deep Learning, NVIDIA CUDA-X Platform Overview: Accelerated Computing for Deep Neural Networks Accelerating and Scaling Deep Neural Networks using DALI, Mixed Precision and Multi-GPU Scaling Optimizing and Deployment of Neural Networks using TensorRT & Triton Inference Server


CD61001 - QUANTUM MECHANICS AND QUANTUM COMPUTING (3-1-0)

FUNDAMENTAL CONCEPTS: Stern-Gerlach experiment, kets, bras and operators, base kets and matrix representations measurements, observables and the uncertainty relations, change of basis, position, momentum and translation, wave functions in position and momentum space, time evolution and the Schrödinger equation.

THEORY OF ANGULAR MOMENTUM: rotations and angular momentum commutation relations Spin 1/2 systems and Finite rotations, SO(3), SU(2) and Euler rotations, density operators and pure versus mixed ensembles, eigenvalues and eigenstates of angular momentum addition of angular momenta, Schwinger oscillator model of angular momentum spin correlation measurement and Bell's inequality, tensor operators.

QUANTUM COMPUTING: qubits, quantum entanglement; reversible computation, quantum gates; quantum parallelism and simple quantum algorithms; quantum Fourier transforms and its applications, quantum search algorithms; introduction to quantum error correcting codes; entanglement assisted communication; elements of quantum information theory and quantum cryptography.


CD61002 - High Performance Scientific Computing (3-1-0-0)

Sparse matrices: discretization of differential equations, storage schemes for sparse matrices, permutations and reorderings, direct solution methods

Iterative methods and convergence: sor, gradient search methods: steepest descent, conjugate gradient algorithm, krylov subspaces methods: arnoldi's method, gmres, symmetric lanczos algorithm, convergence analysis, block krylov methods, preconditioning techniques, ilu factorization preconditioners, multigrid methods

Domain decomposition: schwarz algorithms and the schur complement, graph partitioning: geometric approach, spectral techniques

Parallel computing: architectures for parallel computing, shared and distributed memory performance metrics, parallelization of simple algorithms

Mpi and openmp: basic mpi and openmp calls parallelizing matrix solvers using domain decomposition;

CUDA: gpgpu architecture thread algebra for matrix operations accelerating matrix solvers using cuda


CD61004 - High Performance Computing and its Applications in Complex Physical Systems (3-1-0)

Introduction to hpc architecture and parallel programming: basic architecture and organization: memory hierarchy, shared and distributed memory architectures, multiprocessor architecture, introduction to thread level parallelism, accelerators (gpu, xeon-phi), performance prediction and evaluation, parallel programming/computing: introduction to mpi/ openmp, basics of cuda programming, optimizing cluster operation: running jobs in hpc environment, job scheduler, cluster level load balancing

Special methods for studying complex systems: basics of statistical mechanics, potential energy surface, introduction to molecular mechanics, simulation methods: molecular dynamics and monte carlo simulations, enhanced sampling methods, coarse-grain modeling

Applications to complex systems: open-source software: md and mc simulation packages, parallelization in software: domain/spatial decomposition, distribution of non-bonded interactions, dynamic load balancing, multiprocessor communication, modeling of soft matter systems such as biomolecules, polymers, carbon nanostructures etc., Computation of thermodynamic, kinetic and mechanical properties of different complex systems


CD61006 - QUANTUM METHODS IN MOLECULAR SIMULATIONS (2-0-3)

THEORY COMPONENT: analytical solution of hydrogen and hydrogenic systems; Born-Oppenheimer approximation; formulation of Hartree-Fock method for molecular systems; post HF methods overview; exchange and correlation concepts; configuration interaction techniques; coupled cluster technique for many-body systems; density functional theory; exchange-correlation functionals, dispersion corrections; time-dependent DFT; geometry optimization techniques; basis sets in quantum chemistry; general framework of molecular simulations; quantum chemical simulations of solids and crystalline materials; simulation of molecular catalysis; vibrational analysis and frequency calculations; simulation of molecular properties.

LAB COMPONENT: building molecules; Z-matrices; internal coordinates; SCF calculations of atoms and small-to-medium sized molecules, restricted and unrestricted Hartree Fock calculations; SCF convergence criteria; geometry optimization techniques; vibrational frequency calculations and analysis of vibrational modes; calculation of Gibbs free energy of formation and Gibbs reaction energy; CI, MP2, coupled-cluster calculations of small molecules; multi-configuration SCF calculations; concept of active space; density functional calculations of large molecules; cost-benefit analysis; effects of basis sets and electron correlation - a comparison of methods; framework for crystalline solids; building crystal planes and supercells; DFT calculations of crystalline solids; simulation of molecular catalysis; biomolecular simulation using hybrid QM/MM approach.


CD61203 - Essential Tools for Scientific Computing (3-1-0)

Syllabus: Using Unix-based operating systems: history, Unix file system, basic and advanced Unix commands, and text editors, Shell scripting: introduction, understanding shell scripts, exit status and return codes, wildcards, logical operators, conditions and loops, array and file operations, functions, debugging, bash i/o operations, Command line utilities: awk and sed programming, Basics of python programming: installation, variables and expressions, lists, tuples and data dictionaries, booleans and conditions, functions, loops, and iterations, Using make, source code, compilation, and libraries, Source code management (Git and GitHub): introduction, creating a repository, branching and merging, git workflows, Job scheduler and resource manager (slurm), Introduction to document preparation (markdown and LaTeX)Scientific data visualization and analysis (xmgrace, matplotlib), Open-source libraries and solver packages: usage and their performance (Palabos, BLAS, LAPACK, WORHP, SciPy, OpenFOAM, FreeFEM, etc).