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