Descriptif
Le calcul à haute performance (HPC) est utilisé dans l'industrie et la recherche académique pour résoudre une large gamme de problèmes scientifiques (ex. en physique, aéronautique, énergie, électronique, environnement, …). Les ressources de calcul croissantes permettent de traiter des problèmes de plus en plus complexe. Cependant, les méthodes numériques et les programmes informatiques doivent entre conçus en tenant compte des spécificités des problèmes considérés et des ressources informatiques disponibles.
Ce cours est destiné à des étudiants inscrits dans un cursus de mathématiques appliquées ou de mécanique numérique. Il constitue une initiation au calcul à haute performance. On cherchera à améliorer la performance par un choix de méthodes numériques adaptées, et une mise en œuvre informatique utilisant pleinement les ressources de calcul disponibles.
Le cours est composé de quelques séances de programmation (ex. utilisation de librairie, programmation parallèle avec OpenMP, ...), et d'un projet de calcul scientifique (accélération d'un solveur éléments finis discontinus).
Site Internet : https://sim3.pages.math.cnrs.fr/
Remarque : Il n'est pas nécessaire d'avoir suivi les cours SIM201 et SIM202 pour suivre ce cours, bien que cela soit un avantage.
Objectifs pédagogiques
A l'issue du cours, les étudiants seront capables ...
- d'analyser la pertinence d'algorithmes scientifiques pour le calcul à haute performance ;
- de programmer efficacement des algorithmes scientifiques sur des processeurs multi-cœurs standards ;
- d'analyser la performance et les résultats de codes de calcul.
Diplôme(s) concerné(s)
Parcours de rattachement
Format des notes
Numérique sur 20Littérale/grade réduitPour les étudiants du diplôme M1 MJH - Mathématiques Jacques Hadamard
L'UE est acquise si Note finale >= 10- Crédits ECTS acquis : 2 ECTS
Programme détaillé
- Calcul scientifique avancé et introduction à la programmation parallèle ;
- Techniques de programmation et analyse de performance (ex. libraires scientifiques, vectorisation, programmation parallèle à mémoire partagée avec OpenMP, introduction générale au calcul réparti et au calcul sur architectures modernes, …) ;
- Exercices de programmation scientifique ;
- Projet de calcul scientifique (i.e. accélération d'un solveur éléments finis discontinus).