Amélioration de performance sur les architectures NUMA
Auteur / Autrice : | Baptiste Lepers |
Direction : | Vivien Quéma |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 24/01/2014 |
Etablissement(s) : | Grenoble |
Ecole(s) doctorale(s) : | École doctorale Mathématiques, sciences et technologies de l'information, informatique (Grenoble ; 1995-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire d'informatique de Grenoble (Isère, France ; 2007-....) |
Equipe de recherche : Efficient and Robust Distributed Systems | |
Jury : | Président / Présidente : Andrzej Duda |
Examinateurs / Examinatrices : Gilles Muller, Gaël Thomas, Renaud Lachaize | |
Rapporteurs / Rapporteuses : Pascal Felber, Erven Rohou |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
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.