- Partager cette page :
- Version PDF
Programme du M1 CHPS
Semestre 1
30 ECTS, 257h d’enseignements en présentiel
keyboard_arrow_down Outils de base pour le HPC (4 ECTS, 45h)
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).
> 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).
keyboard_arrow_down Base du Génie Logiciel (2 ECTS, 15h)
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
> Gestion de version
> Système de gestion de version décentralisé
> Automatisation des processus de construction logicielle
keyboard_arrow_down Techniques de Modélisation (4ECTS, 30h)
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
> 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
keyboard_arrow_down Architectures Parallèles (4 ECTS, 45h)
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
> 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
keyboard_arrow_down Calcul Numérique (4ECTS, 45h)
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
> 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
keyboard_arrow_down Programmation Orientée Objet pour le calcul scientifique (5 ECTS, 45h)
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
> 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
keyboard_arrow_down Projet de programmation numérique (4 ECTS)
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é.
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é.
keyboard_arrow_down Anglais Technique Semestre 1 (3 ECTS, 27h)
Objectifs : Maîtrise de l’anglais scientifique et technique
Semestre 2
30 ECTS, 257h d’enseignements en présentiel
keyboard_arrow_down Algorithmique et Programmation Distribuée (4 ECTS, 45h)
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
> 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
keyboard_arrow_down Algorithmique et Programmation Parallèle (4 ECTS, 45h)
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
> 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
keyboard_arrow_down Optimisation et Recherche Opérationnelle (3 ECTS, 30h)
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
> 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
keyboard_arrow_down Visualisation Scientifique (3 ECTS, 30h)
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
> Les données : exemples, maillage
> Visualisation de données surfaciques
> Visualisation de données volumiques
> Visualisation en dynamique des fluides
keyboard_arrow_down Techniques d’optimisation de la parallélisation (3 ECTS, 30h)
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
> 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
keyboard_arrow_down Architecture interne des systèmes d'exploitation (4ECTS, 45h)
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
> 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
keyboard_arrow_down Projet de programmation sur machine parallèle (5 ECTS)
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.
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.
keyboard_arrow_down Anglais Technique Semestre 2 (4 ECTS, 27h)
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).