Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

30.09.1988 - 

Testergebnisse beziehen sich niemals auf Gesamtsystem:

Benchmarks sind nur Orientierungshilfen

Harry Timm ist Software-Ingenieur bei der Sequent Computer Systeme GmbH, München.

Bei einer Kaufentscheidung können Benchmarkergebnisse erste Anhaltspunkte bieten. Aber die Werte liefern immer nur Aussagen über die Leistungsfähigkeit einer einzelnen Systemkomponente. Unbedingt sollte deshalb jeder Anwender vor dem letzten. Schritt seine Applikationen auf dem Zielrechner laufen lassen, meint Harry Timm.

Die heute angebotene Computerhardware wird auch für Fachleute immer weniger überschaubar. Ein Ziel bei einem Neukauf ist es, möglichst viel Computerleistung zu einem günstigen Preis zu bekommen. Ein Hilfsmittel für die Entscheidungsfindung sind sogenannte Benchmarks. Ein Benchmark ist ein Programm beziehungsweise eine Programmsammlung, welche die Leistungsfähigkeit einer Hardware testen soll. Anhand der Ergebnisse eines Benchmarks kann man eine Aussage darüber machen, wie schnell die spätere Applikation laufen wird. In letzter Zeit wird der Begriff Benchmark auch für den Vergleich von Softwareprodukten wie Datenbanken verwendet.

Dieser Artikel gibt einen Überblick über einige "Standard-Benchmarks" und Hinweise, was Benchmarks nicht leisten. Ziel vieler Tests ist es, die Rechenleistung einer CPU zu bestimmen. Aufgrund der immer wieder gleichen Aufgabe haben sich hier einige Industrie-Standard-Tests etabliert.

Drystone-Test mißt die Integer-Performance

Der Drystone-Benchmark mißt die Integer-Performance eines Computers. Die Geschwindigkeit wird angegeben in "Drystones pro Sekunde". Je höher dieser Wert ist, desto schneller ist die CPU.

Der Drystone-Benchmark ist in der Sprache "C" geschrieben und besteht aus 309 Zeilen Code. Das compilierte und ablauffähige Programm hat einen Umfang von ungefähr 45 Kilobyte. Damit kann das Programm komplett in den Hauptspeicher beziehungsweise in einen vorhandenen Cache-Speicher geladen werden.

Der Drystone-Test ist ein Indikator für Integer-Performance, aber auch für die Abarbeitung von Funktionsaufrufen und Memorycopies. Die verwendeten Instruktionen sollen ein typisches Anwenderprogramm repräsentieren. Da das ablauffähige Programm physikalisch klein ist, spielt die Größe des vorhandenen Hauptspeichers keine Rolle.

Dies kann bei einem großen Anwenderprogramm jedoch eine entscheidende Rolle spielen. Wenn ein Programm größer ist als das zur Verfügung stehende Memory, müssen Daten (Programmteile) auf die Platte zwischengespeichert werden. Das Schreiben der Daten und das Zurücklesen von gesichteten Daten kostet im Vergleich zur Prozessorgeschwindigkeit sehr viel Zeit. In dieser Zeit muß der Prozessor warten, und die gesamte Systemgeschwindigkeit ist von der Geschwindigkeit des I/O-Subsystems abhängig.

Multiprozessor-Systeme bringen eine zusätzliche Verbesserung von Benchmarkwerten. Hier kann der Benchmark auf allen verfügbaren Prozessoren gleichzeitig laufen, und die Leistung der einzelnen Prozessoren vervielfältigt sich. Für den Anwender sind Multiprozessorsysteme ein deutlicher Vorteil, denn er kann sein Einstiegssystem mit wenigen Prozessoren ausstatten und bei zunehmendem Leistungsbedarf weitere Prozessoren nachrüsten.

Der Whetstone-Test ist ein Industrie-Standard-Test, der die Floating-Point-Performance (Gleitkomma-Operationen) eines Computers mißt. Die Geschwindigkeit wird angegeben in "Millionen Whetstone-Instruktionen pro Sekunde" oder "Mwhets". Je höher diese Zahl, desto schneller ist das System. Der Test stützt sich auf die vorhandenen mathematischen Bibliotheken des Systems. Deshalb ist dieser Test ein guter Maßstab für Fortran-Applikationen, die Sinus, Cosinus und verwandte Funktionen verwenden.

Der Test selber besteht aus 211 Zeilen Fortrancode. Mit einem Umfang von ungefähr 38 KB ist der Test unabhängig von der vorhandenen Memorygröße. Die Ergebnisse sind abhängig von einem vorhandenen Floating-Point-Accelerator, einem speziellen Chipsatz, der Gleitkomma-Operationen besonders schnell abarbeiten kann. Wenn ein solcher Chipsatz vorhanden ist, wird er mitverwendet. Im weiteren werden die Ergebnisse unterteilt in "Single Precision" (einfache Genauigkeit) und "Double Precision" (doppelte Genauigkeit).

Test der CPU-Leistung ist lediglich ein Teilgebiet

Der MFLOP-Test mißt die Prozessor-Performance in "Millionen Floating-Point-Operationen pro Sekunde" (MFLOPS). Der Benchmark ist ein guter Test für das Laufzeitverhalten von Fortranprogrammen, die Array-basierende Floating-Arithmetic mit einfacher Genauigkeit enthalten.

Dieser Test besteht aus vierzehn kleineren Tests, die viele einfache Operationen wie Subtraktionen, Additionen und Multiplikationen enthalten. Da die Größe der ablauffähigen Programme zirka 83 KB beträgt, haben die Konfiguration von I/O-Subsystem und Memory keinen oder nur geringen Effekt auf die Ergebnisse.

Man beachte, daß auch ein LINPACK-Benchmark existiert, der ebenfalls die Maßangabe MFLOPS benutzt. Diese beiden Benchmarks sollte man nicht verwechseln.

Alle diese beschriebenen Benchmarks testen die CPU-Leistung des Computers. Ein System besteht aber aus wesentlich mehr Komponenten als nur der Recheneinheit. Es ist deshalb erforderlich, auch andere Einheiten des Systems zu testen. Anhand des folgenden Beispiels aus dem Unix-Bereich werden weitere Einflußfaktoren aufgezeigt.

Nroff ist ein Text-Formatierungsprogramm unter Unix, das sehr häufig für Dokumentenaufbereitung genutzt wird. Für den Test wird die Beschreibung der "Bourne Shell" benutzt. Der Benchmark mißt die Geschwindigkeit, mit der das System Dokumente formatieren kann.

Die Massenspeicher des Systems können die CPU-Performance bremsen, wenn sie zu langsam sind. Das I/O-Subsystem eines Computers besteht aus einem Plattencontroller und den angeschlossenen Platten. Auch hierbei ist die "Breite" des I/O-Busses wichtig. Ein SCSI-Bus kann acht Bit parallel übertragen, ein Multibus überträgt 16 Bit parallel, ein VME-Bus kann 32 Bit parallel übertragen. Ein Maß für die Geschwindigkeit des Plattensubsystems sind die Datentransferraten, der Plattencontroller und die mittlere Positionierzeit für den Schreib/Lesekopf der angeschlossenen Platten.

Bei einer Symmetry werden Plattencontroller verwendet, die direkt auf dem internen 64 Bit breiten Systembus sitzen. Durch zusätzliche Optimierungen der Plattencontroller können bei diesem System Datentransferraten von 24 MBit (3 MB) pro Sekunde erreicht werden.

Bei dem Nroff-Test beginnt das System bei ungefähr zehn Prozessoren, temporäre Files auf die Systemplatte zu schreiben. Dadurch wird die Leistungsfähigkeit des Gesamtsystems von diesen Operationen abhängig und die Zugriffsgeschwindigkeiten der I/O-Systeme (Platten und Plattencontroller) werden wichtig.

Tests finden meist auf getunter Hardware statt

Man sieht an solchen Angaben, daß ein einzelner Benchmark immer nur ein Anhaltspunkt sein kann, um eine Aussage über eine Komponente des Systems zu machen. Diese einzelnen Tests sind durchaus aussagefähig und lassen Vergleiche zwischen unterschiedlichen Herstellern zu. Man sollte aber in jedem Fall die verwendete Hardwarekonfiguration mit angeben. Bei solchen Tests, die durch einen Hardwarehersteller durchgeführt werden, werden die Systeme optimal getuned. Dieses Vorgehen halte ich für legitim, denn die getestete Konfiguration wird genannt und jeder Käufer hat die Möglichkeit für seine Anwendung eine optimale Konfiguration zusammenzustellen.

Werden zum Beispiel Datenbanken eingesetzt, so empfehlen sich mehrere Platten, wenn das Betriebssystem, die Datenbank und eventuelle Indexdateien auf unterschiedliche Platten verteilt werden können. Bei großen Berechnungen, die zum Beispiel mit Matrizen gemacht werden, leistet ein großes physikalisches Memory gute Dienste, damit das System keine Daten auf eine Platte auslagern muß. Das gleiche gilt für eine große Anzahl von Benutzern, da jeder Benutzer seinen eigenen Datenbereich im Rechner bekommt.

Benchmarks geben nur einige Hinweise auf das Laufzeitverhalten des Gesamtsystems. Komponenten, die ich noch nicht betrachtet habe, sind das Betriebssystem und die vorhandenen Compiler. Die Güte des erzeugten Programmcodes kann wiederum das Laufzeitverhalten positiv oder negativ beeinflussen. Bei einer vergleichbaren Hardware (beide Hersteller benutzen eine ähnliche Architektur und die gleiche CPU) können aufgrund des erzeugten Programmcodes der Compiler durchaus noch unterschiedliche Laufzeiten zustande kommen.

Programme sollte man auf der Zielhardware testen

Nach einer ersten Orientierung, die anhand von Benchmarks und natürlich Systempreisen erfolgen kann, empfehle ich jedem Interessenten, seine Programme und Applikationen auf der Zielhardware zu testen. Eine Portierung kann arbeitsaufwendig sein; dieser Schritt sollte jedoch mit der Unterstützung des Hardwareanbieters möglich sein.

Nur wenn auf dem Zielrechner die Zeiten gemessen werden, kann man gültige Aussagen treffen. Noch bieten erst wenige Computerhersteller die Möglichkeit, zusätzliche Rechenleistung in ein bestehendes System zu integrieren. Hier schafft eine Parallelarchitektur Abhilfe: Wenn im späteren Praxiseinsatz die Anzahl der Benutzer steigt, kann durch zusätzliche CPU-Boards Rechenleistung zur Verfügung gestellt werden. Dieses Konzept ist so vielversprechend, daß weitere Hersteller wie Siemens, Apollo Domain, Digital Equipment Parallelrechner entwickeln und anbieten.