Descriptif
Le calcul scientifique parallèle permet de résoudre des problèmes mathématiques en tirant parti de la puissance des machines de calcul parallèles (i.e clusters composés de plusieurs processeurs).
Il s'agit d'un outil essentiel de la recherche et de l'industrie, utilisé dans des domaines aussi variés que la physique, le génie civil, la climatologie, l'aéronautique et la finance.
Pour traiter des problèmes de taille et de complexité croissante avec précision, il est indispensable d'exploiter au mieux les architectures parallèles en adaptant les algorithmes de résolution numérique pour permettre un calcul parallèle efficace.
L'objectif de ce cours est d'introduire les aspects théoriques et pratiques du calcul scientifique parallèle à mémoire distribuée, avec un accent particulier sur la résolution numérique parallèle de problèmes d'équations aux dérivées partielles (pour des discrétisations par différences finies et éléments finis).
Le cours débutera par une introduction à la programmation parallèle avec la bibliothèque MPI (Message Passing Interface) et à l'algorithmique parallèle, avec l'étude d'algorithmes standards du calcul scientifique.
Ensuite, on s'intéressera à la résolution parallèle efficace de systèmes linéaires de grande taille, notamment issus de discrétisation par différences finies.
On abordera enfin la résolution de problèmes non-structurés issus de discrétisations par élements finis.
Le cours comprends des TPs d'initiation à MPI en C++ et des séances de mise en oeuvre parallèle.
Evaluation sur base de TPs notés et d'un projet de calcul scientifique parallèle. Questions théoriques lors de la soutenance orale du projet.
Objectifs pédagogiques
- seront capables d'analyser des algorithmes scientifiques avancés pour la résolution parallèle de problèmes structurés et non-structurés ;
- seront familiers avec les paradigmes du calcul parallèle sur architectures à mémoire distribuée ;
- seront capables de paralléliser un code de calcul avec MPI et d'en analyser les performances de façon pertinente.
Diplôme(s) concerné(s)
- Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
- Master 2 Analyse Modélisation et Simulation
- Inside ENSTA Paris
Parcours de rattachement
Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Bases d'algèbre linéaire numérique et d'algorithmique. Commandes Unix de base et programmation en C++ (suivre le cours AMS-O12 en parrallèle de celui-ci est suffisant — pour les étudiants ENSTA, avoir suivi les cours SIM201 est suffisant).
Pour les étudiants du diplôme Master 2 Analyse Modélisation et Simulation
Bases d'algèbre linéaire numérique et d'algorithmique. Commandes Unix de base et programmation en C++ (suivre le cours AMS-O12 en parrallèle de celui-ci est suffisant — pour les étudiants ENSTA, avoir suivi les cours SIM201 est suffisant).
Format des notes
Numérique sur 20Littérale/grade européenPour les étudiants du diplôme Master 2 Analyse Modélisation et Simulation
Vos modalités d'acquisition :
Devoir (codes et rapports écrits) et projet de calcul scientifique (codes, rapport écrit et soutenance orale). Questions théoriques lors de la soutenance orale.
Le rattrapage est autorisé (Note de rattrapage conservée)- le rattrapage est obligatoire si :
- Note initiale < 7
- Crédits ECTS acquis : 5 ECTS
Le coefficient de l'UE est : 1
La note obtenue rentre dans le calcul de votre GPA.
L'UE est évaluée par les étudiants.
Pour les étudiants du diplôme Inside ENSTA Paris
L'UE est acquise si Note finale >= 10- Crédits ECTS acquis : 3 ECTS
Le coefficient de l'UE est : 1
La note obtenue rentre dans le calcul de votre GPA.
Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Vos modalités d'acquisition :
Devoir (codes et rapports écrits) et projet de calcul scientifique (codes, rapport écrit et soutenance orale). Questions théoriques lors de la soutenance orale.
- le rattrapage est obligatoire si :
- Note initiale < 6
- le rattrapage peut être demandé par l'étudiant si :
- 6 ≤ note initiale < 10
- Crédits ECTS acquis : 3 ECTS
- Scientifique acquis : 3
Le coefficient de l'UE est : 1
La note obtenue rentre dans le calcul de votre GPA.
L'UE est évaluée par les étudiants.
Programme détaillé
- Concepts de base du calcul scientifique parallèle
- Présentation générale du calcul à haute performance (architectures, algorithmique et programmation)
- Programmation parallèle avec MPI et algorithmique parallèle à mémoire distribuée
- Parallélisation d'algorithmes standards (intégration numérique, schémas de différences finies, algèbre linéaire dense et FFT)
- Résolution parallèle de systèmes linéaires de grande taille
- Méthodes directes (factorisation LU et approches par blocs)
- Méthodes itératives (méthodes stationnaires, méthode du gradient conjugué et introduction aux espaces de Krylov)
- Résolution parallèle de problèmes d'équations aux dérivées partielles
- Systèmes linéaires issus d'une discrétisation par différences finies
- Systèmes linéaires issus d'une discrétisation par éléments finis
- Introduction aux méthodes de décomposition de domaine
- Initiation à la programmation parallèle avec MPI en C++
- TPs et projet de calcul scientifique parallèle