logo-Irisa
logo-équipeALF
logo-InriaRennes

Intercepting Functions for Memoization

Interception de fonctions pour la mémoïsation

Arjun Suresh

équipe-projet ALF

Directeur de thèse: Erven Rohou

PhD's defense - 10th May 2016

L'exposé [56:33 mn]
img-logoPdfsmall Les transparents (pdf)
Le Jury
Le résumé

img-exposeSoutenanceLeCui2016

Cliquer sur l'image pour lancer la vidéo (fichier téléchargeable (MP4) img-flecheHAUT

Les membres du Jury:

Sandrine Blazy, Professeur à l’Université de Rennes 1,
Jean-Michel Muller, Directeur de recherche au Laboratoire LIP, ENS Lyon,
Vincent Loechner, Maître de conférence à l’ICPS, Université de Strasbourg,
Fabrice Rastello, Directeur de recherche au centre Inria Grenoble - Rhône-Alpes,
Erven Rohou, Directeur de recherche au centre Inria Rennes Bretagne-Atlantique, directeur de thèse
André Seznec, Directeur de recherche au centre Inria Rennes Bretagne-Atlantique, co-directeur de thèse

img-flecheHAUT

Résumé:

Nous avons proposé des mécanismes pour mettre en œuvre la mémoïsation de fonction au niveau logiciel dans le cadre de nos efforts pour améliorer les performances du code séquentiel. Nous avons analysé le potentiel de la mémoïsation de fonction sur des applications et le gain de performance qu'elle apporte sur des architectures actuelles.

Nous avons proposé trois approches - une approche simple qui s'applique au chargement et qui fonctionne pour toute fonction de bibliothèque liée dynamiquement, une approche à la compilation utilisant LLVM qui peut permettre la mémoïsation pour toute fonction du programme, ainsi qu'une proposition d'implémentation de la mémoïsation en matériel et ses avantages potentiels. Nous avons démontré avec les fonctions transcendantales que l'approche au chargement est applicable et donne un bon avantage, même avec des architectures et des compilateurs (avec la restriction qu'elle ne peut être appliquée que pour les fonctions liées dynamiquement) modernes. Notre approche à la compilation étend la portée de la mémoïsation et en augmente également les bénéfices. Cela fonctionne pour les fonctions définies par l’utilisateur ainsi que pour les fonctions de bibliothèque. Nous pouvons gérer certains types de fonctions non pures comme les fonctions avec des arguments de type pointeur et l'utilisation de variables globales. La mémoïsation en matériel abaisse encore le seuil de profitabilité de la mémoïsation et donne plus de gain de performance en moyenne.

img-logoFlecheHaut
© 2016 Pôle audiovisuel Inria Rennes-Bretagne Atlantique