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 : 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

INSCRIVEZ-VOUS !

Emplois du temps et planning


Les cours se déroulent sur le campus de l’UFR des Sciences de Versailles (45 Avenue des Etats-Unis). 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).
  • Le calendrier de l’année complète est disponible à la fin de l’emploi du temps. 

TÉLÉCHARGER L’EMPLOI DU TEMPS DU M1
(attention, version susceptible de modifications)
La numérotation des semaines utilisée dans l’emploi du temps est la numérotation standard que vous pouvez trouver dans n’importe quel calendrier. Les semaines sont donc numérotées de s1 à s52 et s1 correspond à la première semaine de l’année en cours, tandis que s39 à la 39ème semaine en cours.

Modalité de contrôle des connaissances

UE TYPE
CONTRÔLE CONTINU
TYPE PROJET
NOTATION SEUIL DE COMPENSATION
ANGLAIS X
  • la note finale provient d’exactement 2 notes : une note représentant une moyenne à l’écrit et une note représentant une moyenne à l’oral. Les 2 moyennes ont le même coefficient dans le calcul de la note finale.
  • une deuxième session (rattrapage) est organisée et ne compense que la note écrit (l’oral ne peut donc pas être rattrapé).
PROJET X
  • la note finale provient d’au moins une note
  • pas de deuxième session.
Note ≥ à 8/20
AUTRES X
  • la note finale provient d’au moins 2 notes
  • une deuxième session (rattrapage) est organisée.
Note ≥ à 7/20