Previous Up Next

Parallelisation automatique

Cours de recherche (30h de cours, travail sur des articles scientifiques)

Cours : Paul Feautrier (Paul.Feautrier)

Présentation générale

Les lois de la physique, en particulier celles relatives à la dissipation thermique, font que les performances des technologies à base de silicium vont plafonner autour des valeurs actuelles (fréquence d’horloge de quelques GigaHertz, finesse de gravure d’une dizaine de nanomètres). Les gains de perfomance indispensables aux applications en cours de développement (reconnaissance de forme, introduction de la sémantique, grand calcul numérique) ne pourront, en attendant la mise au point de technologies révolutionnaires, n’être trouvées que dans l’utilisation accrue du calcul parallèle. Cette tendance est manifeste dans l’apparition des multiprocesseurs (multicore) sur les machines grand public, et des systèmes sur puce (SOC) pour les dispositifs enfouis. Pour une présentation plus détaillée de cette situation, on consultera Mark Oskin, CACM 51, No7, pp 70–78, July 2008. Il devient urgent de faire sortir la programmation parallèle de la niche du calcul à hautes performances, comme le montre la multiplication des colloques et symposia consacrés à l’utilisation des multicores.

Or la programmation parallèle est difficile. Pour être efficace, elle demande une connaissance détaillée de la machine cible, et se heurte à des problèmes de portabilité d’un système à l’autre. Il existe de nombreuses propositions d’aide à la programmation parallèle:

Dans l’absolu, c’est la dernière méthode qui paraît la plus séduisante. En pratique, elle se heurte à des problèmes liées d’une part à la difficulté d’analyser les programmes dont le comportement est trop dynamique, et d’autre part à la complexité des problèmes d’optimisation à quoi se ramène l’écriture du programme cible.

Il semble clair que la solution du problème passera par une approche combinée. Le compilateur se chargera des parties statiques et des détails techniques, le programmeur devra l’aider pour les parties dynamiques et le parallélisme à très gros grain. Encore faudra-t-il développer des modèles moins rébarbatifs que l’existant (par exemple, que les threads).

Le but de ce cours est de présenter le point où est parvenue la parallélisation automatique après les recherches intensives de la période 1990–2000. C’est à partir de cet état de l’art que devront se positionner les recherches de la prochaine décennie.

Plan du cours
Organisation
Bibliographie
Darte, Robert, Vivien
Scheduling and automatic Parallelization
Birkhäuser, 2000

Zima, Chapman
Supercompilers for parallel and vector computers
ACM Press, 1991

Wolfe
Optimizing Supercompilers for Supercomputers
Pitman and The MIT Press, 1989

Previous Up Next