Support matériel pour la communication inter-processus dans un système multi-coeur
Auteur / Autrice : | Maxime France pillois |
Direction : | Frédéric Rousseau, Jérôme Martin |
Type : | Thèse de doctorat |
Discipline(s) : | Nano electronique et nano technologies |
Date : | Soutenance le 27/09/2018 |
Etablissement(s) : | Université Grenoble Alpes (ComUE) |
Ecole(s) doctorale(s) : | École doctorale électronique, électrotechnique, automatique, traitement du signal (Grenoble ; 199.-....) |
Partenaire(s) de recherche : | Laboratoire : Observatoire des micro et nanotechnologies (Grenoble) |
Jury : | Président / Présidente : Tanguy Risset |
Examinateurs / Examinatrices : Benoît Dupont de Dinechin | |
Rapporteurs / Rapporteuses : Jean-Philippe Diguet, Gaël Thomas |
Résumé
La forte parallélisation des applications MPSoC accroît le besoin d'optimisation des mécanismes de synchronisation, primordiaux pour l'échange sûr d'informations entre processus. En effet, les délais qu'ils introduisent impactent les performances globales des MPSoC. L'objet de cette thèse est d'étudier puis d'optimiser les performances temporelles de ces mécanismes de synchronisation.La complexité croissante des MPSoC impose l'étude précise des mécanismes ciblés dans un environnement réaliste mettant en exergue les spécificités logicielles et matérielles.Les outils de mesures disponibles ne répondant pas à nos exigences de précision conjuguée à la vitesse d'analyse, nous avons conçu notre propre chaîne de mesure non intrusive reposant sur une plateforme d'émulation.Appliquée à l'étude de l'implémentation GNU du mécanisme de barrière de synchronisation offert par la bibliothèque d'aide à la parallélisation de code OpenMP, notre chaîne de mesure a mis en évidence deux faiblesses d'implémentation, aboutissant à la mise en place d'optimisations logicielles et matérielles réduisant de manière significative les délais de ce mécanisme.La chaîne de mesure développée nous a également permis de vérifier une hypothèse structurante pour l'optimisation : un verrou, bien qu'utilisé par plusieurs cœurs de différentes grappes au cours de l'application, est très souvent repris par le dernier cœur l'ayant libéré. Sur la base de ce constat, nous proposons une solution innovante assurant, de manière totalement décentralisée, la relocalisation dynamique des verrous dans la mémoire proche du cœur ayant obtenu l'accès. Cela permet de réduire la latence d'accès et le trafic réseau lors de la réutilisation d'un verrou par une même grappe.