Conditions d’admission
Ce master s’adresse aux étudiant(e)s titulaires d’une licence ou d’un diplôme équivalent à une licence d’informatique, une licence de mathématiques ou une licence de physique ou de mécanique.
Admission sur dossier.
Contenu de la formation
Semestre 1
30 ECTS, 257h d’enseignements en présentiel
Objectifs : Maîtriser les outils et techniques de base en mathématiques et en informatique, nécessaires à la formation au calcul haute performance.
- Informatique : Maîtrise du langage C (Structures de contrôle, Structures de données, Gestion de la mémoire, Syntaxe) Utilisation de base d’un ordinateur et du système d’exploitation associé (UNIX : généralité, Makefile, compilation…)
- Mathématiques : Rappels d’analyse (série, intégrale) Rappels d’algèbre linéaire (opérations matricielles, décomposition en valeurs propres)
Objectifs : Maîtriser les bases des outils informatiques permettant la gestion de versions des sources ainsi que de la portabilité d’une application.
- Gestion de version
- Système de gestion de version décentralisé
- Automatisation des processus de construction logicielle
Objectifs : Comprendre les techniques des principales méthodes de modélisation
- Principe de la modélisation : Physique, Mathématiques, Informatique
- Méthodes de discrétisation : Différences finies, Éléments finis, Volumes finis, Méthodes spectrales
Objectifs : Assurer une bonne connaissance des architectures parallèles (organisation, fonctionnement) et de leurs composants clés.
- Taxonomie des architectures parallèles
- Architectures SIMD/vectorielle
- Architectures mémoire partagée/ mémoire distribuée
- Réseaux d’interconnexion
- Cohérence des caches
- OS et runtime pour machines parallèles
Objectifs : Maîtriser les bases du calcul numérique en abordant en détail les problèmes de mise en œuvre informatique
- Précision numérique (représentation des nombres, calculs d’erreurs)
- Opérations matricielles en algèbre creuse
- Méthodes directes pour la résolution de systèmes linéaires
- Méthodes itératives pour la résolution de systèmes linéaires
- Calcul de valeur propre
- Interpolation et approximation polynomiale
- Intégration numérique
Objectifs : Maîtriser la programmation objet et savoir l’appliquer au calcul intensif. Le langage de référence sera C++
- Notions de types abstraits
- Principes de la programmation objet (objets, classes etc …)
- Relations, héritage, classes abstraites
- Types abstraits, polymorphisme
- Présentation/étude de C++
- Comparaison de C++ et de Java
- Introduction aux principales bibliothèques de calcul scientifique
Objectifs : Mettre en pratique les principales notions acquises au premier semestre notamment en cours de calcul numérique et Techniques de modélisation, et réaliser un projet en équipe.
Les étudiants travaillent en groupe d’effectif réduit. L’objectif est d’implémenter un ou plusieurs algorithmes mis en œuvre pour la modélisation d’un phénomène (reconnaissance de visage, recherche du plus court chemin, écoulement d’un fluide, etc.…). Une importance particulière sera donnée à l’étude théorique et pratique de la complexité des algorithmes implémentés ainsi qu’à la compréhension du phénomène modélisé.
Objectifs : Maîtrise de l’anglais scientifique et technique
Semestre 2
30 ECTS, 257h d’enseignements en présentiel
Objectifs : Présentation des problèmes fondamentaux en algorithmique distribuée et de leurs solutions.
- Paradigmes de l’informatique distribuée. Modèles. Ordre causal
- Exclusion Mutuelle, Election, Structuration, Routage
- Tolérance aux pannes dans les systèmes distribués
- Solutions adaptatives, outils et techniques
- Algorithmique distribuée probabiliste
Objectifs : Maîtriser la programmation d’une architecture parallèle et les techniques classiques de parallélisation d’algorithmes numériques.
- Du calcul séquentiel au calcul parallèle / distribué à grande échelle
- Principaux noyaux d’applications (Benchmarks de base)
- Principaux modèles de programmation et d’exécution (calcul vectoriel, calcul data-parallèle, calcul parallèle à gros grain)
- Principaux langages / librairies (MPI/OpenMP, pthread)
- Introduction aux principales bibliothèques du calcul scientifique parallèle
Objectifs : Acquisition de méthodes fondamentales en optimisation et notamment en recherche opérationnelle.
- Graphes et optimisation
- Programmation linéaire (simplexe, dual)
- Programmation linéaire en nombre entiers (modélisation, approximation heuristiques, branch and bound)
- Processus de décision de Markov : modélisation et algorithmes de résolution
- Recherche opérationnelle en-ligne : modélisation et algorithmes de résolution
- Introduction aux méthodes méta-heuristiques
Objectifs : Maîtriser les principales techniques de représentation, de modélisation et de visualisation de grands ensembles de données tridimensionnelles (structurées ou non)
- Les données : exemples, maillage
- Visualisation de données surfaciques
- Visualisation de données volumiques
- Visualisation en dynamique des fluides
Objectifs : Maîtriser les principaux problèmes (pertes de performance) liés à la parallélisation : savoir les identifier et y remédier
- Modèles simples d’architecture parallèle
- Méthodologie de mesures de performances : profilage, Astex
- Principaux goulots d’étranglement, overhead de communication, overhead de synchronisation, équilibrage de charge, saturation réseaux : analyse quantitative et qualitative
- Outils de debugging parallèle; DDT, Marmot, Thread Checker
- Utilisation de flags de compilation, de pragmas, CAPS Explorer
- Utilisation d’outils d’analyse de performance : Tau, Kojak, Vampir, PTU
Objectifs : Maîtriser les principaux mécanismes internes des systèmes d’exploitation et leur application au calcul haute performance
- Ordonnancement parallèle et temps réel
- Processus, Threads, concurrence et synchronisation
- Organisation de la mémoire
- Systèmes de fichier et Entrées/Sorties
- Virtualisation
Objectifs : Mettre en œuvre les connaissances acquises dans le domaine du parallélisme
Les étudiants travaillent en groupe d’effectif réduit. L’objectif est de :
- Proposer une parallélisation des algorithmes numériques étudiés au semestre 1.
- Programmer sur une machine parallèle.
- Étudier les performances.
Objectifs : Maîtrise de l’anglais scientifique et technique
Emplois du temps et planning
Les cours se déroulent au bâtiment Rabelais, au 9 Boulevard d’Alembert, 78280 Guyancourt, sur le campus Saint Quentin en Yvelines de l’UVSQ. Certaines séances de projet se dérouleront en fin d’année à la Maison de la Simulation (Plateau de Saclay, CEA, Bâtiment Digiteo).
- La présence aux Cours Magistraux, TD et TP est obligatoire (formation en Contrôle Continu).
Modalité de contrôle des connaissances
UE | TYPE CONTRÔLE CONTINU |
TYPE PROJET |
NOTATION | SEUIL DE COMPENSATION |
---|---|---|---|---|
ANGLAIS | X |
|
||
PROJET | X |
|
Note ≥ à 8/20 | |
AUTRES | X |
|
Note ≥ à 7/20 |