Echtzeitverhalten durch die Verwendung von CPU Stubs: Eine Erweiterung von Dynamic Performance Stubs Echtzeit 2009 Peter Trapp, 20.11.2009
Übersicht 1 Einleitung 2 (Übersicht) 3 (Framework) 4 Methodik CPU Stubs 5 Fallstudie CPU Stubs 6 Zusammenfassung & Weiteres Vorgehen Peter Trapp, 19.11.09 Slide 2
Projekt Umgebung Software Performance Optimierung in LTE Telekommunikationssystemen LTE Peter Trapp, 19.11.09 Slide 3
Probleme bei der Optimierung Welche Probleme gibt es bei Performance Optimierungen? Peter Trapp, 19.11.09 Slide 4
Probleme bei der Optimierung Welche Probleme gibt es bei Performance Optimierungen? Generell Optimierungen werden meist erst sehr spät druchgeführt Verursachen häufig hohen Aufwand, welcher nicht kalkuliert wurde Abschätzungen sind meist zu ungenau Peter Trapp, 19.11.09 Slide 5
Probleme bei der Optimierung I Welche Probleme gibt es bei Performance Optimierungen? Technisch Lediglich der nächste Falschenhals ist sichtbar Verbesserungen haben häufig nur geringe Auswirkungen Optimierungen hängen voneinander ab Der Quellcode wird häufig schwer verständlich, aufwendig zu warten und zu debuggen Während Wartungsarbeiten können Optimierungen unbeabsichtig rückgängig gemacht werden Peter Trapp, 19.11.09 Slide 6
Optimierungsfunktion Optimierungsfunktion eines einzelnen Software Moduls (vereinfacht) Optimierung isoliert Aufwand Peter Trapp, 19.11.09 Slide 7
Optimierungsfunktion Optimierungsfunktion eines SW Moduls innerhalb des Systems (vereinfacht) Optimierung opt. isoliert systemweit Aufwand Peter Trapp, 19.11.09 Slide 8
Optimierungsfunktion Optimierungsfunktion eines SW Moduls innerhalb des Systems (vereinfacht) Optimierung opt. isoliert systemweit Aufwand Wie kann das Optimum gefunden werden? Peter Trapp, 19.11.09 Slide 9
Performance Optimierung Fc1 10Mio Instructions Wie wird Software optimiert? Erstklassige Optimierung [5MM] Fc1 1Mio Instructions Weiterer Flaschenhals Fc1 Optimierung begrenzt durch das System (Faktor 2) Besser wäre gewesen: Fc1 5Mio Instructions Peter Trapp, 19.11.09 Slide 10
Performance Optimierung Fc1 10Mio Instructions Wie wird Software optimiert? Erstklassige Optimierung [5MM] Fc1 1Mio Instructions Weiterer Flaschenhals Fc1 Optimierung begrenzt durch das System (Faktor 2) Mehrfachmessungen Optimierungslevel für Fc1 wurde gefunden Besser wäre gewesen: Fc1 5Mio Instructions Peter Trapp, 19.11.09 Slide 11
Performance Optimierung Fc1 10Mio Instructions Wie wird Software optimiert? Erstklassige Optimierung [5MM] Fc1 1Mio Instructions Weiterer Flaschenhals Fc1 Optimierung begrenzt durch das System (Faktor 2) Besser wäre gewesen: Mehrfachmessungen Optimierungslevel für Fc1 wurde gefunden Optimierung [2MM] Fc1 5Mio Instructions Peter Trapp, 19.11.09 Slide 12
Vorteile der Methodik Was sind die Vorteile? Minimierung des Aufwands bei maximalen Gewinn Aufwand kann besser geschätzt werden Zielorientierte Optimierung Fundierte Abschätzungen des Gewinns Load & Stress Tests sind verfügbar (bei geringem Aufwand) Idealisierte Funktionen können gemessen werden (bzgl. Performance) Detailierte Messungen für verschiedene Funktionen Abhängigkeiten zwischen der SW und dem System sind identifizierbar Versteckte Flaschenhälse können gefunden werden Frühe Optimierungsergebnisse Peter Trapp, 19.11.09 Slide 13
Übersicht 1 Einleitung 2 (Übersicht) 3 (Framework) 4 Methodik CPU Stubs 5 Fallstudie CPU Stubs 6 Zusammenfassung & Weiteres Vorgehen Peter Trapp, 19.11.09 Slide 14
Einleitung Wie werden verwendet? System Software Modul Performance Testumgebung Flaschenhals Peter Trapp, 19.11.09 Slide 15
Einleitung Wie werden verwendet? System Software Modul Flaschenhals Performance Testumgebung Peter Trapp, 19.11.09 Slide 16
Einleitung Wie werden verwendet? System Software Modul Flaschenhals Performance Testumgebung Dynamic Performance Stubs Peter Trapp, 19.11.09 Slide 17
Einleitung Wie werden verwendet? System Software Modul Performance Testumgebung Bottleneck Dynamic Performance Stub Peter Trapp, 19.11.09 Slide 18
Einleitung Wie werden verwendet? System Software Modul Performance Testumgebung Dynamic Performance Stub Peter Trapp, 19.11.09 Slide 19
Einleitung Wie werden verwendet? System Software Modul Performance Testumgebung Dynamic Performance Stub Peter Trapp, 19.11.09 Slide 20
Einleitung Wie werden verwendet? System Software Modul Performance Testumgebung Dynamic Performance Stub Peter Trapp, 19.11.09 Slide 21
Einleitung I Welche Ausprägungen gibt es? System Software Modul Performance Testumgebung Flaschenhals Bottleneck lokal Ersetzt Falschenhals Dynamic Performance Stub global Zusätzliches Modul Dynamic Performance Stub Peter Trapp, 19.11.09 Slide 22
Übersicht 1 Einleitung 2 (Übersicht) 3 (Framework) 4 Methodik CPU Stubs 5 Fallstudie CPU Stubs 6 Zusammenfassung & Weiteres Vorgehen Peter Trapp, 19.11.09 Slide 23
Übersicht Framework Was sind? Framework SSF PSF PMF CF Stellt verschiedene Performanceverhalten zur Verfügung Kalibierung der PSF auf das Zielsystem Simuliert die eigentliche Funktionalität Basis Funktionen zur Performance Messung Peter Trapp, 19.11.09 Slide 24
Übersicht Framework Was sind? Framework SSF PSF Eher eine Werkzeugkiste als eine vollständig automatisierte Vorgehensweise PMF CF Peter Trapp, 19.11.09 Slide 25
Übersicht 1 Einleitung 2 (Übersicht) 3 (Framework) 4 Methodik CPU Stubs 5 Fallstudie CPU Stubs 6 Zusammenfassung & Weiteres Vorgehen Peter Trapp, 19.11.09 Slide 26
CPU Performance Simulation Functions Wie werden CPU Stubs realisiert? CPU PSF System influencing System non-influencing Busy waiting void busyloop (int time) { for (int i; i < CONST*time; i++) ; } int main (void) { busyloop(busytime); } Warte auf Ausführung #include<unistd.h> int main (void){ usleep(sleeptime); } Peter Trapp, 19.11.09 Slide 27
Methodik Vorgehensweise 1. Flaschenhals (CUS) 2. Validierung Flaschenhals (optional) 3. Untersuchung Flaschenhals 4. SSF validieren 5. Flat CPU Stub (Optimierungspot.) 6. Idle CPU Stub (versch. Abhängigk.) 7. Optimierungsaufwand (Busy Stub) 8. Optimierung / Ziel erreicht? no: start over Peter Trapp, 19.11.09 Slide 28
Methodik I 1. Flaschenhals (CUS) Vorgehensweise SUT t SUT CUS (Flaschenhals) t CUS t CUS busy CPU CUS usage Peter Trapp, 19.11.09 Slide 29
Methodik II 2. Validierung Falschenhals Vorgehensweise SUT t SUT CUS (Flaschenhals) + System influencing t CUS Peter Trapp, 19.11.09 Slide 30
Methodik III 3. Untersuchung Flaschenhals Vorgehensweise CUS CPU usage 1 Peter Trapp, 19.11.09 Slide 31
Methodik III 4. SSF validieren Vorgehensweise CPU Stub SSF Peter Trapp, 19.11.09 Slide 32
Methodik IV 5. Flat CPU Stub Vorgehensweise Flat CPU Stub SSF t t STUB flat perf _ gain Peter Trapp, 19.11.09 Slide 33
Methodik IV 6. Idle CPU Stub Vorgehensweise Idle CPU Stub SSF + System noninfluencing Systemabhängigkeiten identifizieren Prozessabhängigkeiten identifizieren Peter Trapp, 19.11.09 Slide 34
Methodik V 7. Optimierungsaufwand ermitteln 7.1 Optimierungspotential ermitteln Vorgehensweise Busy CPU Stub SSF + System influencing 7.2 Schrittweise Änderungen, z.b. Schrittgröße 0.1 7.3 Kosten-Nutzen Analyse Optimierungspotential Aufwand Peter Trapp, 19.11.09 Slide 35
Übersicht 1 Introduction 2 (overview) 3 (framework) 4 Methodik CPU Stubs 5 Fallstudie CPU Stubs 6 Zusammenfassung & Weiteres Vorgehen Peter Trapp, 19.11.09 Slide 36
Test Umgebung Hardware Intel Xeon 3 GHz HT deaktiviert Software Red Hat Enterprise Linux Kernel 2.6.9.22 Evaluierung & Messungen Simulierte Ausführung Automatisierte und Wiederholbare Ausführung Messungen mittels Time Stamp Counters Peter Trapp, 19.11.09 Slide 37
Ausgangssituation Messung des Flaschenhalses t t t SUT CUS CUS busy CPU CUS usage Schritt 1 Peter Trapp, 19.11.09 Slide 38
Analyse des Systems Messung mittels eines CPU Stubs Schritt 5 Peter Trapp, 19.11.09 Slide 39
Analyse des Systems I Messung mittels eines CPU Stubs Schritt 7 Peter Trapp, 19.11.09 Slide 40
Optimiertes System Messung nach der Optimierung Peter Trapp, 19.11.09 Slide 41
Übersicht 1 Einleitung 2 (Übersicht) 3 (Framework) 4 Methodik CPU Stubs 5 Fallstudie CPU Stubs 6 Zusammenfassung & Weiteres Vorgehen Peter Trapp, 19.11.09 Slide 42
Zusammenfassung Resümee Aufbau von CPU Stubs Methodik zur Verwendung von CPU Stubs Anwendung von CPU Stubs an einem Beispiel Ersetzung von Softwaremodulen oder funktionen durch Stubs möglich (SSF) Peter Trapp, 19.11.09 Slide 43
Weiteres Vorgehen Was ist noch offen? Erweitere Methodik für nicht 100%-ig CPU gebundene Systeme Stubs zur Simulation weiterer Systemkomponenten, z.b.: Memory Überlagerung verschiedener Stubs Peter Trapp, 19.11.09 Slide 44
Vielen Dank für Ihre Aufmerksamkeit! Echtzeitverhalten durch die Verwendung von CPU Stubs: Eine Erweiterung von Dynamic Performance Stubs Peter Trapp, 20.11.2009 Hochschule Ingolstadt Institut für Angewandte Forschung (IAF) Peter Trapp Esplanade 10 85049 Ingolstadt Phone: +49-841-9348-625 Fax: +49-841-9348-99-625 E-mail: peter.trapp@haw-ingolstadt.de www: www.haw-ingolstadt.de/
Fragen? Christian Facchi, 20.11.2009 University of Applied Sciences Ingolstadt Institute for Applied Research (IAF) Peter Trapp Esplanade 10 85049 Ingolstadt Phone: +49-841-9348-625 Fax: +49-841-9348-99-625 E-mail: peter.trapp@fh-ingolstadt.de www: www.fh-ingolstadt.de/iaf Projekt: PerfOpt
Methodik IV 5. - 7. Flat / Idle / Busy CPU Stub Vorgehensweise Flat CPU Stub SSF Idle CPU Stub SSF + System Noninfluencing Busy CPU Stub SSF + System influencing t STUB flat t perf _ gain STUB t busy Peter Trapp, 19.11.09 Slide 47
Übersicht 1 Einleitung 2 (Übersicht) 3 (Framework) 4 Methodik CPU Stubs 5 Fallstudie CPU Stubs 6 Zusammenfassung & Weiteres Vorgehen
Übersicht Framework Was sind? Framework SSF Simuliert die eigentliche Funktionalität PSF PMF CF Peter Trapp, 19.11.09 Slide 49
Simulated Software Functionality I Was ist die Simulated Software Functionality? SSF SSF Dynamic Performance Stub Ersetzt die Funktionalität des eigentlichen Moduls damit die Software weiterhin ausgeführt werden kann Peter Trapp, 19.11.09 Slide 50
Übersicht Framework Was sind? Framework SSF PSF Stellt verschiedene Performanzverhalten zur Verfügung PMF CF Peter Trapp, 19.11.09 Slide 51
Performance Simulation Functions I Was sind Performance Simulation Functions? SSF PSF Simuliert das nicht funktionale Verhalten bezüglich eines Performanz Aspekts SSF Dynamic Performance Stub Peter Trapp, 19.11.09 Slide 52
Performance Simulation Functions II Welches Performanzverhalten kann simuliert werden? PSF CPU Speicher I/O Netzwerk Peter Trapp, 19.11.09 Slide 53
Performance Simulation Functions III Wie arbeiten PSF? PSF System beeinflussend System nicht-beeinflussend Peter Trapp, 19.11.09 Slide 54
Übersicht Framework Was sind? Framework SSF PSF PMF CF Basis Funktionen zur Performanz Messung Peter Trapp, 19.11.09 Slide 55
Performance Measurement Functions I SSF Was sind Performance Measurement Functions? PSF PMF SSF Dynamic Performance Stub Können zur Validierung und Messung des Performanz Verhaltens des Stubs und/oder Systems verwendet werden. System Peter Trapp, 19.11.09 Slide 56
Übersicht Framework Was sind? Framework SSF PSF PMF CF Kalibrierung der PSF auf das Zielsystem Peter Trapp, 19.11.09 Slide 57
Calibration Functions I Was sind Calibration Functions? SSF PSF setup & Validation SSF Dynamic Performance Stub Führt die entsprechende PSF aus und ergänzt diese um Messungen um das Verhalten zu validieren. Peter Trapp, 19.11.09 Slide 58