Performance Messungen 1 Einordnung M Mensch‐Computer‐‐‐Technisch hC t T h i h Zeitreihen analysen Qualitativ‐‐‐Quantitativ 2Kontrollierte Experimente mit Probanden Fragebög en 3 4 1 Perform ance Interview Beweise Fallstudien Think‐Aloud Protokolle 2 Aufgabe • Bestimmen Sie die schnellste Sortierfunktion – Gruppe 1: Mergesort vs. Quicksort pp g Q – Gruppe 2: Quicksort Rekursiv vs. Quicksort Iterativ – Gruppe 3: Quicksort Java vs. Quicksort C Gruppe 3: Quicksort Java vs Quicksort C – Gruppe 4: Quicksort C++ vs. Quicksort Haskell • Stellen Sie die Ergebnisse mit einem Poster vor • Diskutieren Sie die Ergebnisse. Vertrauen Sie Diskutieren Sie die Ergebnisse Vertrauen Sie den Ergebnissen der anderen Teilnehmer? 3 Lernziele • Aussagekräftige Performance‐Analysen selbst durchführen können • Performance‐Analysen bewerten können 4 Warum Performanceanalyse? Warum Performanceanalyse? • • • • • • • Alternativen vergleichen Einfluss eines Features System Tuning Relative Performance erkennen (über Zeit) Absolute Performance für ausgewählte Fälle Absolute Performance für ausgewählte Fälle Erwartungen setzen Analyse von Systemverhalten 5 Analysetechniken • Messen M – keine vereinfachenden Annahmen – i.d.R. am glaubwürdigsten i d R am glaubwürdigsten – inflexibel, spezielles System • Simulation – Abstraktion – Flexibel • Analytisches Modellieren – Mathematische Beschreibung des Systems – Starke Abstraktion, i.d.R. kaum glaubwürdig Starke Abstraktion i d R kaum glaubwürdig – Insbesondere zur frühen Validierung 6 Benchmark • Ausführen realer Programme/Hardware‐ p in realen Umgebungen (keine g g ( komponenten analytische Simulation) • Messen von Performance, Speicherverbrauch, Messen von Performance Speicherverbrauch usw. • Automatisierbar • Kein menschlicher Einfluss 7 Benchmark Beispiele Benchmark ‐ • • • • 3DMark (Grafikkarte/System) TCP‐H TCP H (Datawarehouse) (Datawarehouse) TCP‐C (OLTP) Sintel (Video‐Encoder) 8 Was messen? Was messen? • • • • Ausführungszeit füh i CPU‐Zyklen MIPS (Million instructions per second) MFLOPS (Million floating‐point MFLOPS (Million floating point operations per per second) • SPEC (System Performance Evaluation SPEC (System Performance Evaluation Cooperative) • QUIPS (Quality improvements QUIPS (Quality improvements per second) per second) • Transaktionen pro Sekunde 9 Aufgabe • Welche Kriterien sollte eine gute Metrik erfüllen? • Sind die vorgestellten Metriken gute Metriken nach Ihren Kriterien? nach Ihren Kriterien? 10 Kriterien Kriterium i i Execution i C CPU Time Zyklen MIPSS MFLOPS O S SPEC S C QUIPS Q S Transactions/ i / second Linearität + ‐ ‐ + ‐ + + Reliabilität + ‐ ‐ ‐ ‐ ‐ + Wiederhol‐ barkeit + + + + + + + Einfache Messbarkeit + + + + + + + Konsistenz + + ‐ ‐ + + + Unabhängig‐ + keit + + ‐ ‐ + + Beispiel für Prüfungsfrage: Welche Metrik(en) würden Sie benutzen, um den schnellsten Sortieralgorithmus zu bestimmen? 11 Störvariablen • B Beeinflussen i fl d M das Messergebnis b i systematisch t ti h oder d unsystematisch • Beispiele: – – – – – – – – – Hintergrundprozesse Hardwareunterschiede Temparaturunterschiede Eingabedaten, zufällig? H Heap‐Size Si Hardware‐Plattform System Interrupts System‐Interrupts Parallelität in Single‐ und Multicore‐Systemen Garbage Collection 12 Aufgabe • Wie kann man diese Störvariablen kontrollieren? 13 Typisches Vorgehen: Bester Wert Typisches Vorgehen: Bester Wert • Wiederholen i d h l • Bester, zweitbester oder schlechtester Wert • Bsp: Antwortzeiten Bsp: Antwortzeiten für Programmieraufgabe • R: Daten einlesen – – – – – data <‐ read.csv("rt.csv", header=TRUE, sep = ";", dec = ".") header: gibt an, ob Variablen/Spaltennamen in der ersten Zeile stehen sep: Separator für Datensätze in der sep: Separator für in der selben Zeile dec: Dezimaltrennzeichen min(data)/max(data) 14 Typisches Vorgehen: Mittelwert Typisches Vorgehen: Mittelwert • Messung wiederholen • Mittelwert bilden x arithm x1 x2 ... xn 1 n xi n n i 1 • R: – mean(data) 15 Median • Wert, der in der Mitte liegt • Robust gegen Robust gegen Ausreißer • R: – median(data) • Bei gerader Anzahl an Messwerten: – Arithmetisches A ith ti h Mittel Mitt l der d beiden b id mittleren ittl W t Werte – Einen der beiden mittleren Werte angeben 16 Median oder Mittelwert? Median oder Mittelwert? • Median statt di arithemtisches ih i h Mittel, wenn i l – – – – Ordinale Daten* Wenig Messwerte Asymmetrische Verteilung Ausreißer • *Skalenniveaus – Nominal (z.B. Geschlecht) ( ) – Ordinal (z.B. Platzierungen) – Metrisch (z.B. Temperatur, Antwortzeit) ( p , ) 17 Daten anschauen Daten anschauen • Ü Überblick verschaffen • Verteilung und Ausreißer einschätzen Verteilung und Ausreißer einschätzen 18 Histogramme • Häufigkeit von Messwerten in festgelegten Bereichen • R: hist(data) 19 Boxplots • Boxplot zeigt – Median als breite Linie – Quartile als Box (50% aller Werte in der Box) – Whiskers – Ausreisser als Punkte • Graphische Darstellung von Verteilungen • R: boxplot(data) 20 Violin Plot Violin‐Plot • Zeigt zusätzlich zu Boxplot die Verteilung der Daten R: library(vioplot) R: library(vioplot) vioplot(data) 21 Recap • Benchmarks • Metriken zur Performance Metriken zur Performance‐Messung Messung • Daten visualisieren 22 Messmodel • y = τ + ε • y: beobachteter Wert • τ: wahrer Wert τ: wahrer Wert • ε: Fehler • Population: griechische Buchstaben Population: griechische Buchstaben • Stichprobe: deutsche Buchstaben 23 Fehlermodell • Echter Mittelwert: 10 E ht Mitt l t 10 • 1 zufälliger Fehler, Einfluss +/‐ 1 • Messwerte: 9 (50%) und 11 (50%) • 2 zufällige Fehler, je +/‐ 2 zufällige Fehler je +/ 1 • Messwerte: 8 (25%), 10 (50%) und 12 (25%) • 3 zufällige Fehler, je +/‐ 1 • Messwerte: 7 (12.5%), 9 (37.5%), 11 (37.5%), 13 (12.5%) • N zufällige Fehler, je +/‐ 1 • Normalverteilung 24 Normalverteilung 25 Standardabweichung 1 n ( x1 x) 2 ( x2 x) 2 ... ( xn x ) 2 2 s ( xi x) n i 1 n Bildquelle CC BY 2.5 Mwtoews 26 Standardabweichung: Anwendung Standardabweichung: Anwendung • Ausreißer definieren • Hochbegabung definieren Hochbegabung definieren • Entdeckung des Higgs‐Boson verkünden 27 Konfidenzintervall xz • • • • • (1 ) 2 s s ;x z (1 ) n n 2 : Mittelwert z: xx‐Wert Wert der Standardnormalverteilung der Standardnormalverteilung alpha: 1‐Wert des Konfidenzintervall (z.B. 95%) s: Standardaweichung g n: Anzahl der Messungen 28 Konfidenzintervall: Bedeutung Konfidenzintervall: Bedeutung • Bedeutung • Vertrauensintervall • Wahrer Mittelwert liegt in 95% im Intervall • Technischer: Bei grosser Anzahl von Wiederholungen des Experiments liegt in Wiederholungen des Experiments liegt in 95% der Fälle der wahre Mittelwert in dem jeweils berechneten Konfidenzintervall jeweils berechneten Konfidenzintervall 29 Konfidenzintervall: Anwendung Konfidenzintervall: Anwendung • Überlappung: vmtl Üb l l kein Unterschied k i hi d • Keine Überlappung: vmtl pp g Unterschied • Mehr Messungen verkleinert Intervalle 30 Genauigkeit vs Präzision Genauigkeit vs. Präzision Genauigkeit: Abweichung beobachteter Mittlewerte vom Wichtig bei Zeitmessungen wahren Mittelwert Präzision: Streuung um Stichprobenmittelwert Streuung um Stichprobenmittelwert Ursache von Messfehlern unklar 31 Zufällige vs Systematische Fehler Zufällige vs. Systematische Fehler • SSystematische Fehler: Fehler des Experiments/der i h F hl F hl d E i /d Messmethode – CPU Speed: Messung bei unterschiedliche Temperaturen CPU Speed: Messung bei unterschiedliche Temperaturen – Zustand nicht zurückgesetzt für zweite Messung – Geringe Varianz, bis konstant über alle Messungen Geringe Varianz bis konstant über alle Messungen – Im Design ausschließen, braucht Erfahrung →Genauigkeit • Zufällige Fehler – Nicht kontrollierbar Nicht kontrollierbar – Stochastische Methoden →Präzision 32 Signifikanztests • Rigoroser als Vergleich von Konfidenzintervallen • Zur Evaluierung, ob Messreihen unterschiedlich sind unterschiedlich sind • Z.B. t‐Test 33 T Test T‐Test • Entwickelt von Student (William Sealy Gosset) • Vergleich von 2 Messreihen Vergleich von 2 Messreihen N llh Nullhypothese (H h (H0) Al Alternativhypothese (H i h h (H1) Statistische Hypothese Messreihen sind gleich, i.e., Daten von beiden Messreihen stammen aus der selben Population d lb P l ti Formal: H 0 : x1 x 2 Daten beider Messreihen stammen aus unterschiedlichen Populationen Formal: H1 : x1 x 2 34 T Test: Ergebnis T‐Test: Ergebnis • B Bestimmt Wahrscheinlichkeit, das beobachtete ti t W h h i li hk it d b b ht t Ergebnis unter Annahme der H0 zu erhalten ‐> bedingte Wahrscheinlichkeit bedingte Wahrscheinlichkeit • Wenn Wahrscheinlichkeit kleiner ist als: – – – – 0.001 0 001 0.01 0.05 0.10 sehr sehr signifikant sehr sehr signifikant sehr signifikant typisches Signifikanniveau typisches Signifikanniveau oft bei explorativen/initialen Untersuchungen muss Nullhypothese falsch sein muss Nullhypothese falsch sein • Signifikanzniveau – Vorher definieren! Vorher definieren! 35 T Test: Aussage T‐Test: Aussage • Was bedeutet signifikantes Ergebnis? b d i ifik b i? • Ist Nullhypothese falsch? ‐> Nein • Ist Alternativhypothese richtig? ‐> Nein • Kein Gegenbeweis für Gültigkeit der Nullhypothese gefunden Nullhypothese gefunden • Aufschreiben: – Ablehnen/nicht ablehnen der Nullhypothese Abl h / i ht bl h d N llh th – Nie: Bestätigen der Null‐/Alternativhypothese 36 T Test: Berechnung von Hand (1) T‐Test: Berechnung von Hand (1) • Berechnung der Kenngröße x1 x 2 t ˆ ( x1 x2 ) n1 ˆ ( x x ) 1 2 Datensatz (ProgramComprehensionRT): t = 1.477 n2 2 ( ) ( ) x x x x i1 1 i 2 2 i 1 2 i 1 (n1 1) (n2 1) 1 1 n1 n2 37 T Test: Berechnung von Hand (2) T‐Test: Berechnung von Hand (2) • Freiheitsgrade (Degrees of freedom, df) – für t‐Test: n1 + n2 2 _ 2 (hier: 11) ( ) • Tabelle mit t‐Verteilung (z.B. wikipedia) t / 2,df 11 2,201 2 201 • Vergleich mit beobachtetem Wert (t Vergleich mit beobachtetem Wert (temp = 1.477) 1.477) t / 2,df 11 – ist temp > ? – nein, darum nicht signifikant i d i ht i ifik t 38 T Test: Einseitig vs Zweiseitig T‐Test: Einseitig vs. Zweiseitig • Zweiseitig: – Keine Kenntnisse über Richtung des Effekts (z.B., g ( , welches System schneller ist) – Signifikanzniveau halbieren Signifikanzniveau halbieren • Einseitig: – Vermutung, das ein System schneller ist – Signifikanzniveau muss nicht halbiert werden g t ,df 11 1,796 39 T Test: R T‐Test: R • t.test(dataPC1, dataPC2) t t t(d t PC1 d t PC2) • Ausgabe: Welch Two Sample t‐test data: dataPC1 and dataPC2 t = 1.5222, df = 10.566, p‐value = 0.1573 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: ‐5.095727 27.583584 sample estimates: mean of mean of mean of x mean of y 50.74243 39.49850 • p‐Wert: Bedingte Wahrscheinlichkeit, Ergebnis unter Annahme der H0 beobachtet zu haben Annahme der H beobachtet zu haben • Wenn p‐Wert kleiner als definiertes Signifikanzniveau ist, ist Ergebnis signifikant , g g 40 T Test: Varianten T‐Test: Varianten • T‐Test für unabhängige Stichproben: f bh i i h b – Zusammensetzung der Stichproben ohne gegenseitige Beeinflussung – Z.B. zufällige Zuteilung von Probanden in einer oder andere Stichprobe • T‐Test für abhängige Stichproben: gg p – Zusammensetzung einer Stichprobe hängt von Zusammensetzung anderer Stichprobe ab g p – Z.B.: Wiederholungsmessungen, zuteilen von Ehepartnern in unterschiedliche Stichproben p p 41 T Test: Vorrausetzungen T‐Test: Vorrausetzungen • Metrisches Skalenniveau • Normalverteilte Daten (z.B. Shapiro Normalverteilte Daten (z.B. Shapiro‐Wilk) Wilk) • Oder: n >= 30 42 Mann Whitney U Mann‐Whitney‐U • Nicht parametrischer Test • Bei ordinalen Daten (oder nicht Bei ordinalen Daten (oder nicht‐ normalverteilten metrischen Daten) • Berechnung der Kenngröße: B h d K öß n1 (n1 1) U n1 n2 T1 2 : Rangplätze in der Stichprobe – r l d h b T ri i n i 1 43 Lernziele • Aussagekräftige Performance‐Analysen selbst durchführen können • Performance‐Analysen bewerten können 44 Literatur • David Lilja. Measuring Computer Performance: practitioner's g guide. Cambridge g Universityy A p Press. 2000 • Paper 1, 1 2&3 • Beliebiges Statistikbuch 45