S8 INF Programmation Parallèle Haute Performance
Présentation
Cette UE porte sur la programmation parallèle multi-threads et multi-processeurs. Elle aborde les principaux modèles d'exploitation du parallélisme, la mesure de la performance, et se focalise sur la programmation openMP et PVM.
Pré-requis nécessaires
- Systèmes d'exploitation
- Architecture des ordinateurs
Objectifs
Cette UE est composée de quatre parties :
- Introduction au parallélisme : modèles de parallélisme (données, contrôle, flot), modèles de programmation parallèle, mesures et limites de performance.
- Programmation parallèle multi-threads en mémoire partagée avec openMP : parallélisation de boucles, ordonnancement statique et dynamique, création de tâches dynamiques.
- Programmation parallèle multi-processus à grande échelle en mémoire distribuée avec PVM (Parallel Virtual Machine) : passage de messages, création/destruction de processus, paradigme maître/esclave.
- Algorithmes et techniques pour le parallélisme massif : ordonnancement, analyse de dépendances, réécriture de nids de boucle, calcul systolique.
Compétences visées
- Capacité d'identification des différents types de parallélisme exploitables dans une application
- Parallélisation muti-threads de programmes séquentiels en openMP
- Savoir concevoir des programmes multi-processus pour le calcul parallèle
- Amélioration des performances parallèles par réécriture de code
Bibliographie
- Algorithmes et architectures systoliques - P.Quinton et Y. Robert, Masson, 1989
- Algorithmique parallèle – A. Legrand et Y. Robert, Dunod, 2003
- PVM: Parallel Virtual Machine A Users' Guide and Tutorial for Networked Parallel Computing – A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, V. Sunderam, MIT Press, 1994
Langue d'enseignement
Français