Rechnerarchitektur (RA)
3. Leistungsbewertung Prof. Dr. Christian Plessl
RA.3 2018 v1.0.0
1
3. Leistungsbewertung
3.1 Performance,PerformancegleichungundEinflussfaktoren 3.2 Performancebewertung
3.3 Performanceverbesserungen
RA.3 2018 v1.0.0
Inhaltsverzeichnis
2
3.1 Performance
• Die Bewertung von Computern kann viele Aspekte umfassen:
– Kosten
– Leistungsverbrauch
– Ausführungszeit von Programmen
– Reaktionszeit auf Unterbrechungen
– Verfügbarkeit von Systemsoftware, Anwendersoftware, Zusatzhardware
– …
• Die Leistungsfähigkeit (Leistung, performance) eines Computers wird meist durch folgende Parameter ausgedrückt:
– Ausführungszeit (execution time) [s]
® Wie lange braucht ein Computer für ein gegebenes Programm?
– Durchsatz (throughput) [s-1]
® Wie viele Programme (Jobs, Transaktionen, etc.) pro Zeiteinheit kann
ein Computer abarbeiten?
RA.3 2018 v1.0.0
3
Prozessorperformance
• Die besten Metriken zur Beurteilung der Prozessorperformance eines Computers X sind umgekehrt proportional zur Ausführungszeit:
PerformanceX ~
1 AusführungszeitX
• Relative Performance
– PerformanceA > PerformanceB ↔ AusführungszeitA < AusführungszeitB
– Computer A ist n-mal schneller als Computer B:
PerformanceA = AusführungszeitB = n
PerformanceB AusführungszeitA
• Alle diese Aussagen gelten für das konkret gemessene Programm!
RA.3 2018 v1.0.0
4
• Elapsed time (wall-clock time, verstrichene Zeit)
– Die gesamte Programmausführung wird mit einer Stoppuhr gemessen.
– Diese Zeit beinhält Zeiten für Speicher- und Festplattenzugriffe, Ein/Ausgabe und Betriebssystemaktivitäten.
– Betriebssysteme optimieren meist den Durchsatz, weniger die Laufzeit eines bestimmten Programmes. Daher beinhält die elapsed time auch Zeiten, in denen der Prozessor Tätigkeiten für andere Programme durchführt.
• CPU time (Prozessor-Ausführungszeit)
– Beinhaltet keine Ein/Ausgabe und keine Aktivitäten für andere Programme.
– Oft wird die CPU time noch unterteilt in
§ user CPU time Prozessorzeit für das Anwendungsprogramm
§ system CPU time Prozessorzeit für die Betriebssystemaufrufe des
Anwendungsprogramms
RA.3 2018 v1.0.0
Zeitmessung
5
Prozessor-Performancegleichung
T =I ́CPI ́T exe c
Texe Prozessorausführungszeit für ein Programm
Ic Die Anzahl der Maschineninstruktionen (instruction count), die bei
der Programmausführung abgearbeitet wird.
CPI Durchschnittliche Anzahl der benötigten Taktzyklen pro Instruktion (cycles per instruction).
T Der Prozessor ist eine synchrone digitale Schaltung mit einer Taktperiode T bzw. Taktfrequenz f =1/T.
Beispiel
Ic=2·106, CPI=2, f=4GHz: Texe = 2·106·2·250·10-12 = 1 ms RA.3 2018 v1.0.0
6
Prozessor-Performancefaktoren
• Bestimmung der Performancefaktoren Texe Prozessorausführungszeit messen
Ic Programmausführung und Zählen der Instruktionen durch Profiling oder Hardwarezähler, Simulator
CPI detaillierte Simulation der Prozessorimplementierung, Hardware- zähler, exakte Bestimmung ist schwierig
T
aus dem Datenblatt des Prozessors
– Nicht immer ist die Bestimmung der Performancefaktoren am realen Prozessor möglich. Wenn zB. der Prozessor gerade erst entwickelt wird, muss auf Simulationen zurückgegriffen werden.
– Im Moment wird nur die reine Prozessorleistung betrachtet. Später wird die Performancegleichung durch Hinzunahme von Cache- und Speicherzugriffen erweitert.
RA.3 2018 v1.0.0
7
•
Cycles per Instruction (CPI)
Verschiedene Instruktionsklassen haben oft unterschiedliche CPI-Werte
CPIi Fi
→
CPI-Wert der Instruktionsklasse i
relative Häufigkeit der Instruktionsklasse i im ausgeführten Programm
CPI=ån (CPI×F)
ii i=1
Instruktionsklasse i
Fi [%]
CPIi
Arithmetic, Logic
50
1
Load
20
2
Store
10
2
Branch, Jump
20
2
Beispiel
CPI=1,5
RA.3 2018 v1.0.0
8
Einflussfaktoren
Einflussfaktor
Ic
CPI
T
Algorithmus
X
X
Programmiersprache
X
X
Compiler
X
X
Instruktionssatz
X
X
X
Rechnerarchitektur
X
X
Technologie
X
RA.3 2018 v1.0.0
9
Performancemetriken
• Nützliche Prozessor-Performancemetriken sind umgekehrt proportional zu Texe!!
• MIPS-Rate (million instructions per second)
– (leider) oft verwendete Metrik zur Bewertung der Prozessorleistung
Ic
MIPS - Rate =
exe
– Problem: Die MIPS-Rate berücksichtigt nicht alle drei Faktoren Ic, CPI und T. • Weitere, nicht sehr nützliche Metriken:
– peak-MIPS:
– MOPS:
– MFLOPS:
MIPS-Rate einer konstruierten Codesequenz, die zum minimalen CPI-Wert führt
million operations per second
million floating-point operations per second
RA.3 2018 v1.0.0
T ́106
10
3.2 Performancebewertung
• Die beste Methode, um die Prozessorperformance eines Computer- systems zu bestimmen, ist es, die geforderten Anwendungsprogramme (workload) auszuführen und die Ausführungszeiten zu messen.
– oft zu zeitaufwendig
– nicht immer sind alle geforderten Anwendungen im Vorhinein bekannt
• Ein Benchmark ist ...
– ein Programm (Menge von Programmen), das für die Bewertung verwendet wird und
– eine Vorschrift, wie die Bewertung durchgeführt und das Resultat berichtet wird
• Abhängig vom Computertyp und Anwendungsbereich gibt es verschiedene Benchmarks:
– Desktop Computer:
– Wissenschaftliches Rechnen:
– Webserver, Fileserver:
– Eingebettete Computer:
Prozessorperformance, Performance für DVD playback, Graphikperformance, etc.
Prozessorperformance Durchsatz, Antwortzeiten
viele unterschiedliche Metriken, Benchmarking ist in diesem Bereich noch nicht so gut ausgeprägt
RA.3 2018 v1.0.0
11
Benchmarkprogramme
• Reale Anwendungen
– stellen die beste Möglichkeit dar, Performance zu bewerten
– sehr aufwendig; wenn der Prozessor noch nicht verfügbar ist, praktisch unmöglich
– empfindlich bzgl. der Eingabedaten (Datenset muss berichtet werden!)
– Bsp: SPEC Benchmarks
• Kernels
– Fragmente von Anwendungen (meist innere Schleifen)
– betonen bestimmte Aspekte der Performance, zB. Arithmetik, Prozeduraufrufe, geben kein Gesamtbild der Performance
– Bsp: Livermore kernels
• Synthetische Benchmarks
– Programme, die so konstruiert sind, dass sie einen bestimmten Instruktionsmix
abbilden
– einfach zu messen, aber nicht repräsentativ für irgendeine reale Anwendung
– Bsp: Dhrystone, Whetstone
RA.3 2018 v1.0.0
12
Zusammenfassen von Performancewerten
• Warum Zusammenfassen von Performancewerten?
– An einem zu bewertenden Computer A werden für alle n Programme eines
Benchmarks die Ausführungszeiten gemessen: T1,A, T2,A, ...,Tn,A
– Vergleicht man Computer A mit einem anderen Computer B, erhält man n
einzelne relative Performancewerte:
TTT 1,A , 2,A ,!, n,A
TTT
1,B 2,B n,B
– Oft besteht der Bedarf an einem Gesamtperformancewert (zB. im Marketing). Das Zusammenfassen der einzelnen Performancewerte zu einer Zahl ist immer mit einem Informationsverlust verbunden!
• Gesamtausführungszeit
– relative Performance als Verhältnis åT
der Gesamtausführungszeiten
i=1 ån
i=1
ån Ti,A i=1
n
i,A
RA.3 2018 v1.0.0
T i,B
13
Zusammenfassen von Performancewerten
• Arithmetisches Mittel
– relative Performance als Verhältnis der arithmetischen Mittel
• Gewichtetes arithmetisches Mittel – Gewichtungsfaktoren bilden
den realen workload nach
• Geometrisches Mittel
– wenn Verhältnisse von Ausführungszeiten zusammen-
gefasst werden, zB. Performance normalisiert auf eine Referenzmaschine
1n nåTi,A
i=1
n 1×å(w×T )
i i,A i=1
nn åw
i i=1
RA.3 2018 v1.0.0
n ç i,ref ÷ ÕæT ö
n ç T ÷ i=1 è i,A ø
14
Beispiel: SPEC
• SPEC Benchmarks
– Standard Performance Evaluation Corporation (www.spec.org)
– verschiedene Benchmarks: CPU, Graphik, Fileserver, Mailserver, Webserver, etc.
– Beispiel: SPEC CPU2000
§ 12 integer (CINT2000) und 14 floating-point Programme (CFP2000)
§ gemessen wird die wall-clock time
§ Die Ausführungszeit Texe eines jeden Programms wird normalisiert auf die
die Ausführungszeit Tref auf einer Referenzmaschine (Sun Ultra 5_10/300). Der resultierende Wert wird SPEC ratio genannt:
SPEC ratio = Tref T
§ Die CINT2000, CFP2000 Performancemetriken werden durch das geometrische Mittel der einzelnen SPEC ratios gebildet.
RA.3 2018 v1.0.0
exe
15
Beispiel: SPEC CPU2000
gemessen an Dell Precision Desktop Systemen
RA.3 2018 v1.0.0
16
SPEC CINT2000
Benchmark Sprache
gzip C vpr C gcc C mcf C crafty C parser C eon C++ perlbmk C gap C vortex C bzip2 C twolf C
Kategorie
Compression
FPGA Circuit Placement and Routing
C Programming Language Compiler Combinatorial Optimization
Game Playing: Chess
Word Processing
Computer Visualization
PERL Programming Language
Group Theory, Interpreter Object-oriented Database Compression
Place and Route Simulator
RA.3 2018 v1.0.0
17
SPEC CFP2000
Benchmark
wupwise swim mgrid applu mesa galgel art equake facerec ammp lucas fma3d sixtrack apsi
Sprache
Fortran 77 Fortran 77 Fortran 77 Fortran 77 C
Fortran 90 C
C
Fortran 90 C
Fortran 90 Fortran 90 Fortran 77 Fortran 77
Kategorie
Physics / Quantum Chromodynamics
Shallow Water Modeling
Multi-grid Solver: 3D Potential Field
Parabolic / Elliptic Partial Differential Equations
3-D Graphics Library
Computational Fluid Dynamics
Image Recognition / Neural Networks Seismic Wave Propagation Simulation Image Processing: Face Recognition
Computational Chemistry
Number Theory / Primality Testing Finite-element Crash Simulation
High Energy Nuclear Physics Accelerator Design Meteorology: Pollutant Distribution
RA.3 2018 v1.0.0
18
SPEC CINT2006
Benchmark Sprache
perlbench C bzip2 C gcc C mcf C gombk C hmmer C sjeng C libquantum C h264ref C omnetpp C++ astar C++ xalancbmk C++
Kategorie
PERL Programming Language Compression
C Programming Language Compiler Combinatorial Optimization
Artificial Intelligence: Playing Go Search Gene Sequence
Artificial Intelligence: Playing Chess Physics: Quantum Computing
Video Compression Discrete Event Simulation Path-finding Algorithms XML Processing
RA.3 2018 v1.0.0
19
Benchmark Sprache
Kategorie
Fluid Dynamics
Quantum Chemistry
Physics / Quantum Chromodynamics Physics / CFD
Biochemistry / Molecular Dynamics Physics / General Relativity
Fluid Dynamics
Biology / Molecular Dynamics
Finite Element Analysis
Linear Programming, Optimization Image Ray-tracing
Structural Mechanics Computational Electromagnetics Quantum Chemistry
Fluid Dynamics
Weather Prediction
Speech Recognition
bwaves gamess milc zeusmp gromacs cactusADM leslie3d namd
dealII soplex povray calculix GemsFDTD tonto
lbm
wrf sphinx3
Fortran Fortran
C
Fortran C/Fortran C/Fortran Fortran C++
C++
C++
C++ C/Fortran Fortran Fortran
C C/Fortran C
RA.3 2018 v1.0.0
SPEC CFP2006
20
3.3 Performanceverbesserungen
• Wenn Algorithmus, Programmiersprache und Instruktionssatz gegeben sind, woher kommen Verbesserungen in der Prozessor-Performance?
→ modernere Technologie:
→ verbesserte Rechnerarchitektur:
kleinere Taktperiode T kleinerer CPI Wert, kleineres T
→ verbesserter Compiler:
kleineres IC, vermehrte Nutzung von Befehlen mit kleinerem CPI Wert
• Die Performanceverbesserung wird durch den Speedup gemessen:
Speedup =
Texe ohne Verbesserung Texe mit Verbesserung
RA.3 2018 v1.0.0
21
Performanceverbesserungen
• Amdahls Gesetz ohne Verbesserung
mit Verbesserung
F' Verbesserungsfaktor S = F F'
Texe
F
wenn F in % von Texe gegeben ist (in [0,1]) :
Speedup = 1
( 1 - F ) + FS
RA.3 2018 v1.0.0
22
• v1.0.0
– Aktualisierung für WS 2018/19
– Neue Daten zur Entwicklung der Performance, Taktfrequenz und DRAM Kapazität
RA.3 2018 v1.0.0
Änderungen
23