Level of Education
5 years of post-secondary education
ECTS
5 credits
Training Structure
College of Sciences
Number of hours
39h
Description
This module provides an introduction to advanced applications of atomistic simulation methods, particularly molecular dynamics.
It thus involves expanding on the methods already learned, both in the field of physics (ab initio simulations, density functional theory) and in terms of implementation (optimization, parallelization) and practical application (an introduction to conducting simulations in a high-performance computing environment).
Objectives
Understand the challenges of “ab initio” simulations, including their theoretical foundations and areas of application, as well as the approximations and simplifications involved in their implementation. Understand how highly optimized algorithms work (compilation, profiling, compiler optimization, caching, loop vectorization, etc.); understand how parallel code works (MPI and/or OpenMP), and in particular, know how to modify the code for a molecular dynamics simulation to optimize its performance by applying the parallelization concepts taught. Basic concepts regarding the use of machine learning approaches in atomistic simulations.
Mandatory Prerequisites
Knowledge of statistical physics; basics of molecular dynamics; knowledge of a programming language; quantum mechanics
Recommended prerequisites:
Knowledge of a compiled programming language (C, C++, Fortran).
Knowledge Assessment
Comprehensive Continuous Monitoring
Course Outline
Code optimization: performance analysis of compiled code; compilation flags; cost of basic operations; efficient iteration over multidimensional arrays; cache optimization; concepts of algorithmic complexity; parallelization libraries (MPI vs. OpenMP); scalability of parallel programs; neighborhood lists; identification of invariants.
Simple Parallelization Strategies in Molecular Dynamics Code (Atomic Decomposition vs. Spatial Decomposition)
An Introduction to the Use of Machine Learning Approaches for Atomistic Simulations
Conducting atomistic simulations in a high-performance computing environment.
Introduction to ab initio simulations: understand the distinction between classical and ab initio atomic modeling and the basic principles of density functional theory; be able to identify the main simplifications and approximations underlying an ab initio simulation; and become familiar with an ab initio code.