CD61004: High Performance Computing and its Applications in Complex Physical Systems

From Metakgp Wiki
Jump to navigation Jump to search

Syllabus in ERP[edit | edit source]

Course offered by CCDS, IIT Kharagpur

Prerequisites: None

Objective: This subject is primarily designed for students who would be working on applications that require basic understanding of the high performance computing (HPC) environment, but may not necessarily have a computer science background. The objective of the subject is to (1) Introduce the basic concepts related to HPC architecture and parallel computing; (2) To discuss various computational techniques for studying soft matter systems, and (3) To apply these concepts to examine complex biomolecular/materials systems that generally require large-scale HPC platform with hybrid CPU-GPU architectures. Hands-on tutorial sessions will provide an exposure to the students in using CPU and GPU based servers of a supercomputer (or local servers) to perform simulations and analysis of such complex systems. Upon attending the course, the students will be equipped with both theoretical and practical knowledge and skills of effectively using a large supercomputing platform and computational methods to solve and evaluate real-world problems in materials science and biology.

Contents and Lecture Hours (L,T):

Component 1: Introduction to HPC architecture and parallel programming (11L, 4T)

• Basic architecture and organization: memory heirarchy, 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

Component 2: Special methods for studying complex systems (15L, 4T)

• Basics of statistical mechanics

• Potential energy surface

• Introduction to molecular mechanics

• Simulation methods: Molecular Dynamics (MD), Monte Carlo (MC) simulations

• Enhanced sampling methods

• Coarse-grain modeling

Component 3: Applications to complex systems (14L, 6T)

• 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

The above information can also be found at this link -

Concepts taught in class[edit | edit source]

  • Programming in Fortran90 with hands on sessions
  • Using Open MPI Library for parallel programming in Fortran
  • Introduction to Molecular Dynamics
  • Hands on Demo on Molecular Dynamics softwares like VMD, Packmol
  • Basics of Computer Architecture, Parallel Computing Architecture, HPC Architecture
  • Limits and Costs of Parallel Programming - Amdahl's law

(The concepts may vary from year to year depending upon the time availability)

Student Opinion[edit | edit source]

If you are interested in learning FORTRAN and basics of parallel programming, this course will be useful for you. This course is mainly for people interested in the fields of Molecular Simulations and HPC. However, if you are interested only in computing aspects, not Simulation aspects, you can take the other course offered by CCDS in Spring Semester - CD61002 - High Performance Scientific Computing.(Read more about the courses offered by CCDS here)

FORTRAN, though an old language, is popular among scientific community, and use it widely in HPC codes. The best part about the course is that emphasis is laid on hands on for FORTRAN, Open MPI and parallel computing, and the pace is comfortable even for a beginner in programming. Do take the course, if you are interested in working in this field. This course is mostly offered in Autumn Semester.(Do check ERP, things may change)

Resources[edit | edit source]