1. Benchmarks

1.1 Definition des 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.

 

1.2 Benchmark –Typen


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.

 

 

Kay Timmermann

 

.