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)
Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Analyse numérique et algèbre linéaire.
Commandes Unix de base et programmation en C (par exemple, cours IN102 ou AMS-I04).
Pour les étudiants du diplôme Master 2 Analyse Modélisation et Simulation
Analyse numérique et algèbre linéaire.
Commandes Unix de base et programmation en C (par exemple, cours IN102 ou AMS-I04).
Format des notes
Numérique sur 20Littérale/grade européenPour 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 :
TPs notés (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.
Pour les étudiants du diplôme Master 2 Analyse Modélisation et Simulation
Vos modalités d'acquisition :
TPs notés (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.
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