Vergleichskriterien
Je nach Anwendungsfall kann die Menge an zu betrachtender Kriterien stark variieren.
Häufig sind jedoch die folgenden vertreten:
- Preis
- Größe
- Gewicht
- Stromverbrauch
- Bandbreite
- Durchsatz
- Geschwindigkeit
Bandbreite vs. Durchsatz
Am Beispiel einer Supermarktkasse können die beiden Begriffe gut veranschaulicht werden.
Die Menge der Verbauten Kassen ist die Bandbreite. Sie bestimmt den maximal möglichen Durchsatz.
Dieser entspricht der Anzahl tatsächlich geöffneter Kassen.
Ebenfalls ist die Perspektive des Betrachters für einen Vergleich relevant.
Ein Benutzer wird primär auf die Antwortzeit des Systems achten, während für den Anbieter eines Service eher die Bandbreite im Vordergrund steht.
Wichtig für alle ist jedoch die Ausführungszeit.
Leistungsmessung
Ein Rechner der die selbe Arbeit in weniger Zeit vollbringt ist schneller als ein Rechner .
Ausführungszeit und Leistung sind invers zu einander.
Ausführungszeit
Mit Ausführungszeit können verschiedene Messungen gemeint sein.
Laufzeit
Beschreibt die gesamte benötigte Zeit.
In dieser Messung sind auch I/O und Speicherzugriffe enthalten. Ebenso eventuelle Wartezeiten die vom Scheduler verursacht sind.
Auch die vom Betriebssystem selbst verbrauchte Leistung wird im Ergebnis reflektiert und nicht rausgerechnet.
CPU Zeit
Hier werden die Wartezeiten auf andere Programme und Betriebssystem mathematisch korrigiert. Der Wert spiegelt also nur die Zeit wieder, in der der zu messende Code auch tatsächlich im CPU verbracht hat um ausgeführt zu werden.
User CPU Zeit
Sehr idealisierte Zeit in der nur die Ausführungszeit des Quellcodes enthalten ist. Verzögerungen, die durch das Betriebssystem entstehen, sind nicht enthalten.
Leistungsdefinitionen
Bei einer Leistungsmessung geht man zur besseren Vergleichbarkeit von einem unbelasteten System aus. Ein Mehrprogrammbetrieb ist nicht erwünscht.
Um Unabhängigkeit von IO und OS zu gewährleisten wird die User CPU Zeit verwendet.
Programmwahl
Es sollten immer reale Programme gemessen werden.
Aufgrund der großen Unterschiede zwischen möglichen Nutzungsprofilen eines Rechners ist es wichtig verschiedene Arten von Last zu testen (Spiele, Simulationen, Textbearbeitung, Browser)
Mögliche Programmtypen:
- Reale Applikationen
- Geskriptete Applikationen
Benutzereingaben sind hier mit Skripts automatisch simuliert - Kernels
Sind kleine Teile realer Applikationen und dienen nur zur Leistungsmessung - Spiel Benchmarks
- Tante Erna Test
Zeit von Spannungsversorgung bis absenden einer Email
Es gibt eine Reihe an offizieller Benchmarks die versuchen alle Anwendungsbereiche bestmöglich abzudecken. (SPEC oder TPC-C)
Diese Mischbewertung passt oft sehr gut.
Vergleich von Leistungsmessungen
Beispiel: Für die Rechner , , wurden jeweils die Programme und getestet.
| Zeit in Sekunden | Rechner | Rechner | Rechner |
|---|---|---|---|
| Programm | |||
| Programm | |||
| Gesamtlaufzeit |
Es kann nicht sofort eine Gesamtleistung der Systeme erkannt werden.
Man kann mit Bezug auf konkrete Programme Vergleichen:
- ist mal schneller als um zu berechnen
- brauch -mal länger für als
In der zu erwartenden Belastung werden nicht alle Programme gleich oft verwendet werden. Man berechnet eine gewichtete Summe.
Gewichtung könnte hier nach der Frequenz des Programms im System gewählt werden.
Es kann sinnvoll sein die Ausführungszeit auf eine Referenzmaschine zu normalisieren. Bei SPEC wird hier die SPARCstation verwendet.
Hier ist es von Vorteil den Geometrischen Mittelwert der Laufzeitverhältnisse anzugeben.
Beispiel
Gezeigt sind die Messwerte für beide Programme auf allen Maschinen. (Oben Links)
In den Mittleren Reihen sind die Verhältnisse zur Geschwindigkeit einer Referenzmaschine gegeben. Links mit und rechts mit
In den Letzten Reihen werden jeweils die Mittelwerte der Verhältnisse berechnet.
| A | B | C | A | B | C | ||
|---|---|---|---|---|---|---|---|
| Arithmetisch | |||||||
| Geometrisch |
Vorteil der Verwendung des geometrischen Mittels ist die Unabhängigkeit von der Referenzmaschine. Besonders beim Arithmetischen Mittel dieser Größen ist das nicht der Fall.
Allerdings kann aus diesen Ergebnissen keine tatsächliche Vorhersage zur Laufzeit gemacht werden. Ebenfalls haben Verbesserungen einen Effekt auf das Gesamtergebnis das proportional zur Größe des Problems.
Eine Verbesserung von würde gleich bewertet wie .
CPU Leistungsgleichung
Rechner arbeiten mit einer Konstanten Taktrate.
Instruction Count (IC) ist die Menge der ausgeführten Instruktionen.
Prinzip der Lokalität
Eigenschaft von Programmen:
- Blinde Wiederverwendung von Code & Daten (Cache) die kürzlich verarbeitet wurden (Kontrolle im Hintergrund)
- 10% Code werden in 90% der Zeit tatsächlich verwendet
Örtliche Lokalität (nah beieinander) vs. temporale Lokalität (vor Kurzem verwendet)
Mögliche Irrtümer
- Gleicher Befehlssatz der CPU ist bedeutet nicht, dass diese Rechner nur anhand der Taktrate vergleichbar sind.
- Instructions per Second variiert stark je nach Programm.
Außerdem stark abhängig vom Befehlssatz