Study level
BAC +5
ECTS
5 credits
Component
Faculty of Science
Hourly volume
39h
Description
This module introduces advanced atomistic simulation methods, and Molecular Dynamics in particular.
It thus includes an extension of the methods already acquired, both in terms of physics (ab initio simulations, density functional theory) and in terms of implementation (optimization, parallelization) and application (introduction to the practice of simulations in a high-performance computing environment).
Objectives
Understand the challenges of 'ab initio' simulations, such as their theoretical foundations and fields of application, as well as the approximations and simplifications involved in their implementation. Understanding the operation of highly optimized algorithms (compilation, profiling, compiler optimization, notion of cache, loop vectorization, etc.); understanding the operation of parallel code (MPI and/or OpenMP), and in particular knowing how to manipulate the code of a Molecular Dynamics-type simulation with the aim of optimizing its performance, by implementing the notions of parallelization taught. Basic knowledge of the use of Machine Learning approaches in atomistic simulations.
Necessary prerequisites
Knowledge of Statistical Physics; Molecular Dynamics; Programming language; Quantum Mechanics.
Recommended prerequisites :
Knowledge of a compiled programming language (C, C++, Fortran).
Knowledge control
Full continuous assessment
Syllabus
Code optimization: performance analysis of compiled code; compilation flags; cost of simple operations; efficient iteration on multidimensional arrays; cache optimization; notions of algorithmic complexity; parallelization libraries (MPI vs. OpenMP); scalability of parallel programs; list of neighbors, identification of invariants.
Simple parallelization strategies in molecular dynamics code (atomic decomposition vs. spatial decomposition)
Introduction to the use of Machine Learning approaches for atomistic simulations
Practice atomistic simulations in a high-performance computing environment.
Introduction to ab initio simulations: know the distinction between classical and ab initio atomistic modeling and the basic principles of density functional theory; identify the main simplifications and approximations underlying an ab initio simulation and familiarize yourself with an ab initio code.