Évaluation et prédiction de performance d'applications parallèles
Auteur / Autrice : | Georgios Markomanolis |
Direction : | Frédéric Desprez |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 20/01/2014 |
Etablissement(s) : | Lyon, École normale supérieure |
Ecole(s) doctorale(s) : | École doctorale en Informatique et Mathématiques de Lyon (Lyon ; 2009-....) |
Partenaire(s) de recherche : | Laboratoire : AVALON / LIP Lyon / Inria Grenoble Rhône-Alpes |
Jury : | Président / Présidente : Emmanuel Jeannot |
Examinateurs / Examinatrices : Frédéric Desprez, Emmanuel Jeannot, Jean-François Méhaut, Olivier Richard, Frédéric Suter, Félix Wolf | |
Rapporteurs / Rapporteuses : Emmanuel Jeannot, Jean-François Méhaut |
Mots clés
Mots clés contrôlés
Résumé
L'analyse et la compréhension du comportement d'applications parallèles sur des plates-formes de calcul variées est un problème récurent de la communauté du calcul scientifique. Lorsque les environnements d'exécution ne sont pas disponibles, la simulation devient une approche raisonnable pour obtenir des indicateurs de performance objectifs et pour explorer plusieurs scénarios ``what-if?''. Dans cette thèse, nous présentons un environnement pour la simulation off-line d'applications écrites avec MPI. La principale originalité de notre travail par rapport aux travaux précédents réside dans la définition de traces indépendantes du temps. Elles permettent d'obtenir une extensibilité maximale puisque des ressources hétérogènes et distribuées peuvent être utilisées pour obtenir une trace. Nous proposons un format dans lequel pour chaque événement qui apparaît durant l'exécution d'une application, nous récupérons les informations sur le volume d'instructions pour une phase de calcul ou le nombre d'octets et le type d'une communication. Pour obtenir des traces indépendantes du temps lors de l'exécution d'applications MPI, nous devons les instrumenter pour récupérer les données requises. Il existe plusieurs outils d'instrumentation qui peuvent instrumenter une application. Nous proposons un système de notation qui correspond aux besoins de notre environnement et nous évaluons les outils d'instrumentation selon lui. De plus, nous introduisons un outil original appelé Minimal Instrumentation qui a été conçu pour répondre au besoins de notre environnement. Nous étudions plusieurs méthodes d'instrumentation et plusieurs stratégies d'acquisition. Nous détaillons les outils qui extraient les traces indépendantes du temps à partir des traces d'instrumentations de quelques outils de profiling connus. Enfin nous évaluons la procédure d'acquisition complète et présentons l'acquisition d'instances à grande échelle. Nous décrivons en détail la procédure pour fournir un fichier de plateforme simulée réaliste à notre outil d'exécution de traces qui prend en compte la topologie de la plateforme cible ainsi que la procédure de calibrage par rapport à l'application qui va être simulée. De plus, nous montrons que notre simulateur peut prédire les performances de certains benchmarks MPI avec moins de 11% d'erreur relative entre l'exécution réelle et la simulation pour les cas où il n'y a pas de problème de performance. Enfin, nous identifions les causes de problèmes de performances et nous proposons des solutions pour y remédier.