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 au choix (ex. accélération d'un solveur éléments finis discontinus, calcul d'un arbre couvrant de poids minimum, ...).
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.
effectifs minimal / maximal:
10/25Diplôme(s) concerné(s)
- Master 1 Parisien de Recherche Opérationnelle
- Master 1 Applied Mathematics ans statistics - Orsay
- Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Parcours de rattachement
Pour les étudiants du diplôme Master 1 Applied Mathematics ans statistics - Orsay
Notions d'algorithmique, commandes Unix de base, et programmation en C ou C++. Les cours SIM201 et SIM202 ne sont pas pré-requis. Pour les projets, il est nécessaire d'avoir suivi ANN201 (éléments finis) ou RO201 (recherche opérationelle) ou un cours équivalent.
Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Notions d'algorithmique, commandes Unix de base, et programmation en C ou C++. Les cours SIM201 et SIM202 ne sont pas pré-requis. Pour les projets, il est nécessaire d'avoir suivi ANN201 (éléments finis) ou RO201 (recherche opérationelle) ou un cours équivalent.
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 :
Devoir et projet de programmation scientifique
Le rattrapage est autorisé (Max entre les deux notes écrêté à une note seuil)- 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 : 1.25 ECTS
- Scientifique acquis : 1.25
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 1 Applied Mathematics ans statistics - Orsay
Vos modalités d'acquisition :
Devoir et projet de programmation scientifique
Le rattrapage est autorisé (Note de rattrapage conservée)- le rattrapage est obligatoire si :
- Note initiale < 7
- le rattrapage peut être demandé par l'étudiant si :
- 7 ≤ note initiale < 10
- Crédits ECTS acquis : 1.25 ECTS
- Scientifique acquis : 1.25
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 1 Parisien de Recherche Opérationnelle
Le rattrapage est autorisé (Note de rattrapage conservée)- le rattrapage est obligatoire si :
- Note initiale < 7
- Crédits ECTS acquis : 5 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 au choix (ex. accélération d'un solveur éléments finis discontinus, calcul d'un arbre couvrant de poids minimum, ...).