Performance Messungen

Werbung
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
xz
•
•
•
•
•

(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
Herunterladen