Detailseite
Projekt Druckansicht

Pervolution: Performance-Evolution von hochkonfigurierbaren Software-Systemen

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
 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung