- Benchmark (EDV)
-
Benchmarkings sind genormte Mess- und Bewertungsverfahren, mit deren Hilfe man die Leistung von EDV-Systemen oder Systemklassen ermitteln und diese nach bestimmten Kriterien miteinander vergleichen kann. Bekannt sind die Benchmark-Tests für die Hardware-Leistung bei Computersystemen. Benchmarks werden aber ebenfalls verwendet, um die Leistung von Programmiersprachen, mithin Interpretern sowie Compilern und deren Laufzeitsystemen auf derselben Hardware zu vergleichen. Dann spricht man von einem Software-Benchmark. Ein Benchmark im allgemeinen ist immer ein Programm, das ein (oft aus der Mathematik stammendes, aufwendiges) Problem löst. Beispiele sind das Lösen linearer Gleichungssysteme (Linpack) oder die Berechnung von Mersenne-Primzahlen.
Inhaltsverzeichnis
Geschichte
- 70er-Jahre: Messung in Mips und Flops
- Frühe 80er-Jahre: Messung in Dhrystones und Whetstones
- Seit 1989: Anwendungs-Benchmark-Tests der Standard Performance Evaluation Corporation (SPEC). Es handelt sich um eine Serie von Anwendungen (z. B. neuronale Netze, finite Elemente, Videoenkodierung usw.), die in Integer-bezogene (SpecInt) und Floatingpoint-bezogene (SpecFp)-Programme eingeteilt werden. Entsprechend bildet das Endergebnis der Tests immer zwei Zahlen, die die Leistung bezogen auf eine Referenzmaschine (Benchmark) angeben. Bei Spec2000 ist dies z. B. eine Sun UltraSparcIIi/256MB.
Hardware-Benchmarktests schließen traditionell nur CPU- und Speicherzugriffsleistung ein. Grafikkarte, Massenspeicher usw. werden nicht getestet.
Die SPEC-Aktualisierung erfolgte im August 2006: SPECcpu 2006. Eine neue Version ist in Plannung. Hierfür wurde 2008 ein "SPEC CPU Benchmark Search Program" gestartet.
Die bekanntesten Benchmarks sind:
In letzter Zeit hat sich der Fokus von Benchmarks erweitert. Insbesondere die Einbeziehung von Energieverbrauch als Metrik hat sich etabliert und findet in diversen SPEC (z.B. SPECpower) und TPC Benchmarks Anwendung.
Daneben wird sich damit auseinandergesetzt, wie man gegenwärtige Trends in der IT mit Hilfe von Benchmarks erfassen kann. Beispielsweise gibt es momentan mehrere Projekte, die sich mit Cloud Benchmarking oder mit dem Benchmarken von Peer-to-Peer Systemen beschäftigen.
Beispiel für Hardware-Benchmarks
Tabelle einiger Dhrystone-Werte als Beispiel für Hardware-Benchmarks:
Typ Mikroprozessor Betriebssystem Compiler Dhrystones/sec., no reg Dhrystones/sec., reg IBM PC/XT 8088-4.77Mhz PC/IX cc 257 287 VAX 11/780 UNIX 5.2 cc 1.515 1.562 Compaq PIII/450 NT4 TCC 3.1/286/287 71.428 Compaq PIII/450 NT4 wcc 10.5/-otexan-fp5 250.000 FMS AthlonXP1800 SUSE 8.2 gcc 2.016.129 FMS AthlonXP1800 SUSE 8.2 gcc -O3 5.050.505 Software-Benchmarks
Software-Benchmarks dienen dazu, die Leistungfähigkeit unterschiedlicher Programmiersysteme bezüglich der Ausführungsgeschwindigkeit zu vergleichen. Bei der Erstellung eines Software-Benchmarks wird derselbe Algorithmus in verschiedenen Programmiersprachen implementiert und die Ablaufzeiten der Programme untereinander verglichen. Dabei ist es erforderlich, Experten für die verschiedenen Programmiersprachen zusammenzubringen, die den Algorithmus möglichst optimal für die jeweilige Programmiersprache umsetzen zu können. Ein klassisches Beispiel für solche Benchmarks ist die Ackermann-Funktion.
Manipulationen
Ist die verwendete Benchmarksoftware bekannt, bietet das einen Spielraum für Manipulationen. In der Praxis können Gerätetreiber, Compiler oder auch Befehlssätze derart optimiert sein, dass gängige Benchmarks besonders schnell ablaufen. [1]
Siehe auch
Einzelnachweise
Weblinks
- The Computer Language Benchmarks Game (englisch)
- SPEC CPU Benchmark Search Program (englisch)
Wikimedia Foundation.