[ < ] [ globale Übersicht ] [ Kapitelübersicht ] [ Stichwortsuche ] [ > ]


Kapitel 2.5
Leistungsbewertung


2.5.1.) Leistungsbeschreibung - wann benötige ich sie ?

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:

Zeit=\frac{Arbeit}{Leisung_{effektiv}}=\frac{Arbeit}{Leisung_{effektiv}\times\,Wirkungsgrad}

Die zu verrichtende Arbeitsmenge ist:

Die Maximalleistung ist

Der Wirkungsgrad:

2.5.2.) Was ist Leistung?

Die Leistung (perforrnance) eines informationsverarbeitenden Systems ist vergleichbar mit dem in der Physik definierten Begriff "Leistung P ist Arbeit  \DeltaW pro Zeiteinheit \Deltat ". Von der mittleren Leistung bezüglich eines ganzen Zeitintervalls[t1, t2]

P_{\left[ t_{1,}t_2\right] }=\frac{W(t_2)-W(t_1)}{t_2-t_1}=\frac{\Delta W}{\Delta t}

unterscheidet man die Momentanleistung P(t) zu einem einzigen Zeitpunkt t:

P(t)=\frac{dW}{dt}=\underset{\Delta t\rightarrow 0}\to{\lim }P_{\left[t,t+\Delta t\right] }=\underset{\Delta t\rightarrow 0}\to{\lim}\frac{W(t+\Delta t)-W(t)}{\Delta t}

Computer-Leistungsbewertungen können auf zwei Arten erfolgen:

2.5.3.) Was haben Benchmarks damit zu tun?

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

P=\frac{W_F}T\,\left[ flop/s\right]

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%.

2.5.3.1.) Grundlegendes zu Benchmarks


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.

2.5.3.2.) Einige Benchmarks mit zum Teil verschiedenen Versionen

Im folgenden sind einige Benchmarks mit deren Charakteristik zu finden:



2.5.3.3.) Welche Programme können als Benchmarkprogramm verwendet werden?

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.

2.5.3.4.) Programme und Berichte:

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

2.5.4.) Leistungsfaktor Zeit

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.

2.5.4.1.) Antwortzeit

(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.:

2.5.4.2.) CPU-Zeit

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

2.5.5.) Was ist die analytische Leistungsbewertung?

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.)

2.5.5.1.) Maximale Gleitpunktleistung

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.

P_{\max }=\frac{N_c}{T_c}

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:

P_{\max }=\frac{N_c}{T_c}=\frac{4\,Operationen}{14\,\cdot\,10^{-9}\,Sekunden}=286\,Mflop/s

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.

2.5.5.2.) Instruktionenleistung

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

P_I=\frac{W_I}T=\frac N{T_c\cdot N\cdot CPI}=\frac 1{T_c\cdot CPI}

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

P_I=\frac 1{T_c\cdot CPI}=\frac 1{20\,\cdot \,10^{-9}\,\cdot\,1.57}=31.8\,Mips

Die CPU-Zeit, die ein Programm mit dieser Befehlszusammensetzung benötigt, ergibt sich zu

T=\frac{W_I}{P_I}=\frac{W_I}{31.8\,\cdot \,10^6}=31.4\,\cdot \,10^{-9}\,\cdot\,W_I

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

CPI_{optimiert}=\frac{\left( .43/2\right) \,\cdot \,1\,+\,.24\,\cdot\,2\,+\,.21\,\cdot \,2\,+\,.12\,\cdot \,2}{1-(.43/2)}=1.73

und die Instruktionenleistung für den optimierten Code sinkt auf

\overline{P}_I=\frac 1{T_c\cdot CPI}=\frac 1{20\,\cdot \,10^{-9}\,\cdot\,1.73}=28.9\,Mips

Die Ausführungszeit wird aber durch die Optimierung dieses Compilers kürzer, obwohl die Instruktionenleistung des Prozessors niedriger wurde:

\overline{T}=\frac{\overline{W}_I}{\overline{P}_I}=\frac{\overline{W}_I}{28.9\,\cdot\,10^6}=\frac{0.785\,\cdot \,W_I}{28.9\,\cdot \,10^6}=27.2\,\cdot\,10^{-9}\,\cdot \,W_I

wobei \overline{W}_Idie Anzahl der nach der Optimierung benötigten Instruktionen bezeichnet.

2.5.5.3.) Leistung von Vektorprozessoren

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:

r\left( n\right) =\frac n{T_v\left( n\right) }

Der Grenzwert der Ergebnisrate ist die sogenannte asymptotische Ergebnisrate:

r_\infty =\frac 1{T_c}=f_c

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

r_\infty =f_c=312.5\,\cdot \,10^6\,s^{-1}

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:

r\left( n_{1/2}\right) =\frac{r_\infty }2

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

T_1\left( n\right) \leq s\,T_c\,n

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.

2.5.5.4.) Leistungseinfluß des Speichers

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.

2.5.6.) Was ist die empirische Leistungsbewertung?

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.

2.5.6.1.) Temporale Leistung:

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)

2.5.6.2.) Empirische Instruktionenleistung:

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:

P_I=\frac{W_I}T=\frac{Anzahl\,der\,durchgef\ddotuhrten\,Instruktionen}{ben\ddot otigte\,Zeit}

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.

2.5.6.3.) Empirische Gleitpunktleistung

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)

P_F\left[ flop/s\right]=\frac{W_F}T=\frac{Anzahl\,der\,ausgef\ddotuhrten\,Gleitpunktoperationen}{Zeitdauer\,in\,Sekunden}

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%)

2.5.6.4.) Empirische Leistung von Vektorprozessoren

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:


[ < ] [ globale Übersicht ] [ Kapitelübersicht ] [ Stichwortsuche ] [ > ]