1. Benchmarks
Ein Benchmark (englisch: Bezugswert, Maßstab) ist ein Verfahren, das
verwendet wird,
um die Leistung eines Systems beurteilen zu können.Es ermittelt Vergleichswerte,
mit deren Hilfe verschiedene Systeme auf ihre Geschwindigkeit,Zuverlässigkeit
und Stabilität geprüft und untereinander verglichen werden können.
Benchmarkprogramme erzeugen „synthetische“ Lasten auf bestimmte Hardware bzw. Softwarekomponenten (z.B. CPU,Grafikkarte,Webserver) die „typisch“ für gewisse Anwendungsszenarien sind.Die Ergebnisse sind jedoch immer vom verwendeten Benchmarkprogramm abhängig.Ein Vergleich von Ergebnissen unterschiedlicher Benchmarkprogramme ist daher nur bedingt oder gar nicht aussagekräftig.Selbst verschiedene Versionen (oder Patches) eines Benchmarkprogrammes können unterschiedliche Ergebnisse liefern.
Ein Benchmarksprogramm benötigt die genaue Spezifikation des benutzten Benchmarks einschließlich Version und der verwendeten Eingabeparameter.Die genaue Spezifikation der Systemumgebung, d.h. Angaben zum Prozessor,Cache,Speicher,E/A-Geräte,Netzwerkkomponenten etc. und ebenso Angaben zum Betriebssystem,Compiler & Parameterwerte bei der Compilierung.
Es gibt verschieden Benchmarktypen.Zum einen gibt es Benchmarks für Basisoperationen,die
die Geschwindigkeit von Operationen wie Addition und Multiplikation messen.Beispiele
hierfür sind der Dhrystone(~1948),der heute in C implementiert ist und der Whetstone(~1970),der
in FORTRAN geschrieben wurde.Zum anderen gibt es noch "Toy Benchmarks".Das
sind kleine,einfach zu schreibende Programme(10 - 100 Zeilen Code),die leicht
auf allen Rechnern zum Laufen gebracht werden können.Das wären zum
Beispiel Quicksort,das Sieb des Eratosthenes, oder die Türme von Hanoi.
Die wichtigsten Benchmarks sind allerdings reale Programme,die aus vorgegebenen Awendungsgebieten zur Leistungsmessung benutzt werden.Diese Benchmarks sind die komplexeste Form der Benchmarks,allerdings auch die realistischste Form zur Leistungsmessung.Das beste Beispiel hierfür ist SPEC.Diesen Benchmark gibt es für verschiedene Anwendungsgebiete,wie z.B den SPECweb99,der zur Leistunsgmessung von Webservern benutzt wird.
1.3 Anforderungen an einen guten
Benchmark
Ein guter Benchmark sollte die folgendenen Eigenschaften besitzten.Der Benchmark sollte Relevanz besitzen,d.h dass er aussagekräftige Resultate für spezifische Problemklassen liefern muss.Weiterhin muss der Benchmark über Verständlichkeit verfügen,d.h. dass er möglichst einfache Programmstrukturen mit nachvollziehbaren Abläufen besitzen sollte.Ebenso sollte er die Eigenschaft der Skalierbarkeit aufweisen,welche ihm die Fähigkeit der Anwendbarkeit auf eine große Klasse von Systemen und Konfigurationen verleiht.Und als letzte Eigenschaft ist noch die Akzeptanz zu nennen.Diese Eigenschaft besagt,dass die Resultate des Benchmarks möglichst unverfälscht sein müssen und ebenso vom Anwendern akzeptiert werden müssen.
.