Wie funktioniert RGBench eigentlich?


Anders als die meisten anderen Benchmarkprogramme wie MacBench oder SysMark (c't) konzentriert RGBench sich darauf die reine Rechenleistung eines Computers zu messen. Dabei sollen Komponenten, wie Bildschirmausgabe und Festplattenzugriffe möglichst keine Rolle spielen. Dies ist typischerweise die Situation, die man bei wissenschaftlichen Number-Crunching-Anwendungen vorfindet. Solche Anwendungen sind meist selbstgeschriebene Programme, die ein wissenschaftliches Problem untersuchen, bzw. untersuchen helfen und dabei Stunden oder Tage laufen können. Da im Vergleich zum Prozessor und selbst zum Hauptspeicherzugriff Ausgaben auf die Bildschirm oder Zugriffe auf die Festplatte langsam sind, beschränkt man diese üblicherweise bei solchen Anwendungen auf das absolut Notwendige. Im Gegensatz dazu spielen Festplatten- und Bildschirmzugriffe bei "Standardanwendungen", auf den die oben genannten Benchmarks beruhen, eine vergleichsweise große Rolle.

RGBench testet also im wesentlichen die Geschwindigkeit des Prozessors und des Cache-Hauptspeichers-Systems. Da bei wissenschaftlichen Anwendung häufig die Datenmengen deutlich größer sind als alle verfügbaren Caches wird bei RGBench jedes Programm mit drei verschieden großen Datenmengen untersucht, wobei lediglich einige Highend-Workstations eine Cache haben, der der maximalen Datenmenge entspricht.

Die Programme von RGBench sind alle aus dem Bereich entnommen, in dem ich selbst gearbeite als ich dieses Benchmark aufstellte, d.h. Simulation von Flüssigkeiten, bzw. der Soft Matter. Zwei der Programme sind dabei eindeutig FPU-lastig, das andere beschränkt im Wesentlichen auf Integerarithmetik.

Die Algorithmen der einzelnen Programme sind sicher nicht optimal implementiert worden. Alle vier lasen sich mit Sicherheit optimieren, so dass die Ausführungsgeschwindigkeit steigt. Allerdings hängt der Erfolg solcher Optimierung stark vom eingesetzten Prozessor und Compiler ab. Mit anderen Worten, was auf dem einem Prozessor-Compiler-Gespann ein Gewinn von mehreren 10 Prozent bringen kann, beschleunigt auf einem anderen vielleicht nur um 5 % oder gar nicht. Ich habe daher versucht die Programme möglichst einfach zu halten und keine prozessorspezifischen Optimierungen einzubauen. (Entwickelt wurden alle Programme auf einer SGI Indy, die daher vielleicht etwas zu gut wegkommen könnte).

Die einzelnen Programme von RGBench sind:

  1. MDbench (abk. MD) ist eine kleine Molekular-Dynamik-Simulation einer Lennard-Jones-Flüssigkeit. Obwohl eine solche Simulation wissenschaftlich eigentlich nicht mehr von Interesse ist, kann sie jedoch als Prototyp für komplexere MD-Simulationen gelten.
  2. MCbench (abk. MC) ist äquivalente Programm zu MDbench aber als Monte-Carlo-Simulation realisiert.
  3. MCIbench(abk. MCI) ist eine Monte-Carlo-Simulation eines Gittermodells einer Flüssigkeit, bei der nur Nächstenachbarwechselwirkungen auftreten. Dabei ist nur die Wechselwirkung zwischen gleichartigen Teilchen attraktiv.

Der Integer-Score ist nun identisch mit dem MCI-Score. Die Ergebnisse von MD und MC bilden den FPU-Score. Der Total-Score ergibt sich aus 60 % FPU-Score und 40 % Int-Score.

Zur Messung des Einfluss des Caches wird jedes Programm mit 512 kByte, 2 MByte und 8 MByte Daten durchgeführt. Es ergeben sich dadurch Einzelergebnisse mit 512 kByte, 2 MByte und 8 MByte Daten, gemittelt über alle Einzelprogramme und Einzelergebnisse für MD, MC und MCI, gemittelt jeweils über aller drei Datenmengen.

Oft findet man bei Benchmarks keine Angabe der verwendeten Rechnerumgebung (Cachegröße, Busgeschwindigkeit, Art des Cacheanbindung etc.). Diese können jedoch einen erheblichen Einfluss auf die Rechnergeschwindigkeit haben. Zum Beispiel wurde der PowerPC 603e durch Hinzufügen eines direkten L2-Cache-Interfaces (PowerPC 750) von etwa Pentium-Geschwindigkeit auf mehr als Pentium II-Geschwindigkeit beschleunigt. Die Rechnerumgebung beeinflusst also die Ergebnisse hier und sollte in deren Interpretation einbezogen werden. Ich habe daher diese Daten (soweit mir bekannt) in einer zusätzlichen Tabelle angegeben.

Ich würde mich freuen, wenn Besitzer anderer Macs oder Leute mit Zugang zu anderen UNIX-Computer sich an diesem Benchmark beteiligen würden. Die Programme dazu können hier heruntergeladen werden. Ich bitte dann die Ergebnisse an mich zu schicken . Ich werde sie dann auf diesen Seiten veröffentlichen (soweit sie nicht redundant sind).