Baptiste Lepers - Amélioration de performance sur les architectures NUMA

09:30
Vendredi
24
Jan
2014
Organisé par : 
Baptiste Lepers
Intervenant : 
Baptiste Lepers
Équipes : 

 Lieu de Soutenance : MJK

- Jury :

  • Prof. Pascal Felber - Université de Neuchâtel - Rapporteur
  • Dr. Erven Rohou - Inria - Rapporteur
  • Prof. Andrzej Duda - Grenoble INP - Examinateur
  • Dr. Gilles Muller - Inria - Examinateur
  • Dr. Gaël Thomas - UPMC - Examinateur
  • Prof. Vivien Quéma - INP Grenoble - Directeur de thèse
  • Dr. Renaud Lachaize - UJF - Co-Encadrant de thèse

 

Réalisation technique : Djamel Hadji | Tous droits réservés

Les machines multicœurs actuelles utilisent une architecture à Accès Mémoire Non-Uniforme (Non-Uniform Memory Access - NUMA). Dans ces machines, les cœurs sont regroupés en nœuds. Chaque nœud possède son propre contrôleur mémoire et est relié aux autres nœuds via des liens d’interconnexion. Utiliser ces architectures à leur pleine capacité est difficile : il faut notamment veiller à éviter les accès distants (i.e., les accès d’un nœud vers un autre nœud) et la congestion sur les bus mémoire et les liens d’interconnexion. L’optimisation de performance sur une machine NUMA peut se faire de deux manières : en implantant des optimisations ad-hoc au sein des applications ou de manière automatique en utilisant des heuristiques. Cependant, les outils existants fournissent trop peu d’informations pour pouvoir implanter efficacement des optimisations et les heuristiques existantes ne permettent pas d’éviter les problèmes de congestion. Cette thèse résout ces deux problèmes.

Dans un premier temps nous présentons MemProf, le premier outil d’analyse permettant d’implanter efficacement des optimisations NUMA au sein d’applications. Pour ce faire, MemProf construit des flots d’interactions entre threads et objets. Nous évaluons MemProf sur 3 machines NUMA et montrons que les optimisations trouvées grâce à MemProf permettent d’obtenir des gains de performance significatifs (jusqu’à 2.6x) et sont très simples à implanter (moins de 10 lignes de code). Dans un second temps, nous présentons Carrefour, un algorithme de gestion de la mémoire pour machines NUMA. Contrairement aux heuristiques existantes, Carrefour se concentre sur la réduction de la congestion sur les machines NUMA. Carrefour permet d’obtenir des gains de performance significatifs (jusqu’à 3.3x) et est toujours plus performant que les heuristiques existantes.