Next Contents

Préface

Ce cours a été originellement défini et enseigné par Patrick Cousot (Ecole Normale Supérieure) et Alain Bamberger (Institut Français du Pétrole). Les notes qui suivent se sont grandement inspirées de leurs cours.

L'objectif est de montrer à l'étudiant comment programmer efficacement une machine parallèle, à travers un certain nombre d'exemples venant du monde du calcul scientifique. En passant, on en profite pour parler d'algorithmique parallèle et distribuée, d'architecture, de sémantique, et bien entendu de mathématiques appliquées.

On a choisi comme support informatique, la librairie de passage de messages PVM, qui permet de programmer aussi bien des super-calculateurs que des réseaux de stations. Cette librairie est très utilisée dans le monde scientifique (même si elle est maintenant détronée par MPI) et ressemble fortement à la plupart des autres librairies de passages de messages utilisées par ailleurs. Nous faisons un comparatif à l'annexe B. Le ``kit de survie'' pour programmer (sous PVM) est principalement constitué des chapitres 1 et 2, ainsi que de l'annexe C. Des compléments sont faits dans les chapitres 5 et 6, mais ne sont tout de même pas exhaustifs; pour plus de détails on se reportera au livre [GBD+94].

Les notions plus pérennes du parallélisme (avec une idée d'application scientifique) sont développées au chapitre 7. Son but principal est de faire comprendre la difficulté à assurer un bon rendement et de bonnes performances sur des machines parallèles, à travers des exemples. Les notions pérennes du parallélisme (coté sémantique, c'est à dire avec l'idée d'assurer la correction du programme plutôt que sa performance) sont brièvement développées à l'annexe A.

Enfin, deux applications typiques du calcul scientifiques (parallèle) sont entièrement décrites dans les chapitres 3, 4 et 8. Les deux premiers sont consacrés à des problèmes directs alors que le dernier est plutôt consacré à des problèmes inverses. On discute non seulement les mathématiques sous-jacentes mais également l'implémentation et la parallélisation du calcul.

Un complément utile du cours est le polycopié d'Alain Bamberger [Bam98]. On pourra également consulter les compléments et errata du cours à l'adresse http://w3.edu.polytechnique.edu/profs/informatique/Eric.Goubault ainsi que la page web de l'ORAP http://www.irisa.fr/orap/, de PVM http://www.ep m.ornl.gov/pvm/ et de MPI http://www.mcs.anl.gov/mpi/index.html.

Enfin, on conseille la lecture (même rapide) de livres tels que [LER92] et [CS98]. Des cours similaires ou complémentaires ont été enseignés par ailleurs, en particulier à l'IDRIS http://www.idris.fr/data/cours/cours-IDRIS.html#PVM au MIT http://command.mit.edu/18.337 et à Berkeley http://now.CS.Berkeley.E DU/cs267/.


Next Contents