- Leistungsbewertung (Computer)
-
Die Leistungsbewertung versucht objektive Aussagen über ein oder mehrere Rechensysteme durch messbare Größen zu treffen. Die Leistung wird immer für eine bestimmte Rechnerkonfiguration unter bestimmten Nebenbedingungen unter Anwendung bestimmter Software vorgenommen. Viele Einflüsse ergeben einen breiten Parameterraum, bei der Bestimmung der Leistung eines Rechensystems. Solche Faktoren sind zum Beispiel:
- die verwendeten Algorithmen
- die Umsetzung der Algorithmen in bestimmter Software
- die Hardwarekonfiguration
- das verwendete Betriebssystem
- das Netzwerk
- die Kommunikation
Die Leistungsbewertung von Computersystemen erfolgt anhand verschiedener Kriterien. Dazu zählen:
- Kosten
- Leistungsverbrauch
- Ausführungszeit von Programmen
- Reaktionszeit auf Unterbrechungen
- Verfügbarkeit von Software und Compilern
Inhaltsverzeichnis
Ziele und Einsatzgebiete
Planning Phase
Beim Entwurf neuer Hard- und Softwarestrukturen muss überprüft werden, ob einzelne Komponenten den Anforderungen gerecht werden und sich leistungsgerecht in das Gesamtsystem eingliedern. So lassen sich Flaschenhälse auffinden und vermeiden.
Design and Implementation Phase
Bei der Implementierung von Komponenten muss geprüft werden, ob der Entwurf korrekt umgesetzt wurde und ob die Komponente die geforderte Leistung wirklich erbringt.
Configuration Process
Bei der Zusammenstellung einer komplexen Rechenanlage ist es erforderlich, einzelne Teilkomponenten verschiedener Hersteller zu vergleichen und objektiv zu bewerten, um die optimale Konfiguration zu finden.
System Tuning
Ändern sich die Anforderungen an ein System, so kann es plötzlich vorkommen, dass sich einzelne Komponenten als Flaschenhals erweisen. Ungezieltes Aufrüsten ist teuer und ineffizient. Mit der Leistungsbewertung können Engpässe aufgedeckt und beseitigt werden.
Kenngrößen und Leistungskriterien
Durchsatz
Verarbeitungsvolumen pro Zeiteinheit
Programm-Ausführungszeit
Zeit zwischen Start und Ende eines Programms
CPU-Ausführungszeit
Die CPU-Ausführungszeit berechnet sich wie folgt.
- CPU-Ausführungszeit = CPU-Taktzyklen × Taktzykluszeit
Außerdem gilt:
- Taktzykluszeit = 1 / Taktrate = Programmbefehle × CPI × Taktzykluszeit
CPI (Cycles per Instruction)
Mittlere Zahl der Takte pro Instruktion. Anzahl der Taktzyklen dividiert durch die die Anzahl der ausgeführten Anweisungen die bei der Ausführung des Programms benötigt werden.
CPI = Taktzyklen / Anweisungen
Ein niedriger CPI-Wert steht für hohe Effizienz der CPU, der CPI Wert alleine sagt jedoch nichts über die tatsächliche Geschwindigkeit (Effektivität) aus.
IPC (Instructions per Cycle)
Anzahl der ausgeführten Anweisungen dividiert durch die Anzahl der Taktzyklen, die für die Ausführung des Programms benötigt werden. IPC kann auch als Kehrwert von CPI ausgedrückt werden.
IPC = Anzahl Anweisungen / Taktzyklen
Ein hoher IPC-Wert steht für eine hohe Effizienz der Architektur.
Das Maß MIPS dagegen ist eine Maßeinheit um die Prozessorleistung anzugeben. Ein richtige Bewertung erlaubt jedoch nur die gemeinsame Betrachtung von MIPS und CPI.
Außerdem finden sich oft Angaben der verarbeiteten Gleitkommaoperationen pro Sekunde, den FLOPS.
Performance
Performance = 1 / Execution Time
Das Problem bei solchen Maßzahlen ist, dass damit zwar Zahlen rauskommen, die der Käufer vergleichen kann, die aber letztlich in vielen Fällen nur wenig Aussagen machen über die tatsächliche Leistungsfähigkeit des Systems.Ein weiterer Versuch, die Leistung von Computern zu vergleichen, sind Mixes und Kernprogramme. Diese Versuche sind allerdings relativ aufwändig.
Mixes
Bei Mixen wird versucht, eine mittlere Operationszeit T zu bestimmen. Dazu werden die unterschiedlichen Befehlstypen nach der erwarteten relativen Häufigkeit ihres Auftretens bewertet und summiert.
Kernprogramme
Kernprogramme sind typische Anwenderprogramme, die für den zu bewertenden Rechner geschrieben werden. Sie werden jedoch nicht zur Ausführung gebracht, Ziel ist es, die Ausführungszeit auf Grundlage der einzelnen Befehlsausführungszeiten zu bestimmen.
Beobachtende Leistungsbewertung
Die beobachtende Leistungsbewertung wird auch als Monitoring bezeichnet. Je nach Art wird zwischen Software-Monitoring und Hardware-Monitoring unterschieden. Die Beobachtung kann ereignisgesteuert, zeitgesteuert oder zufällig gestartet werden.
Hardware-Monitoring
Hier werden Messfühler direkt an das Messobjekt angebracht, welche die entsprechenden Daten an einen Monitor übertragen. Diese Art der Messung beeinträchtigt den Ablauf des Objektrechners nicht.
Software-Monitoring
Ein Messprogramm wird auf dem Objektrechner installiert, welches die gewünschten Informationen über eine Standardschnittstelle an einen Monitor überträgt. Da die Messprogramme unabhängig von der Hardware arbeiten, sind nur minimale Kenntnisse des Objektrechners nötig und die Messprogramme sind auf nahezu allen Rechnern lauffähig. Jedoch wird der Programmablauf auf dem Objektrechner verändert und es werden zusätzliche Ressourcen verbraucht. Das dynamische Verhalten des Objektrechners wird verfälscht.
Probleme beim Monitoring
- VLSI erschwert das Hardware-Monitoring durch zunehmende Integration von Komponenten
- durch virtuelle Speicherkonzepte sind bestimmte Speicherbereiche zu den Prozessoren nicht mehr zuzuordnen
- RISC-Prozessoren ändern ggf. die Reihenfolge der Befehlsausführung Forwarding
- zunehmende Taktraten bewirken übermäßige Flut von Messdaten
Benchmarks
Benchmarks sind Sammlungen von Programmen oder Programmkernen, die ein bestimmtes Anwenderprofil repräsentieren oder künstlich zusammengestellt werden. Die bekanntesten Benchmarks sind:
Dabei sollte man beachten, dass auch hier ein Spielraum für Manipulation vorhanden ist. In der Praxis werden oft Compiler oder auch Befehlssätze derart optimiert, dass gängige Benchmarks besonders schnell ablaufen.
Berechnende Leisungsbewertung
Anders als bei den vorher genannten Methoden muss bei der berechnenden Leistungsbewertung kein reales System vorhanden sein.
Graphentheoretische Beschreibung
Besonders in der Kommunikationstechnik bietet es sich an, das System als Graph zu modellieren. Die Komponenten werden als Knoten dargestellt. Verbindungen zwischen den Komponenten werden als Kanten repräsentiert. Jede Kante hat eine Maximalkapazität, welche nicht überschritten werden darf und einen aktuellen Fluss. Das entstandene Netzwerk lässt sich nun bewerten, indem der größtmögliche Fluss zwischen zwei Komponenten bestimmt wird. Wird das paarweise für alle Knoten durchgeführt, so lassen sich langsame Komponenten ausfindig machen.
Eine verkehrstheoretische Beschreibung geht von einer Warteschlange mit Aufträgen aus, welche von einer Bedienstation abgearbeitet wird. Die Aufträge erreichen die Warteschlange mit einer mittlere Ankunftsrate λ und verlassen die Bedienstation mit einer mittleren Bedienrate μ. Die Verkehrsintesität wird durch den Quotienten beschrieben. Das System arbeitet nur vernünftig, solange ist. Andernfalls kommt es zum Überlauf.
Mit diesem Modell lassen sich verschiedene Systeme darstellen. Ein Rechner ohne Pipelining mit nur einem Prozessor bekommt als Verteilungsfunktion eine negative Exponentialverteilung. Pipeline-Prozessoren mit k Stufen werden mit der Erlang-Verteilung modelliert. Für Multiprozessorsysteme nutzt man eine Hyperexponentialverteilung kter Ordnung
Ein verkehrstheoretisches System wird mit Hilfe der Kendall-Notation beschrieben. Typische Modelle sind M/M/1/1 und M/M/1
Leistungsdatenbanken
Fachzeitschriften und -magazine veröffentlichen regelmäßig Rankings zur Leistungsfähigkeit von Rechnersystemen oder -komponenten. Diese werden durch Kennzahlen oder Benchmarks bestimmt.
Eine sehr bekannte Datenbank, die TOP500, listet die 500 leistungsfähigsten Superrechner der Welt auf. Hierzu wird der Linpack-Benchmark verwendet. [1]
Literatur
- John L. Hennessy, David A. Patterson: Rechnerarchitektur: Analyse, Entwurf, Implementierung, Bewertung. Vieweg, Braunschweig 1994, ISBN 3-528-05173-6
- Andrew S. Tanenbaum, James Goodman: Computerarchitektur. 4. Auflage, Pearson Studium, München 2001, ISBN 3-8273-7016-7
Einzelnachweise (Quellen)
Wikimedia Foundation.