Cours :
Distribution et parallélisme
Responsable : Françoise Baude
Objectifs :
- Avoir acquis les notions
d'architecture de calculateurs parallèles et de Calcul Haute Performance
- Savoir "penser
parallèle" dès la specification d'une application
jusqu'à sa mise en oeuvre efficace dans un environnement de
calcul multi-processeur, voire multi-coeur.
Structure :
14 heures de cours, 14
heures de TD et 14 heures de TD sur machine
Evaluation
:
Un projet de
programmation (30%), un devoir individuel (exercices et/ou recherches
documentaires) (20%),
et un examen partiel (50%)
Programme
:
- Architectures parallèles
- Calcul Haute Performance,
Supercalculateurs, Grilles de calcul
- Schémas classiques d'expression du
parallélisme (données, flux, taches...)
- Introduction aux Modeles
théoriques du parallélisme
- Algorithmes parallèles
classiques
- Décomposition, placement,
ordonnancement des taches
- Langages ou
bibliothèques standards: OpenMP, MPI
- Mesures de performances,
passage à l'échelle
- Prise en compte des temps
d'accès mémoire
- Tendances: programmation (bas
niveau) sur GPUs et sur multi-cores
Pré-requis :
Connaissances
générales sur les systèmes d'exploitation,
sur les concepts de gestion de la concurrence
Programmation en C
Références
:
[1] M. Gengler, S. Ubeda, F. Desprez, Initiation au parallelisme
- Concepts, architectures et algorithmes, Masson 1996
[2] P.S. Pacheco. "Parallel programming with MPI". Morgan
Kaufmann. 1997.
[3] R. Chandra, R. Menon, L. Dagum, D. Kohr, D. Maydan, J.
McDonald. "Parallel Programming in OpenMP". Morgan Kaufmann
Publishers. 2000.
[4] A. Grama, A. Gupta, G. Karpys, V. Kumar, Introduction to
Parallel Computing (2nd edition), Addison Wesley 2003