Symbolic Performance Modeling
Typ | Masterarbeit | |
---|---|---|
Aushang | MA Symbolic Performance Modeling.pdf | |
Betreuer | Wenden Sie sich bei Interesse oder Fragen bitte an: Larissa Schmid (E-Mail: larissa.schmid@kit.edu, Telefon: +49-721-608-45981) |
Thema
Motivation
Um aufwändige Materialsimulationen effizient durchführen zu können, wird massiv parallele Software genutzt. Für jede Simulation, die durchgeführt werden soll, muss eine neue Konfiguration der Software ausgewählt werden. Diese Konfiguration besteht aus dem zu simulierenden Material, zu verwendenden Algorithmen sowie deren Parametern. Dabei ist jedoch unklar, wie sich die einzelnen Konfigurations-Optionen auf die Performance der Anwendung auswirken. Insbesondere ist nicht klar, welche Optionen in welchem Teil der Ausführung die Performance maßgeblich beeinflussen. Symbolische Ausführung liefert mögliche Wertebereiche für Variablen an gewünschten Stellen der Ausführung zurück. Mithilfe dieser Wertebereiche können Rückschlüsse über die Relevanz der diese Variablen beeinflussenden Konfigurations-Optionen gezogen werden.
Aufgabenstellung
In dieser Arbeit soll untersucht werden, ob mithilfe statischer Analyse und symbolischer Ausführung erkannt werden kann, ob und an welchen Stellen im Code Konfigurations-Optionen einen relevanten Einfluss auf die Performance haben. Teilaufgaben der Arbeit sind:
- Untersuchen, inwiefern bereits vorhandene Frameworks zur statischen Analyse und symbolischer Ausführung genutzt werden können (Frameworks: VarA/Phasar)
- Integration des Ansatzes in bestehenden Performance-Modellierungs-Workflow
- Evaluation des Vorgehens anhand einer Fallstudie
English Translation
Motivation
Massively parallel software is used to efficiently perform complex material simulations. For each simulation to be performed, a new configuration of the software must be selected. This configuration consists of the material to be simulated, algorithms to be used, and their parameters. However, it is unclear how each configuration option affects the performance of the application. In particular, it is not clear which options in which part of the execution significantly affect the performance. Symbolic execution returns possible ranges of values for variables at desired points in execution. With the help of these value ranges, conclusions can be drawn about the relevance of the configuration options influencing these variables.
Task
The purpose of this work is to investigate whether static analysis and symbolic execution can be used to detect whether and at which points in the code configuration options have a significant impact on performance. Subtasks of the work are:
- Investigate the extent to which existing frameworks for static analysis and symbolic execution can be leveraged (Frameworks: VarA/Phasar).
- Integration of the approach into an existing performance modeling workflow
- Evaluation of the approach based on a case study