代写 C++ C algorithm game MIPS XML compiler database graph software network Go Rechnerarchitektur (RA)

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