Die Benchmarks des Spec-Konsortiums Bei der Leistungsbewertung von Systemen ist Durchsatz wichtig

28.05.1993

*Dr. Reinhold Weicker ist Autor des oft verwendeten Dhrystone- Benchmarks; er vertritt die Siemens-Nixdorf Informationssysteme AG im Open Systems Steering Committee von Spec.

Bezueglich Benchmarks hat es sich zumindest fuer Unix-Systeme herumgesprochen: MIPS-Angaben sind out, Spec-Bewertungen hingegen in. Die Leistungsangaben der Standard Performance Evaluation Cooperation haben sich mittlerweile in der Industrie durchgesetzt. Dr. Reinhold

Weicker* geht in seinem Artikel auf die gueltigen vier Spec- Testverfahren und ihre Umsetzung auf Multiprozessor-Systemen ein.

Die Definition, was als MIPS bezeichnet wird, ist nicht einheitlich. Man findet MIPS im woertlichen Sinn (Million Instructions Per Second), als VAX-MIPS (Relativfaktor zur VAX 11/780) sowie als unspezifizierte MIPS-Angaben, die nur noch als "Marketing Instructions Per Second" interpretiert werden koennen.

Werden VAX-MIPS auf der Basis des Dhrystone-Benchmarks berechnet, wie in der Unix-Welt ueblich, so ist auch dies eine zu schmale Grundlage: Der Dhrystone-Benchmark ist so klein, dass er bei heutigen Mikroprozessoren vollstaendig in den On-Chip-Cache passt, das Speichersystem wird also kaum getestet. Compiler-Entwickler koennen leicht spezielle Optimierungen fuer Dhrystone einbauen, die anderen Programmen in einem viel geringeren Mass zugute kommen. Dies gilt vor allem, wenn die eigentlich ueberholte Version 1.1 statt Version 2 zugrunde gelegt wird.

Der Dhrystone-Test

prueft den Speicher nicht

Die CPU-Benchmarks der Spec bilden demgegenueber eine wesentlich breitere Basis fuer den CPU-Leistungs-Vergleich. Die Benchmark- Suite Cint92 enthaelt sechs Integer-Programme mit zusammen etwa 85 000 Zeilen Quellcode, die Suite CFP92 beinhaltet 14 Programme mit zirka 44 000 Zeilen Software.

Fuer alle neueren Systeme im Unix-Bereich werden ueblicherweise die Durchschnittswerte Specint92 (integer) beziehungsweise Specfp92 (floating pointzitiert bekanntgegeben.

Die alte Benchmark-Suite von 1989 mit dem frueher beliebten Durchschnittswert Specmark89 wurde von Spec zurueckgezogen. Sie enthielt einen Ausreisser, der durch eine bestimmte - wenn auch legale - Optimierung ueberproportional beschleunigt wurde und so den Durchschnitt verzerrte. Spec-Ergebnisse werden regelmaessig im vierteljaehrlich erscheinenden "Spec Newsletter" veroeffentlicht, unter genauer Angabe aller relevanten Daten (Hardware, Compiler, Optimierungsparameter).

Der Hersteller, der Messergebnisse im Spec Newsletter veroeffentlicht, verbuergt sich dafuer, dass bei Verwendung der gleichen Hardware und Software und mit den gleichen Optimierungsparametern die Ergebnisse reproduzierbar sind.

Die Werte Specint92 und Specfp92 haben eine eingaengige Interpretation, es sind Relativleistungen zur VAX 11/780. Jedoch sind sie fuer Multiprozessor-Systeme nicht geeignet, denn die Spec- Benchmarks sind

sequentielle Programme, die im Normalfall nur auf einem Prozessor ablaufen. Es ist auch nicht korrekt, einfach die Ein-Prozessor- Werte mit der Zahl der CPUs zu multiplizieren: Je nach Cache-, Speicher- und Bus-System kann es zu Engpaessen kommen, der Multiprozessor-Faktor wird auch bei paralleler Ausfuehrung desselben Programms im allgemeinen unter der Idealzahl (Anzahl der Prozessoren) liegen.

Deshalb hat Spec fuer CPU-Leistungsmessungen bei Multiprozessoren ein eigenes Messverfahren definiert, die "Homogenuous Capacity Method" (Durchsatz-Messmethode): Man laesst mehrere Kopien des jeweiligen Benchmarks parallel laufen und misst die Zeit vom Start der ersten bis zum Ende der letzten Kopie.

Natuerlich wird man die Anzahl der Kopien mindestens so gross waehlen wie die Anzahl der Prozessoren. Es kann durch Cache-Effekte (Code, der schon in den Cache geladen ist, kann von mehreren Programmkopien verwendet werden) vorteilhaft sein, mehrere Kopien zu verwenden, Spec laesst darin freie Wahl. Das Ergebnis dieser Durchsatzmessungen wird in "Jobs per reference time" angegeben.

Eine Specrate von 9570 fuer den Benchmark 022.li (Lisp- Interpreter) bedeutet zum Beispiel: Die Maschine kann pro Woche 9570 li-Jobs ausfuehren. Genau genommen sind es "normalisierte" li- Jobs; weil die

Benchmarks schon auf der SpecReferenzmaschine (VAX11/ 780)

unterschiedliche Ausfuehrungszeiten haben, wird die Laufzeit mit einem Normalisierungsfaktor multipliziert, so dass alle Benchmarks das gleiche Gewicht haben.

Die Durchschnittswerte ueber alle Integer- beziehungsweise alle Floating-Point-Benchmarks werden als Specratenint92 respektive als Specratenfp92 bezeichnet. Anders als die Mittelwerte fuer Ein- Prozessor-Maschinen, die im allgemeinen im Zehnerbereich angesiedelt sind, liegen die Werte hier im Tausenderbereich. Zum Beispiel ist 8808 der hoechste im Newsletter bisher veroeffentlichte Wert fuer Specratenint92, den das Siemens-Nixdorf-RM600-25-Modell mit 16 Prozessoren erzielte (vgl. hierzu aber CW Nr. 21 vom 21. Mai 1993, Seite 23: "Suns Serverprodukte machen . . ." / die Red.).

Die Bezeichnungen der Durchschnittswerte sind aehnlich (Specint92 einerseits, Specratenint92 andererseits, analog Specfp92 und Specratenfp92), die Werte liegen aber in unterschiedlichen Groessenordnungen. Dies kann beim fluechtigen Lesen zu Verwirrung fuehren. Das Spec-Konsortium wollte absichtlich die zwei Messmethoden Geschwindigkeit und Durchsatz voneinander unterscheiden und dies auch in der aeusseren Form (Groessenordnung der Ergebnisse, Darstellung der Balkendiagramme im Newsletter) zum Ausdruck bringen.

Eine Tasse Tee zeigt

den Unterschied der Werte

In einem einfuehrenden Artikel in einem Spec Newsletter wurde die Situation mit dem Teekochen verglichen: Wenn man nur eine Tasse Tee kochen und sie moeglichst schnell haben will, bringt ein Herd mit mehreren Platten keine Vorteile. Wohl aber merkt man den Unterschied, wenn man eine grosse Menge heisses Wasser braucht und dann mehrere Kochplatten und Toepfe nutzen kann.

Im Gegensatz zum Teekochen wird es allerdings bei Computern die seltene Ausnahme sein, dass man nur einen Topf (also eine CPU) brauchen kann: Selbst wenn nur ein Benutzer mit dem System arbeitet, entstehen bei heutigen Anwendungen meist mehrere Prozesse, die sich sinnvoll auf mehrere CPUs verteilen lassen.

Man muss also aufpassen, ob man es mit Spec-Leistungszahlen zu tun hat, die sich auf die Geschwindigkeit (Specint92, Specfp92) oder die sich auf den Durchsatz (Specratenint92, Specratenfp92) beziehen.

Nur der Spec Newsletter

enthaelt ungeschoente Daten

Dabei sind die Durchsatzzahlen die allgemeineren: Den Durchsatz kann man auch fuer Ein-Prozessor-Systeme messen, waehrend man, wie oben gesagt, Geschwindigkeitsangaben nicht einfach mit der Prozessorzahl multiplizieren kann. Es bleibt das Problem, dass man manchmal Mehrprozessor-Systeme, fuer die nur Durchsatzzahlen veroeffentlicht sind, mit Ein-Prozessor-Systemen vergleichen moechte, fuer die der Hersteller nur Geschwindigkeitszahlen veroeffentlicht hat.

Dann kann man sich die Tatsache zunutze machen, dass im Fall einer Ein-Prozessor-Maschine die Geschwindigkeitsmessung als Spezialfall der Durchsatzmessung interpretiert werden kann: eine Kopie des Programms, eine CPU, Berechnung der Jobs pro Woche nach der allgemeinen, von Spec angegebenen Formel. Fuer alle, die es genau wissen wollen, sei eine hilfreiche Lektuere genannt: Im Artikel "CINT92 and CFP92 Homogenuous Capacity Method Offers Fair Measure of Processing Capacity" beschreibt Alexander Carlton von HewlettPackard die Vorgehensweise. Erschienen ist der Aufsatz im Spec Newsletter Band 4, Nr. 2, vom Juni 1992.

Setzt man die Zahlenwerte (Normalisierungsfaktor zur VAX 11/780, Anzahl der Kopien, Anzahl der Sekunden pro Woche) in die Formel ein, so ergibt sich

Specratenint92 ; Specint92 * 23.72

Specratenfp92 ; Specfp92 * 23.72.

Ob bei einer echten Durchsatzmessung, bei der man auch mehrere Jobs parallel laufen lassen kann, ein hoeherer Wert erzielt wird, ist von System zu System verschieden; der Unterschied zu der Ersatzberechnung mit Hilfe der obigen Formel wird aber nur gering sein.

Gleich, ob es um Geschwindigkeit oder Durchsatz geht: Spec raet dringend dazu, nicht nur auf die populaeren Durchschnittswerte zu sehen. Fachleute wissen, dass die relative Leistung von einem Benchmark zum anderen erheblich schwanken kann. Ausserdem ist es wichtig, die genauen Angaben im Spec Newsletter zu beachten, vor allem zu den verwendeten Optimierungsoptionen fuer die Compiler. Sie koennen das Ergebnis erheblich beeinflussen, Unterschiede in den Spec-Werten liegen nicht nur an unterschiedlicher Hardwaregeschwindigkeit.

Manche Optimierungen setzen eine genaue Kenntnis des Benchmark- Tests voraus, und es ist fraglich, ob sie der normalen Praxis eines Anwenders entsprechen. Auch hier ist es also wichtig, das Kleingedruckte zu lesen.