Symbolic Performance Modeling

Aus SDQ-Institutsseminar
Vortragende(r) Hristo Klechorov
Vortragstyp Masterarbeit
Betreuer(in) Larissa Schmid
Termin Fr 3. Mai 2024
Vortragssprache
Vortragsmodus online
Kurzfassung Predicting software performance under different configurations is a challenging task due to the large amount of possible configurations. Performance-influence models help stakeholders understand how configuration options and their interactions influence the performance of a program. A crucial part of the performance modeling process is the design of an experiment set that delivers performance measurements which are used as input for a machine learning algorithm that learns the performance model. An optimal experiment set should contain the minimal amount of experiments that produces a sufficiently accurate performance model.

The topic of this thesis is Symbolic Performance Modeling, a new white-box approach to the analysis of the configuration options' influence on the software's performance. The approach utilizes taint analysis to determine where in the source code configuration options influence the software's performance and symbolic execution to determine whether the influence is significant. We assume that only loop constructs with non-constant iteration counts change the asymptotic behavior of the program. The Feature Taint Analysis provided by VaRA is used to determine which configuration options influence loops, while the Path Tracing provided by PhASAR is used to construct all control-flow paths leading to the loops and their respective path conditions. The SMT Solver Z3 is then used to derive value ranges from the path conditions for the configuration options which influence the loop constructs. We determine the significance of a configuration option's influence based on the size of its value range.

We implement the proof-of-concept tool Symbolic Performance Modeling Value Generator to evaluate the approach with regard to its capabilities to analyze real-world applications and its performance. From the insights gained during the evaluation, we define limitations of the current implementation and propose improvements for future work.