Detailseite
Pervolution: Performance-Evolution von hochkonfigurierbaren Software-Systemen
Antragsteller
Professor Dr.-Ing. Sven Apel; Professor Dr.-Ing. Norbert Siegmund
Fachliche Zuordnung
Softwaretechnik und Programmiersprachen
Förderung
Förderung von 2017 bis 2023
Projektkennung
Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 326071282
Software system sind keine statischen Gebilde. Im Gegenteil: Software ändert sich fortwährend, sei es durch Bugfixes, Umstrukturierungen oder das Hinzufügen neuer Features. All diese Code-Änderungen können einen spürbaren Effekt auf die Performanz eines Systems haben und möglicherweise Performanz-Bugs oder ineffeziente Programmausführungen verursachen. Noch schlimmer ist jedoch, dass solche Performanzänderungen sich oftmals nur in einigen Konfigurationen eines Softwaresystems bemerkbar machen. Solche Situtationen and entsprechende Performanzänderungen über die gesamte Historie eines Softwareprojekts zu entdecken und diese als evolutionäre Muster zu beschreiben, war das Ziel der ersten Phase des Projekts Pervolution. Die dafür entwickelten Methoden und Werkzeuge für statistische Code-Analyse und evolutionären Performanzmodelle bilden die Grundlagen für die zweite Projektphase.Das Ziel der zweiten Phase von Pervolution ist es, zuverlässig den kausalen Ursprung von evolutionären Performanzänderungen von konfigurierbaren Softwaresystemen unter variierenden Workloads zu bestimmen. Mit diesem Ziel generalisieren wir die Ergebnisse der ersten Phase zu einem praktischen Einsatz, bei dem über die Lebenszeit eines Projekts sich nicht nur die Software ändert, sondern auch die Eingabe der Software und deren Anwendungsszenarien. So erweitern wir den Raum der Performanzmodellierung hin zu drei Dimensionen: Raum (Softwarekonfiguration), Zeit (Softwareversion) und Workload (Eingabe). Da dieser drei-dimensionale Raum zu groß ist, um auf ihm effektiv zu samplen und Performanzmodelle zu lernen, verfolgen wir drei Unterziele: Erstens erweitern wir die statische Code-Analyse der ersten Phase mit Black-Box Performanzinformationen, um die Analyse auf große Systeme und Projekthistorien zu skalieren. Die so angereicherte Datenflussanalyse kann uns zu Optionen und Interkationen im Code leiten, deren Ausführung oder Datenfluss sich über verschiedene Versionen geändert hat und somit auch die Performanz des Systems beeinflusst haben kann. Zweites adaptieren wir unsere Sampling- und Lernmethoden aus Phase I, um Workload-Variabilität zu berücksichtigen. Drittens analysieren und modellieren wir System-interne, Performanz-relevante Faktoren, um damit Kausalketten zu lernen, die von Konfigurationsoptionen über interne Metriken (wie z.B. Cache Misses) hin zu Performanzdaten reichen. Hierfür wenden und adaptieren wir moderne Techniken des kausalen Lernens auf die Performanzmodellierung konfigurierbarer Softwaresysteme an. Indem wir am Ende von Pervolution alle drei Forschungsstränge kombinieren können wir erstmals praxisnaheFragen, wie z.B. "Wird eine ältere Version eines Features performanter sein für einen bestimmten Workload?" oder "War die Einführung einer neuen Option die Ursache für einen Performanz-Bug" beantworten.
DFG-Verfahren
Sachbeihilfen
Internationaler Bezug
USA
Kooperationspartner
Professor Tim Menzies