Cours de base (30 h de cours, 30h de TD)
Cours : Anne Benoit (Anne.Benoit)
TD : Florent Bouchez, Veronika Rehn (Florent.Bouchez, Veronika.Rehn)
“Killer micros, killer nets, killer apps”, le parallélisme
est parmi nous, pour les très riches avec les
super-calculateurs-multiprocesseurs vectoriels, et pour les moins
riches avec les réseaux de stations de travail ou piles de PC,
reliées par un réseau dédié rapide ou par un
simple Ethernet.
Mettre en oeuvre le parallélisme impose de repenser les
applications, donne une nouvelle dimension à l’algorithmique,
et nécessite de prendre en compte les paramètres clés
de l’architecture cible. Ce cours propose une introduction
approfondie aux concepts et techniques de l’algorithmique
parallèle, en relation étroite avec le modèle
d’architecture considéré.
On commence par les modèles théoriques (PRAM, BSP) et la complexité. On étudie quelques algorithmes parallèles simples pour des machines à mémoire partagée et à mémoire distribuée. On dépassera rarement le produit de matrices ou les plus longs chemins dans un graphe, mais que de complications! La hiérarchie mémoire, le surcoût des communications, l’équilibrage de charge, tout se conjugue pour modifier en profondeur les algorithmes usuels.
Quelques sujets abordés dans ce module :
Le cours est organisé selon le schéma hebdomadaire suivant :
La note de contrôle continu est obtenue à partir de ces devoirs. Un partiel et un examen final sont organisés en milieu et en fin de semestre.
Note that extensive lecture notes are handed out at the beginning of the class.