Bewertung der Rechenleistung
🎯 Ziel
- Auswahl der Rechenanlage
- Veränderung der Konfiguration einer bestehenden Anlage
- Entwurf von Anlagen
Bewertung der Leistungsfähigkeit
Was heißt es: Ein Rechner ist schneller als ein anderer Rechner?
Perspektive des Benutzers
„Ein Rechner A ist schneller als ein Rechner B, wenn ein Programm auf A weniger Zeit benötigt.“
Reduzierung der Antwortzeit (response time) oder Ausführungszeit (execution time), Latenz
A ist $n$-mal schneller als B $\Leftrightarrow$ $\frac{\text { Ausfüncungszeit }(\mathrm{B})}{\text { Ausfünrungszeit }(\mathrm{A})}=\mathrm{n}$
Perspektive des Rechenzentrumsleiters
„Ein Rechner A ist schneller als ein Rechner B, wenn A in einer Stunde mehr Aufträge (Jobs) erledigt.“
Erhöhung des Durchsatzes (throughput)
Durchsatzes (throughput): Anzahl der ausgeführten Aufgaben in einem gegebenen Zeitintervall
Durchsatz von A ist m-mal höher als der von B:
$\Leftrightarrow$ Die Anzahl der erledigten Aufgaben auf A ist m-mal die Anzahl der erledigten Aufgaben auf B.
Definitionen
- Ausführungszeit (execution time)
- Wall-clock time, response time, elapsed time
Latenzzeit für die Ausführung einer Aufgabe
Schließt den Speicher- und Plattenzugriff, Ein-/ Ausgabe etc. mit ein.
- CPU Time: Zeit, in der die CPU arbeitet
- User CPU Time: Zeit, in der die CPU ein Programm ausführt
- System CPU Time: Zeit, in der die CPU Betriebssystemaufgaben ausführt, die von einem Programm angefordert werden
Verfahren
Auswertung von Hardwaremaßen und Parametern
Der Rechner läuft mit fester Taktrate, angegeben durch
Dauer eines Taktzyklus (z. B. 1ns)
Taktfrequenz (z. B. 1 GHz)
Die CPU-Zeit einer Programmausführung: $$ \mathrm{T}_{\mathrm{exe}}=\mathrm{IC} \times \mathrm{CPI} \times \mathrm{TC} $$
$\mathrm{T}_{\mathrm{exe}}$: CPU-Zeit
$\text{IC}$: Instruction Count (Anzahl der ausgeführten Befehle)
$\text{CPI}$: Cycles Per Instruction (Anzahl der Zyklen pro Instruktion)
Direkte Abschätzung schwierig wegen der Komplexität heutiger Prozessoren und der Cache-Hierarchie
Hängt vom Kontext ab, in der eine Instruktion ausgeführt wird
Instructions Per Cycle: $$ \mathrm{IPC}=1 / \mathrm{CPI} $$
$\text{TC}$: Machine cycle time (Zykluszeit)
Maßzahlen für die Operationsgeschwindigkeit
MIPS (Millions of Instructions Per Second): $$ \mathrm{MIPS}=\frac{\text { Anzahl der ausgeführten Instruktionen }}{10^{6} \times \text { Ausführungszeit }} $$
MFLOPS (Millions of Floatingpointoperations Per Second) $$ \text{MFLOPS} =\frac{\text { Anzahl der ausgefuhrten Gleitkommaoperationen }}{10^{6} \times \text { Ausführungszeit }} $$
🔴 Probleme
- Abhängigkeit von ISA und ausgeführter Befehlssequenz
- ISA = Instruction Set Architecture
- Unterschiedliche MIPS/MFLOPS-Zahlen bei verschiedenen Programmen
- MIPS kann umgekehrt zur tatsächlichen Rechenleistung variieren
- MIPS/MFLOPS Angaben von Herstellern oft nur best-case-Annahme: theoretische Maximalleistung
📃 Zusammenfassung
Vergleich von Rechnern bezüglich ihrer Leistung ohne großen Aufwand
Maßzahlen bewerten nur spezielle Aspekte
Kritische Betrachtung der Leistungsangabe unbedingt notwendig!
Angabe einer hypothetische Maximalleistung!
Laufzeitmessungen bestehender Programme
Benchmarks: Bewertung der Leistungsfähigkeit aufgrund von Messungen mit Hilfe von einem Programm oder einer Programmsammlung
- Programme liegen im Quellcode vor
- Messung der Ausführungszeiten
- Zugriff auf die Maschinen notwendig
Standardisierte Benchmarks
- 🎯 Ziel: Vergleichbarkeit von Rechnern (inkl. Betriebssystem und Compiler)
- Anforderungen:
Gute Portierbarkeit
Repräsentativ für typische Nutzung der Rechner
- Sammlung von Benchmark-Programmen (Benchmark Suites)
- Ausgeglichene Bewertung durch die unterschiedlichen Eigenschaften der Programme
- Standardisierungsorganisationen
- TPC (Transaction Processing Performance Council)
- SPEC (Standard Performance Evaluation Corporation)
Messungen während des Betriebs von Anlagen
Monitore: Aufzeichnungselemente, die zum Zweck der Rechnerbewertung die Verkehrsverhältnisse während des normalen Betriebs beobachten und untersuchen.
- Hardware-Monitore
- Unabhängige physikalische Geräte
- Keine Beeinflussung
- Software-Monitore
Einbau in das Betriebssystem
Beeinträchtigung der normalen Betriebsverhältnisse 🤪
Aufzeichnungstechniken:
Kontinuierlich oder sporadisch
Gesamtdatenaufzeichnung (Tracing)
Realzeitauswertung
Unabhängiger Auswertungslauf (Post Processing)
Modelltheoretische Verfahren
Unabhängig von der Existenz eines Rechners
Modellbildung
- 🎯 Ziel:
- Aufdecken von Beziehungen zwischen Systemparametern
- Ermitteln von Leistungsgrößen
Annahmen über die Struktur und Betrieb eines Rechners und über die Prozesse
Darstellung der für die Analyse relevanten Merkmale des Systems
- Systemkomponenten
- Datenverkehr zwischen den Systemkomponenten
Abstrahierung komplexer Systeme
- Nur die interessierenden Größen werden erfasst
Analytische Methoden
versuchen auf mathematischem Weg, Beziehungen zwischen relevanten Leistungskenngrößen und fundamentalen Systemparametern herzuleiten
oft nur minimaler Aufwand, aber dafür weniger aussagekräftig 🤪
Typ
Warteschlangenmodelle
Gesetz von Little: $$ k = \lambda \cdot t $$
$$ Q = \lambda \cdot w $$
- $k$: mittlere Anzahl der Aufträge
- $\lambda$: Durchsatz (mittlere Anzahl von Aufträgen, die pro Zeiteinheit bedient werden)
- $t$: Antwortzeit (Verweilzeit, Gesamtheit der Zeit, die ein Auftrag im Wartesystem verbringt)
- $Q$: mittlere Warteschlangenlänge
- $w$: Wartezeit (Zeit, die angibt, die ein System im Wartesystem verbringt)
- ‼️ Voraussetzung: statistisches Gleichgewicht
- Die Rate, mit der die Aufträge ankommen = der Rate, mit der die Aufträge abgehen
Petrinetze
Diagnosegraphen
Netzwerkflussmodelle
Simulation
Wieso brauchen wir Simulation?
- Steigende Komplexität der Computer Systeme
- Zentrales Werkzeug für den Rechnerarchitekt
Evaluation neuer Ideen
Exploration des Entwurfsraums
- Bezüglich Hardware-Prototypen und analytischen Modellen
- Quantifizierung einer Metrik bei der Ausführung einer Arbeitslast (Workload)
- Workload Characterization:
Verstehen der Gründe für das beobachtete Verhalten
Verstehen des Zusammenspiels zwischen der Arbeitslast und dem Zielsystem
Simulatoren
Ein Simulator modelliert die wesentlichen Eigenschaften oder das Verhalten einer Zielmaschine
Verschiedene Ebenen bezüglich der Details und der Genauigkeit
Benchmarks
- Bewertung einer oder mehrerer Komponenten einer Zielmaschine
- Vergleich von verschiedenen Architekturen oder Architekturmerkmalen
Entwurf und Einsatz: Kompromiss zwischen hoher Simulationsgenauigkeit, hoher Simulationsgeschwindigkeit, und niedrigen Entwicklungsaufwand
Taxonomie
User-Level Simulatoren
- Simulation der Mikroarchitektur eines Prozessors
- KEINE Berücksichtigung von Systemressourcen
Full-System Simulatoren
- Modellieren ein vollständiges Computersystem, einschließlich CPU, I/O, Disk, Netzwerk
- Booten und Ausführung von Betriebssystemen
- Beobachten der Interaktion von Workload und System
Funktionale Simulatoren (Functional Simulators)
Modelliert nur die Funktionalität (ohne Berücksichtigung der Mikroarchitektur eines Prozessors)
Emulation der Befehlssatzarchitektur
Bildet oft den Ausgangspunkt einer komplexeren Simulationsumgebung
Zyklen genaue Simulatoren (Cycle-accurate Simulators)
- Erfassen die Details der Mikroarchitekturblöcke
- Emulation der Funktionalität der Mikroarchitekturblöcke sowie des Zeitverhaltens
- Mikroarchitekturblöcke sind parametrisierbar
Prozessorsimulator
- simuliert die Ausführung der Befehle eines Benchmarks auf einem Zielprozessor
- Befehl erhalten
- Spurgetriebene Simulatoren (trace-driven simulation)
- Ausführung des Benchmarks auf einem ISA-kompatiblen Prozessor, oder einem Simulator (nicht notwendigerweise auf dem selben Prozessor wie dem Zielprozessor)
- Während der Ausführung des Benchmarks werden die ausgeführten Befehle auf eine Spurdatei (Trace) geschrieben bzw. protokolliert
- Nach der Aufzeichnung dient die Spurdatei als Eingabe für einen Zyklen genauen Simulator
- Jede Instruktion wird simuliert auf der Basis des Mikroarchitekturmodells
- Ausführungsgetriebene Simulatoren (execution driven simulation)
Die ausführbare Datei des Benchmark dient als Eingabe für den Simulator
Simulator muss das Zeitverhalten sowie die Funktionalität genau reproduzieren
Aufwendige Entwicklung
Genauigkeit und Flexibilität besser als bei Spurgetriebenen Simulatoren
- Spurgetriebene Simulatoren (trace-driven simulation)