Étude et implantation sur une grille de calcul d`un encodeur vidéo

Transcription

Étude et implantation sur une grille de calcul d`un encodeur vidéo
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
[email protected]
$Id: divx.tex,v 1.13 2003/03/26 09:50:02 silber Exp $