[ < ] [ globale Übersicht ] [ Kapitelübersicht ] [ Stichwortsuche ] [ > ]
Bei der Beurteilung und Auswahl von Computerhardware oder bei der Qualitätsbewertung numerischer Software werden zur quantitativen Leistungsbeschreibung analytisch oder empirisch ermittelte Zahlenwerte herangezogen. In der Nummerik ist vor allem die erforderliche Zeit für die Lösung einer konkreten Aufgabenstellung von Interesse:
Die zu verrichtende Arbeitsmenge ist:
Die Maximalleistung ist
Der Wirkungsgrad:
Die Leistung (perforrnance) eines informationsverarbeitenden Systems ist vergleichbar mit dem in der Physik definierten Begriff "Leistung P ist Arbeit W pro Zeiteinheit t ". Von der mittleren Leistung bezüglich eines ganzen Zeitintervalls[t1, t2]
unterscheidet man die Momentanleistung P(t) zu einem einzigen Zeitpunkt t:
Computer-Leistungsbewertungen können auf zwei Arten erfolgen:
Benchmarks benutzt man, um Vergleiche ganzer Computersysteme (Hardware plus Systemsoftware plus Anwendungssoftware) effektiv und aussagekräftig erstellen zu können. Es handelt sich dabei um Programme, die die nötigen Berechnungen durchführen. Ermittelt wird dabei in der Numerischen Datenverarbeitung meist die Anzahl der Gleitpunktoperationen (floating point operations), die im Mittel pro Sekunde ausgeführt werden. Die Einheit dieser Gleitpunktleistung ist dementsprechend flop/s (floating point operations per second) bzw. Mflop/s oder Gflop/s .
Für die Nummerik wichtig, ist der LINPACK-Benchmark. Um ihn zu erhalten, verwendet man die Programme LINPACK/sgefa und LINPACK/sgesl zur Lösung von linearen Gleichungssystemen mit n = 100 Unbekannten. Aus der dafür erforderlichen Arbeitsmenge, gemessen durch die Anzahl der ausgeführten Gleitpunktoperationen und der benötigten Zeit T ergibt sich die (effektive) Gleitpunktleistung
Vergleicht man den dabei erhaltenen Wert mit der Maximalleistung (peak performance) des verwendeten Computers, so erhält man den Wirkungsgrad, d.h. die Ausnutzung der potentiell vorhandenen Rechnerleistung durch die verwendeten LINPACK-Programme.
Ein Beispiel: Hat ein Computer eine Maximalleistung von 6400 Mflops/s, mit den oben genannten LINPACK - Programmen erreicht man für 100 x 100 - Gleichungssysteme eine effektive Leistung von 368 Mflop/s, so beträgt der Wirkungsgrad nur 6%. Hingegen mit einem Gleichungssystem mit n = 1000 Unbekannten, wobei das Programm die Besonderheiten des Computers berücksichtigt, beträgt die Gleitpunktleistung 5199 Mflop/s und der Wirkungsgrad 81%.
MFLOPS und Linpack als Benchmark
Böse Zungen behaupten: "Benchmarks lie, and Liars do Benchmarks" (Benchmarks lügen, und Lügner benchmarken). So schlimm ist es auch wieder nicht, aber man muß schon wissen, was man von einem Benchmark erwarten kann. Ein Benchmark beschreibt die Geschwindigkeit eines Rechners bei der Abarbeitung bestimmter Programmpakete, Geschwindigkeit eines Rechners "an sich" gibt es nicht, und theoretische Spitzenleistungen sind zur Performance-Bewertung eines Rechners sicher weniger aussagekräftig als "richtige" Benchmarks.
Ein beliebter Test für naturwissenschaftlich-technische Anwendungen ist der sogenannte Linpack-Benchmark, benannt nach dem Public-Domain Programmpaket für numerische Lineare Algebra, auf dem er beruht. Der Kern besteht, stark vereinfacht ausgedrückt, aus der numerischen Gauß-Elimination. Die vollständige Tabelle, der fairerweise eine Einleitung und eine Warnung vor Überinterpretationen vorangestellt ist, umfaßt an die 20 Seiten.
Der Inhalt der Tabelle ist aus vielen Gründen interessant, aber viel interessanter ist, was nicht in der Tabelle steht.
Insgesamt basiert der Linpack-Test auf sehr vielen SAXPY-Operationen in der innersten Schleife. Dies benachteiligt im Allgemeinen die RISC-Prozessoren, da hier relativ viele Daten geladen werden müssen. Für Vektorsupercomputer sind die gerechneten Systeme etwas zu klein, wer sein Problem auf einem PC lösen kann, verwendet keine Cray.
Für eigene Programme kann man folgende Abschätzungen treffen:
Auf RISC-Maschinen:
Enthalten Programme prozentual weniger Speicherzugriffe als LINPACK-Programme
(SAXPY als innerste Schleife), kann man höhere Flopraten erwarten
als in der 2. oder 3. Spalte.
Enthält ein Programm prozentual mehr Indexberechnungen und Speicherzugriffe als eine Gauß-Elimination, so ist mit niedrigeren Flopraten als in der 2. oder 3. Spalte zu rechnen.
Auf Vektor-Supercomputern:
Enthalten Programme größere Vektorlängen als 100 bzw. 1000,
so kann man höhere Flopraten erwarten als in der 2. oder 3. Spalte,
sonst mit niedrigeren Flopraten.
Enthält der Code einen großen Anteil von transzendenten Funktionen und Divisionen, kann man keine Aussagen mehr treffen, das Verhalten wird dann von vorhandenen Coprozessoren und der Qualität der mathematischen Bibliotheken dominiert.
Als Benchmarkprogramm kann ein beliebiges Nutzer- oder
Systemprogramm zwecks Gewinnung von Performanceaussagen beim Vergleich
auf verschiedenen Systemen verwendet werden (z.B. Chemiepakete).
In der Literatur oder auch Diskussionsrunden finden sich unterschiedlichste
Hinweise, so beispielsweise:
Bei der Portierung auf andere Systeme treten nicht selten Schwierigkeiten
betreffs Compilierung und Programmlauf auf, wobei bei verbreiteten, vom
Entwickler für mehrere Plattformen hergestellten Programmen meistens
Anpassungen der Zeitmeßroutinen erforderlich sind und variierte Compiler-
Optionen und geringfügige Quelltextänderungen unumgänglich
sein können.
In vielen Fällen ist der Quelltext frei verfügbar (z.B. Mailadresse
netlib@ornol.gov).
Generell sind die SPECmark-Programme kostenpflichtig.
Ausgewiesen werden Performanceleistungen wie:
Eingeteilt werden Benchmarkprogramme in Gruppen wie:
synthetisch, Applikation, Algorithmen, Kernel, CPU-, System-Messung.
Im folgenden sind einige Benchmarks mit deren Charakteristik zu finden:
zur Zeit 8 (NPB 1.0) bzw. 5 (NPB 2.0) Programme:
BT Block Tridiagonaler Löser CG Conjugate Gradient (max.Eigenwert
dünn besetzter Matrix, irreguläre Kommunikation)
EP Embarassingly Parallel (Gaußsche Zufallszahlen, Peakleistung)
FT 3D-FFT (part.Differentialgl., Kommunikation) IS Integer Sort
("Particle Methods", Kommunikation)
LU Löser (impliz.Operatoren in INS3D-LU-, SSOR-Verfahren)
MG Multigrid (stark strukturierte Kommunikation)
SP Skalarer pentadiagonaler Löser (impliz.Operatoren in ARC3D,
globale Datenabhängigkeit) verschiedenster Parallelrechnersysteme,
z.B. auch nach Preis-Leistungs-Vergleich
Jedes Nutzerprogramm oder anderes Programm kann als Benchmarkprogramm verwendet werden.
Benchmarking von Multiprozessorsystemen
Die steigende Anzahl von kommerziellen Multiprozessorsystemen erfordert Verfahren zur Leistungsbewertung von diesen Systemen. Werte wie MIPS oder MFLOPS, die oft von Rechnerherstellern verwendet werden sind nicht sehr hilfreich, weil sie wenig über das tatsächliche Verhalten von parallelen Anwendungen aussagen. Dieses bereits bei Monoprozessorarchitekturen auftretende Problem verstärkt sich noch bei Multiprozessoren. Architektureigenschaften wie die Anordnung der Prozessoren und die Leistung des Verbindungsnetzwerkes haben großen Einfluß auf die Gesamtleistung des Systems und werden durch die obigen Werte nicht ausreichend berücksichtigt.
Leistungsmodellierung von Multiprozessorsystemen
PerPreT
Massiv parallele Rechnerarchitekturen sind derzeit Systeme mit hunderten oder tausenden von Prozessoren, die mittels Nachrichtenaustausch kommunizieren können. Die Implementierung von parallelen Anwendungen auf diesen Systemen ist eine anspruchsvolle Aufgabe. Der Rechnerarchitekt verwendet PerPreT um den Einfluß von Änderungen von Architekturparametern auf parallele Anwendungen zu untersuchen (z.B. die Reduktion von setup Zeiten, Erhöhung von Bandbreiten des Verbindungsnetzwerkes, schnellere Prozessoren). Die Anwendungsentwickler interessiert eine schnelle Auswertung von verschiedenen Parallelisierungsstrategien ihrer Programme. PerPreT verwendet ein relativ einfaches analytisches Modell um Speedup, Ausführungszeit, Rechenzeit und Kommunikationszeit von parametrisierten Anwendungen vorherzusagen. Insbesondere bei großen Prozessoranzahlen ist PerPreTs analytisches Modell den traditionllen Methoden (z.B. Markov basierten Ansätzen wie Warteschlangen- und Petrinetzmodelle) überlegen. Die Anwendungen werden mittels parametrisierter Formeln für Berechnung und Kommunikation modelliert. Anwendungsparamter beinhalten die Problemgröße und die Anzahl der zur Berechnung verwendeten Prozessoren. Die Multiprozessorsysteme werden durch ihre Architekturparameter (z.B. setup Zeiten fü die Kommunikation, Bandbreite des Verbindungsnetzwerkes und reale Knotenleistung) beschrieben. In Abbildung 1 sind die Elemente von PerPreT (Anwendungsbeschreibung, Systembeschreibung, Kommunikationsbibliothek) skizziert.
Eine Programmierumgebung zur Messung der wechselseitigen Einflüsse
von Hintergrundlast und parallelem Programm
Die meisten Mehrprozessor-Supercomputer werden heute im Mehrbenutzerbetrieb
eingesetzt, wo die einzelnen Prozessoren unabhängige Jobs ausführen,
die um die vorhandenen Ressourcen konkurrieren. Mit Hilfe von Multitasking
kann dabei ein Programm auch parallel mit mehreren Prozessoren ausgeführt
werden. Die Effizienz von parallelen Programmen im Mehrbenutzerbetrieb
und der Einfluß dieser Programme auf die gesamte Systemlast sind
wesentliche Bewertungskriterien für den Einsatz von Multitasking.
Während die Effizienz von parallelen Programmen in dedizierter Umgebung
bereits vielfach untersucht wurde, wird in dieser Arbeit ein neuer Ansatz
zur Bewertung von Multitasking gemacht. Die Arbeit beschreibt das Benchmark-System
PAR-Bench, das auf den Systemen Cray X-MP und Cray Y-MP unter den Betriebssystemen
COS und UNICOS implementiert ist und Effizienzuntersuchungen von parallelen
Programmen im Mehrbenutzerbetrieb ermöglicht. Mit Hilfe von PAR-Bench
können die wechselseitigen Einflüsse von parallelen Programmen
und Hintergrundlast ermittelt werden, was die Bewertung verschiedener Multitasking-Implementationen,
verschiedener Betriebssysteme und unterschiedlicher Hardware erlaubt. Aufgrund
der großen Menge der für diese Bewertung relevanten Daten wurde
zur Unterstützung von PAR-Bench das Benchmark-Analysesystem GRANSYS
entwickelt, das eine automatische Auswertung der Benchmarks mit Hilfe von
Graphiken und Tabellen unterstützt.
Im folgenden sind einige Internet - Adressen zu finden. Auf diesen Web-Seiten sollten weitere Informationen zum Thema Benchmark, sowie Berichte mit Ergebnissen und entsprechende Software zur Verfügung stehen.
http://www.netlib.org/benchmark/
http://www.netlib.org/benchmark/performance.ps
http://www.netlib.org/benchmark/parkbench
http://www.nas.nasa.gov/NAS/NPB
http://www.parallel.rz.uni-mannheim.de/top500.html
http://www.fsid.cvut.cz/pub/doc/benchmarks
Der Faktor Zeit ist, wie am Beginn der Leistungsbewertung bereits erwähnt, eine der wichtigsten Einflußgrößen in der Leistungsbewertung. (Der Faktor Arbeit wird noch in Kapitel 5 besprochen).
Dementsprechend unterscheided man die Antwortzeit und die CPU-Zeit.
(response time, elapsed time, wall-clock time)
Die Antwortzeit ist jene Zeit, die zwischen dem Absenden des Kommandos zum Starten einer bestimmten Datenverarbeitungsaktivität und deren Beendigung, also der "Antwort" des Rechners liegt.
Dieser Wert hängt im Normalfall von Faktoren ab, die in geplanten, reproduzierbaren Experimenten nicht nachzustellen sind. Z.B.:
Sie gibt an, wie lange die CPU effektiv mit der gestellten Aufgabe beschäftigt war, ohne deren zwischenzeitliche Belegung durch andere Prozesse oder Ein-/Ausgabe-Wartezeiten zu berücksichtigen, wie z. B. das Eintreffen von Daten aus dem Sekundärspeicher. (wichitg für Multi-user-Betrieb)
Die CPU-Zeit wird wiederum unterteilt in die Benutzer-CPU-Zeit und in die System-CPU-Zeit.
Die Benutzer-CPU-Zeit ist jene Zeit, während der die Instruktionen des Anwendugsprogramms und der dazugebundenen Routinen ausgeführt werden.
Die System-CPU-Zeit dient der Ausführung von Betriebssystemfunktionen, die für die Abarbeitung des Anwendungsprogramms zusätzlich benötigt werden (z.B. Zugriffe auf Seiten des virtuellen Speichers im Sekundärspeicher oder Durchführung von Ein-/Ausgabe-Operationen).
Je nachdem welche Art der Zeitmessung die zu untersuchende Leistung charakterisieren soll, unterscheidet man zwischen der
Ausgangspunkt von analytischen Bewertungen der Hardwareleistung sind die technischen Daten und physikalischen Merkmale des Computers, wie z.B.
Wie man aus der Aufzählung oben bereits erkennen kann, ist die analytische Leistungsbewertung für Aussagen wie, "in welchem Ausmaß ist ein Rechner schneller als ein anderer?", etc. unerläßlich. Da die Kenngrößen dieser Bewertung immer bessere Werte zeigen, als die in der Praxis tatsächlich erhaltenen, spricht man hier auch von der IDEALEN Leistungsbewertung, im Gegensatz zu den REALEN Leistungsdaten die auf empirischem Weg ermittelt werden. (siehe 2.5.6.)
Die Maximalleistung (peak performance) Pmax eines Computers entspricht der theoretisch möglichen Maximalanzahl Nc von Gleitpunkt- (oder anderen) Operationen, die von diesem Computer pro Zeiteinheit Tc (meist pro Sekunde) durchgeführt werden können.
Falls sich Pmax auf die pro Sekunde ausführbaren Gleitpunktoperationen bezieht, so erhält man die maximale Gleitpunktleistung mit der Einheit flop/s (floating point operations per second) bzw. Mflop/s (1E6 flop/s) , Gflop/s (1E9 flop/s) oder Tflop/s (1E12 flop/s).
Da der Zeitaufwand aller unterstützenden Adreßberechnungen, Speicheroperationen etc vernachlässigt werden, wird man die Maximalleistungsangabe mit keinem noch so guten Programm, das auf dem betreffenden Computer läuft, je übertreffen. In die Nähe dieser Leistung Maximalleistung kommen nur einzelne, besonders optimierte Programmabschnitte.
Beispiel (IBM-Workstation):
Das Modell 990 der IBM-POWER2-Workstations hat eine Zykluszeit von Tc = 14 ns. In einem Taktzyklus können maximal vier Gleitpunktoperationen (je eine Multiply-and-Add-Instruktion in den zwei parallelen Gleitpunkt-Pipelines) ausgeführt werden . Als maximale Gleitpunktleistung ergibt sich damit:
Je geringer der Anteil der Multiply-and-Add-Instruktionen an der Gesamtheit der konkret auszuführenden Gleitpunktoperationen eines Programms ist, desto weiter entfernt sich die reale Leistung dieser Workstation von ihrer Maximalleistung.
Der CPI-Wert (cycles per instruction) eines Prozessors gibt an, wieviele Taktzyklen er für die Abarbeitung einer Instruktion benötigt. Aufgrund der unterschiedlichen Anzahl von Zyklen, die die verschiedenen Instruktionen eines Instruktionssatzes benötigen, berrechnet man einen CPI-Mittelwert.
Dieser ist umso aussagekräftiger, je genauer man die Häufigkeiten des Auftretens der einzelnen Instruktionen in speziellen Anwendungsgebieten bei der Mittelbildung durch entsprechende Gewichtung berücksichtigt, von der Art des Instruktionssatzes abhängig. Komplexere Instruktionen benötigen meist mehr Zeit zur Ausführung und führen damit zu einer Vergrößerung des CPI-Werts, ermöglichen aber auch eine Senkung der erforderlichen Gesamtanzahl der Instruktionen eines Programms.
Nimmt man die Anzahl N (oft als Pfadlänge bezeichnet) der abgearbeiteten Instruktionen als Maß für die verrichtete Arbeit, so erhält man in Instruktionen pro Zeiteinheit gemessen, die mittlere Leistung
Diese Instruktionenleistung wird sowohl bei der Konzeption neuer Rechnerarchichtekturen als auch bei der praktischen Leistungsbeurteilung verwendet. Falls sich P, auf die pro Mikrosekunde ausführbaren Instruktionen bezieht, ist die Einheit der Instruktionenleistung Mips (million instructions per second) oder bei einer Nanosekunde als Bezugszeitraum Bips (billion instructions per second, also 109 Instruktionen pro Sekunde).
Bessere (höhere) Instruktionenleistung kann unter Umständen zu einer schlechteren (längeren) Ausführungszeit führen und umgekehrt. Bei der Verwendung der Instruktionenleistung zur vergleichenden Hardware- bzw. Software-bewertung ist daher größte Vorsicht angebracht, wie auch das folgende Beispiel zeigt:
Beispiel (Optimierender Compiler):
Die folgenden Daten stellen die empirisch ermittelten Häufigkeiten der vom GNU-C-Compiler generierten Instruktionen und die zugehörigen Taktzyklen dar.
Operation: arithmetisch-logische Operationen
Häufigkeit: 43%
benötigte Taktzyklen: 1
Operation: Verzweigungen
Häufigkeit: 24%
benötigte Taktzyklen: 2
Operation: Ladeoperationen
Häufigkeit: 21%
benötigte Taktzyklen: 2
Operation: Speicheroperationen
Häufigkeit: 12%
benötigte Taktzyklen: 2
Der zugehörige mittlere CPI-Wert beträgt 1.57. Nimmt man die Taktfrequenz des Prozessors mit fc = 50 MHz an, was einer Zykluszeit von Tc = 20 ns entspricht, so ist die Instruktionenleistung
Die CPU-Zeit, die ein Programm mit dieser Befehlszusammensetzung benötigt, ergibt sich zu
wobei Wi die Anzahl der benötigten Instruktionen bezeichnet. Angenommen, ein besser optimierender Compiler kann die Anzahl der arithmetisch-logischen Operationen halbieren, dann steigt der mittlere CPI-Wert auf
und die Instruktionenleistung für den optimierten Code sinkt auf
Die Ausführungszeit wird aber durch die Optimierung dieses Compilers kürzer, obwohl die Instruktionenleistung des Prozessors niedriger wurde:
wobei die Anzahl der nach der Optimierung benötigten Instruktionen bezeichnet.
Um eine grobe Bewertung von Vektorprozessoren und deren Vergleich mit skalaren Prozessoren zu ermöglichen, betrachtet man arithmetische Pipelines.
Wichtige Kenngrößen sind hier die Ergebnisrate r(n) , sowie die asymptotische Ergebnisrate, sowie die Vektorlänge n1/2.
Die Ergebnisrate r(n) ist die von der Vektorlänge n abhängige Leistung einer arithmetischen Pipeline, also die Anzahl der Resultate, die von der Pipeline pro Zeiteinheit (für n >= s) geliefert werden:
Der Grenzwert der Ergebnisrate ist die sogenannte asymptotische Ergebnisrate:
Allein aus der Taktfrequenz fc eines Vektorrechners und der Maximalanzahl von Gleitpunktoperationen pro Ergebnis der Pipeline läßt sich also die theoretische Maximalleistung einer arithmetischen Pipeline errechnen.
Beispiel (Asymptotische Ergebnisrate) Der Vektorrechner Fujitsu VP100 hat die Taktfrequenz 312.5 MHz. Daher ist seine asymptotische Ergebnisrate
Für die Vektoroperation " Vektor Add and Multiply Scalar", die pro Takt zwei Gleitpunktoperationen beenden kann, entspricht das einer Maximalleistung von 625 Mflop/s.
Für Vektorlänge nl/2 erreicht man die halbe asymptotische Ergebnisrate:
Dieser Wert liefert einen Anhaltspunkt dafür, in welcher Größenordnung die Vektorlänge n liegen muß, um die Vektorisierung sinnvoll nutzen zu können.
Dem Vergleich zwischen Vektorprozessoren und skalaren Prozessoren dient der Cross-over-point nv, der jene Vektorlänge angibt, ab der die Vektorarithmetik "schneller" ist als die skalare Arithmetik. Dazu vergleicht man die Druchführung von n skalaren Operationen mit einer entsprechenden Vektoroperation (realisiert durch eine Pipeline mit s Stufen), die auf Vektoren der Länge n wirkt. Für die Zeitdauer T1(n) von n skalar durchgeführten Operationen gilt
In der Realität benötigt eine einzelne skalare Operation weniger Zeit als die Durchlaufzeit von skalaren Operanden durch die Pipeline, da die Pipelinestufen für die einzelnen Teiloperationen meist synchronisiert arbeiten.
Der Speicher, also die ganze Speicherhierarchie eines Cornputers, hat großen Einfluß auf die Leistung. Wenn es z.B. durch ungünstige Programmierung zu zahlreichen Fehlzugriffen auf die "raschen" Ebenen der Speicherhierarchie kommt, ist ein starker Leistungseinbruch zu erwarten.
Transferrate:
Die Transferrate, auch Bandbreite genannt, gibt an, welche Informationsmenge pro Zeiteinheit zwischen dem Prozessor und dem Speicher übertragen werden kann.
Zugriffszeit:
Als mittlere Speicherzugriffszeit wird der statistische Erwartungswert der Zeitdauer des Zugriffs auf Daten einer Speicherhierarchie bezeichnet. Nicht immer ist der Zugriff auf eine höhere Ebene (mit kürzeren Zugriffszeiten) erfolgreich -mit einer gewissen Wahrscheinlichkeit treten auch Fehlzugriffe auf, die einen Zugriff auf eine tiefere Ebene erforderlich machen und damit eine Verzögerung des Speicherzugriffs bewirken.
In diesem Fall werden nicht durch irgendwelche Rechnungen Kennzahlen des Computersystems ermittelt, sondern auf Grund von Experimenten und Messungen an konkreten Systemen oder abstrakten Modellen Aussagen getroffen.
Zum Vergleich verschiedener Algorithmen zur Lösung eines bestimten Problems auf ein und demselben Rechner wird die Ausführungszeit herangezogen. Die Ausführungszeit T wird (im Gegensatz zur rechnerischen Ermittlung der CPU-Leistung in der analytischen Leistungsbewertung) gemessen . Die zu erledigende Arbeitsmenge wird durch dW=1 angenommen, da immer nur ein vollständig bearbeitetes Problem betrachtet wird.
T : = tend - tstart
Man wählt diese Art der Bewertung, wenn man entscheidet, durch welchen Algorithmus bzw. welches Programm ein gegebenes Problem am schnellsten gelöst werden kann . (speziell für den Anwender interessant)
Hier wird ebenfalls nicht durchrechnen sondern durch ein Experiment die ausgeführte Anzahl WI an Instruktionen in einem bestimmten Zeitraum T ermittelt, für die die Einheit Mips (Millionen Instruktionen pro Sekunde bzw. Instruktionen pro Mikrosekunde) verwendet wird:
Je größer die Leistung einer Maschine, desto mehr Instruktionen können in der Zeitspanne ausgeführt werden und desto höher der Mips-Wert (Vorsicht: Mips-Angaben von Maschinen mit verschiedenen Instruktionssätzen sind nicht vergleichbar.)
Relative Leistungskennzahlen:
Dabei wird die Leistung eines zu untersuchenden Computersystems im Verhältnis zu einem festen Bezugscomputer bewertet.
Wenn man die in einem Zeitraum T verrichtete Arbeit durch die Anzahl Wf der in T ausgeführten Gleitpunktopterationen charakterisiert, so erhält man die Gleitpunktleistlung (floating point performance)
Diesen empirischen Wert gewinnt man durch Messungen an laufenden Programmen. Zahlenangaben erfolgen wie bei der analytischen Leistungsbewertung in Mflop/s, Gflop/s oder Tflop/s.
Die empirische Ermitlung der Gleitpunktleistung eines Computersystems kann nur mit Hilfe konkreter Algorithmen (in Form von Programmen) erfolgen. Jedoch muß ein Programm mit größerer Gleitpunktleistung nicht unbedingt eine kürzere Gesamtzeit haben.
Zur Bewertung verschiedener Computersysteme mit ein und demselben Programm (Benchmark-Bewertung) ist die empirische Gleitpunktleistung ebenfalls geeignet und wird auch häufig verwendet (z.B. LINPACK-Benchmark, SPECfp92).
Empirischer Wirkungsgrad
Setzt man eine empirisch ermittelte Gleitpunktleistung in Relation zur Maximalleistung des verwendeten Computers, so erhält man Aufschluß darüber, in welchem Ausmaß das untersuchte Programm und der involvierte Compiler imstande sind, die potentielle Leistungsfähigkeit des Computers zu nutzen. Der so erhaltene empirische Wirkungsgrad liegt, nicht zuletzt bedingt durch die starken Vereinfachungen bei der Berechnung der Maximalleistung, meist deutlich unter 100 %.
Beispiel (LINPACK-Benchmark)
Beim LINPACK-Benchmark ergeben sich z.B. die in der Aufstellung unten zusammengestellten Leistungen und empirischen Wirkungsgrade. Die Werte für n = 100 Gleichungen sind auf Grund von Zeitmessungen mit den unveränderten "Originalprogrammen" LINPACK/sgefa und LINPACK/sgesl ermittelt worden. Für n = 1000 wurden äquivalente Programme entwickelt, die eine möglichst gute Ausnutzung der Ressourcen ermöglichen. Wie man sieht, führt eine derartige (rnaschinenabhängige) Programmoptimierung zu erheblich besseren Wirkungsgraden.
Die Benchmarkangaben findet man hier in folgender Reihenfolge:
Computer (Max.Leistg. Mflop/s) - Linpack Benchmark n=100 Mflop/s ( %) / n=1000 Mflop/s ( %)
NEC SX - 3 / 14R (6400) ........- 368 (6%) ............................................
/ 5199 (81%)
CRAY C90 (952) ....................- 387 (41%) .........................................../
902 (95%)
IBM RS /6000-590 (264).........- 130 (49%) .........................................../ 236
(89%)
HP 9000 /735 (198) ................- 41 (21%)............................................../
120 (61%)
IBM RS/6000-580 (125)..........- 38 (30%)............................................../
104 (83%)
Bei den analytischen Leistungskennzahlen war nur die Taktfrequenz fc eines Vektorprozessors ausschlaggebend für dessen Ergebnisrate r.
In der Praxis haben jedoch neben der Taktfrequenz auch noch andere Faktoren einen wesentlichen Einfluß auf die Leistung eines Vektorprozessors: