Sujet de thèse en informatique 2003

Étude et implantation sur une grille de calcul d'un encodeur vidéo MPEG4 parallèle et optimisé à plusieurs niveaux

Centre de Recherche en Informatique (CRI)
École des mines de Paris

Le but de cette thèse est d’étudier les apports des environnements de type grilles de calcul sur la parallélisation et l’optimisation de code, en prenant comme exemple d’application l’encodage de séquences vidéos au format MPEG4. Cette étude permettra ainsi de mesurer l’impact d’une optimisation à plusieurs niveaux sur la performance d’une application et de proposer de nouvelles approches pour la parallélisation d’une application sur ce type d’architecture.

Sur une grille de calcul, on peut trouver plusieurs types de machines, de la simple station de travail à la grappe de SMP à parallélisme massif. Pour simplifier le problème, on ne s’intéressera dans un premier temps qu’aux machines ayant un ou plusieurs processeurs de type IA-32 ou IA-64. Le code que nous considérons devra être transformé pour prendre en compte ces différents degrés d’exécution, c’est-à-dire les différentes sources de parallélisme de la grille. On peut tout d’abord effectuer un découpage à gros grain des données (couper la séquence vidéo en morceaux) afin de distribuer le travail aux différents nœuds hétérogènes, ce qui pose des problèmes d’équilibrage de charge et d’évaluation de la puissance des nœuds. En se plaçant au niveau de chaque nœud de la grille, éventuellement composé de plusieurs processeurs homogènes, on considérera un parallélisme à grain moyen, par exemple un découpage en processus légers (threads) ou en différents processus communiquant par des messages (MPI). Finalement, au niveau de l’exécution sur un seul processeur, il faut considérer une optimisation à grain fin du code, en utilisant par exemple au maximum les optimisations sur la hiérarchie mémoire (caches et registres), les capacités SIMD de l’architecture IA-32 ou encore les capacités spéculatives et VLIW de l’architecture IA-64.

Le candidat prendra comme code de départ une des implantations d’encodage MPEG4 libres XViD ( http://www.xvid.org) ou avcodec ( http://ffmpeg.sourceforge.net). Pour étudier et optimiser le code, le candidat devra trouver un équilibre entre optimisation “automatique” et optimisation “à la main”, en tirant parti des différents outils d’analyse et de transformation de code développés par la communauté au cours de ces dernières années (notamment les environnements PIPS et MetaCC développés au CRI) et en essayant de trouver d’autres possibilités d’optimisation qui n’auraient pas été trouvées par ces outils ou qui sont en dehors de leur champ d’application (découpage général de l’application).

Le candidat devra avoir un solide bagage en optimisation de code, algorithmique, parallélisme et grilles de calcul, ainsi qu’une très grande maîtrise de la programmation en C. Cette thèse se déroulera au sein du Centre de recherche en informatique à Fontainebleau dans l’équipe ATIP (Analyse, Transformations et Instrumentations de Programmes), dans le cadre du projet MetaCC soutenu par l’ACI GRID du ministère de la recherche. Le candidat devra être titulaire d’un DEA en informatique. Ce travail pourra commencer par un stage de DEA sur un sujet réduit.

Personne à contacter :

Georges-André Silber
Centre de recherche en informatique
École des mines de Paris
35, rue Saint-Honoré
77305 Fontainebleau cedex
Tél : 01 64 69 48 36
silber@cri.ensmp.fr
$Id: divx.tex,v 1.13 2003/03/26 09:50:02 silber Exp $