Programming Methods for High-Performance Computing
- UE code SPHYM126
-
Schedule
15 15Quarter 1
- ECTS Credits 3
-
Language
Français
- Teacher Mayer Alexandre
The student will learn advanced programming techniques and the use in command lines of free and performant tools. The main objective of this course is parallel programming (OpenMP, MPI and OpenACC libraries). The student will apply finite-difference techniques for the resolution of typical problems in physics. The student will also get notions of Unix as required for the use of a computer cluster.
Working with command lines. Installation of a complete work environment with free and performant tools. Advanced use of the gfortran compiler (compilation using a Makefile, optimization, debugger, profiling). Techniques of Parallel Programming : 1. General notions of parallelism 2. Parallelization using OpenMP 3. Parallelization using MPI 4. Parallelization with job arrays 5. Parallelization on a GPU with OpenCC. Finite-Difference Methods : 1. Numerical derivatives 2. Electrostatics 3. Schrödinger's equation 4. Numerical stability. Introduction to Evolutionary Computing (Machine Learning). Notions of Unix and initiation to the use of a computer cluster.
The exam will essentially evaluate the work achieved during practical sessions. The student will have to show that he acquired the different techniques presented in the course. He will present his solutions for the exercises that come with this course.