Sapper - Synthétisation d’analyses de performance spécifiques d’application
Coordinateur : Guillermo POLITO Centre INRIA de l’Université de Lille
Partenaires : Pablo Tesone, Inria, Rémy Bardenet, CNRS, CRIStAL
Équipes : EVREF du Groupe Thématique : GL, et SIGMA du Groupe Thématique : DatInG
Dates : 10/23 - 02/28
Résumé :
L’évaluation des performances est cruciale pour comprendre la consommation des ressources, tant dans les milieux universitaires qu’industriels. Une telle évaluation est réalisée à l’aide du benchmarking, i.e., mesures et analyses systématiques. Malgré son importance, la rédaction d’évaluations de performances solides reste complexe dans l’état actuel de la technique.
Premièrement, les benchmarks reposent sur des mesures telles que le temps d’horloge qui sont instables à cause des non-déterminismes du matériel, des systèmes d’exploitation et des implémentations du langage de programmation.
Deuxièmement, les applications présentent des profils de performance différents en fonction de leur entrée et de leur charge de travail.
Troisièmement, les méthodologies actuelles de conception de benchmark visent à produire des programmes diversifiés mais non interprétables.
Ainsi, un bon benchmarking requiert une bonne combinaison de connaissances (a) spécifiques à l’application, (b) statistiques,, (c) du langage de programmation et (d) sur la conception du système.
Nous proposons Sapper, un projet de recherche qui réunira les connaissances fondamentales, pratiques et empiriques de l’implémentation des langages de programmation, de systèmes logiciels, du génie logiciel et des statistiques. En particulier, nous définirons comment construire automatiquement des programmes de benchmark pertinents, reproductibles et interprétables.
Nous étudierons l’analyse statique et dynamique pour extraire des benchmarks à partir de cas de tests d’applications, nous étudierons les techniques de fuzzing de tests pour générer des charges de travail liées aux performances et nous étudierons l’utilisation d’outils statistiques modernes pour rendre les résultats interprétables.
L’équipe de Sapper, dirigée par Guillermo Polito, est multidisciplinaire et couvre tous les aspects du projet : implémentation du langage, profilage, fuzzing, analyse statique et dynamique, et statistiques.
Abstract :
Performance evaluation is crucial to understand resource consumption both in academic and industrial settings. Such an evaluation is often made using benchmarking, i.e., systematic measuring and analysis. Regardless of its importance, writing sound performance evaluations remains complex under the current state of the art.
First, benchmarks rely on metrics such as wall clock time that are unstable due to non-determinisms from hardware, operating systems, and programming language implementations.
Second, applications exhibit different behavior and performance profiles depending on their input and workload.
Third, current benchmark design methodologies aim at producing benchmarks that are diverse but not interpretable.
Thus, sound benchmarking requires a good combination of application-specific knowledge, statistical knowledge, language implementation knowledge, and system design knowledge.
We propose Sapper, a research endeavor that will reunite fundamental, pratical, ang empirical knowledge from programming language implementation, software systems, software engineering, and statistics.
Namely, we will define how to automatically build relevant, reproducible, and interpretable benchmark programs.
We will study static and dynamic analysis to extract benchmarks from application test cases, study test fuzzing techniques to generate performance-related workloads and study the use of modern statistical tools to make results interpretable.
The Sapper team, led by Guillermo Polito, is multidisciplinary and covers all aspects for the project : language implementation, profiling, fuzzing, static and dynamic analysis, and statistics.