Pierre-André WACRENIER
Pierre-André Wacrenier Maître de Conférences (Université Bordeaux 1)

Équipe LaBRI : Supports et Algorithmes pour les Applications Numériques hAutes performanceS
Équipe projet commune INRIA-LaBRI : RUNTIME
Fonction administrative : Responsable de la spécialité Calcul Haute Performance au sein du Master Informatique
Page personnelle : http://dept-info.labri.fr/~wacren
Courrier électronique : pierre-andre.wacrenierarobaselabri.fr
Bureau : INRIA
Tél : +33 (0)5 40 00


Recherche

Ma contribution principale à la définition et au développement d'un support d'exécution permettant l'exécution structurée de
programmes parallèles sur les machines hiérarchiques, diffusion du concept dans la communauté OpenMP.


\subsubsection{Analyse de traces - contrat CEA/DAM, 1 an, 2005 - ACI MD Grid'Explorer, 3 ans, 2003-2005}

Je me suis tout d'abord intéressé à l'analyse du comportement des
programmes multithreadés. Pour pouvoir suivre le déroulement précis
des applications, en particulier pour connaître l'ordonnancement exact
des processus légers sur les processeurs physiques de la machine, nous
avons conçu et implémenté des mécanismes de traces
(R1,C4) peu intrusifs. Grâce à la
récolte d'une trace noyau et d'une trace applicative, nous sommes en
mesure de reconstituer l'exécution précise des applications dans leur
contexte d'exécution.

\subsubsection{Structuration du parallélisme - ANR/CIGC PARA, 3 ans, 2006-2008}

À partir de février 2004, j'ai co-encadré avec R. Namyst le mémoire de
DEA puis la thèse de Samuel Thibault. Notre objectif était d'adapter notre bibliothèque de threads
aux serveurs de calcul à architecture très hiérarchisée tels les
machines NUMA basées sur des processeurs multi-cores. Pour cela, nous
avons défini une interface abstraite permettant à l'application de
décrire de façon structurelle les relations d'affinités
qu'entretiennent ses différents flots de calculs. Par exemple, cette
interface permet de regrouper dans des classes d'équivalence
imbriquées, appelées \emph{bulles} les threads qui travaillent sur les
mêmes données. L'ordonnanceur de la bibliothèque de threads utilise
alors cette information pour répartir le calcul sur la machine
hiérarchique afin de pouvoir tirer parti des effets de cache tout en
limitant le coût du facteur NUMA. Nous avons alors conçu une
interface pour créer de façon efficace et portable des ordonnanceurs à
bulles (R1, C6).

Par ailleurs, j'ai encadré en 2007 le mémoire de Master de recherche
de Sylvain Jeuland autour de l'ordonnancement dirigé par la
mémoire.


\subsubsection{Application aux programmes OpenMP - ANR/CIGC NUMASIS, 4 ans, 2006-2009}

En octobre 2006 nous avons appliqué notre démarche à la structuration
de l'exécution de programmes OpenMP. Pour cela, j'ai modifié la
bibliothèque GOMP du compilateur \texttt{gcc} afin de générer
automatiquement des bulles de threads pour regrouper les équipes de
threads au sens OpenMP. Nous avons mis en oeuvre différentes techniques
d'ordonnancemment: l'une spécifique aux applications à plusieurs niveaux de
parallélisme~(C5), une autre aux applications au parallélisme fortement
irrégulier de type diviser pour régner (C2)
et un troisième s'intéresse au placement coordonné des threads et de leur mémoire sur machine
hiérarchique (C3).

Nos résultats montrent que, contrairement à une idée répandue dans la
communauté du parallélisme, OpenMP est un outil bien adapté à la
programmation parallèle imbriquée pourvu que l'on dispose d'un support
exécutif capable d'ordonnancer de façon cohérente les différents flux
d'exécutions. L'ensemble de nos travaux sont regroupés dans
l'environnement de programmation \emph{ForrestGOMP} disponible sous \verb#https://gforge.inria.fr/projects/pm2/#.

Depuis septembre 2007, je co-encadre, avec R. Namyst, la thèse de
François Broquedis sur ce thème.


\subsubsection{Exploitation des architectures multicores hétérogènes - ANR/CIGC ProHMPT, 3 ans, 2009-2011}
Depuis 2008, notre équipe s'intéresse à la programmation des
architectures équipées de processeurs multicores ou d'accélérateurs
spécialisés (GPGPU, processeur Cell) car elles offrent à la fois un
rapport performance théorique / coût d'achat sans précédent et de
nouveaux challenges informatiques en terme de facilité de
programmation et de portabilité des performances. Dans le cadre de la
thèse de Cédric Augonnet, dirigée par R. Namyst et S. Thibault, nous
avons proposé un support d'exécution facilitant la distribution
dynamique de tâches de calcul sur machine hétérogène.
Les résultats obtenus montrent que plus le support d'exécution dispose
d'informations sur les tâches et leur exécution sur les unités de
calcul plus la portée des optimisations est grande jusqu'à obtenir des
accélérations sur-linéaires pour une factorisation LU (C6).

Extrait de publications













Responsabilité pédagogique

Responsable de l'UE Master 1 "programmation des architectures parallèles", 40h

Création de l'UE Licence, semestre 4 "projet de programmation", 30h

Administration

Depuis 2003 : responsable adjoint de l'équipe projet INRIA Runtime

Depuis 2006 : responsable du Centre de Ressource pour l'Enseignement des Mathématiques et de l'Informatique (2500 usagers,
3 ingénieurs et 2 techniciens)

Depuis 2008 : membre élu du CEVU de l'Université de Bordeaux 1


Page mise à jour le 13/08/2010 à 10:56