Grundsatztext über Benchmarks und CPU-Vergleiche. Dieses Thema wird wohl immer aktuell bleiben. “MIPS” als Größe ist heute allerdings nicht mehr aktuell.[27.05.1990]
New Year, new Band, new Company….
MIPS, VUPS, KWIPS und MFLOPS…
Was sich anhoert wie “ein Kilo Schronz mit Ranz und Blonk” ist, wie wir alle wissen die km/h Angabe der “Gombutawelt”. Spass beiseite! Wie ihr auch schon hier im Proz.Brett gemerkt habt, dreht sich eine Menge um die magischen Begriffe “MIPS” etc.. Jeder weiss, dass das Million Instructions Per Second heisst, kann aber im Prinzip nicht mehr damit anfangen als Quartett spielen (“Erster im Stechen, ohne Streit!”). Also eigentlich gibts da ja nicht soviel zu berichten, MIPS ist MIPS, is’ doch klar.
Kilometer ist ja auch Kilometer. Denk’sch! MIPS ist eben nicht MIPS!! Es gibt in wirklichkeit drei Arten von MIPS (laut Muhr).
Zum einen die beruechtigten Prospekt-MIPS, die noch unterschieden werden muessen zwischen CPU-Prospekt-MIPS und Computer-Prospekt-MIPS. Erstere sind meist masslos uebertrieben oder sonstwie getuerkt. So wird dem i860 120 MIPS angedichtet…die rekrutieren sich in Wahrheit aus 40 MIPS und 80 MFLOPS,
was nach Eva Zwerg eben 120 macht. Begruendet wird diese atemberaubende Arithmetik durch die parallelisierungs Möglichkeit des i860.
Das sind aber keine MIPS, eher MIPS’n’MFLOPS oder MIPMFLOPS oder doch Schronz mit Ranz und Blonk?
Dann sind da noch die Computer-Prospekt-MIPS, eh, erstunken und erlogen sind, da sie nur als Absatzsteigerer eingesetzt werden.
Meist ist es so, dass die Computer zwar die echten MIPS-Werte angeben, doch die sind 100%ige Hardware Werte, d.h. das sind die Werte die MOTOROLA, INTEL oder SUN gemessen hat, als der Kaefer noch auf dem Silizium-OP-Tisch lag. So ist es z.B. durchaus wahr, dass ein 80386 4,5 MIPS macht…aber nur ohne MS/KOTZ, langsamen Plunder wie Buskontoller und Speicher, der mit 70ns “daherschleicht”.
Mit all dem Kram mach er evtl. grade noch seine 3 MIPS. Genauso SUNs SPARC mit 12,5 MIPS. In einem Vergleich der TU-Muenchen schnitt die SPARC Station1 gegen einen 386 und Interactive UNIX (16MB) deutlich schlechter ab. Es ist es auch kein Wunder, dass der Archimedes den NeXT locker im Apfelmaennchen-Pixeln abhaengt, obwohl dieser angeblich (nein, es stimmt schon) 1 MIPS mehr hat.
Die zweite Art von MIPS ist die Mess-MIPS Art. Diese entsteht aus obskuren Messprogrammen, die es auf jedem Rechner gibt. Naja, ich glaube darueber muss ich nicht viel sagen…ich schreib’ mir mein Testprogramm und mein VC20 geht mit 10000 MIPS ab wie d’zau.
Die dritte Art sind die schon oben erwaehnten Roh-MIPS, also die, die der Prozessor machen wuerde, wenn er so koennte, wie er wollte. Diese MIPS-Angaben sind nur fuer Computer-Bauer (keine Schraubenzieher-Firmen!) oder die Irren aus der 7*up im Prozessorbrett interessant.
Was nun in einer Welt voller Lug und Trug? Im Workstationbereich hat man das MIPS Manko schon lange satt, und ist deswegen auf die Dhrystones/s umgestiegen. Dies ist ein Testprogramm, das genaustens definiert und in C verfasst ist, sodass es ohne viel Aufwand auf jeden Rechner portiert werden kann. Das Dhrystone-Programm hat seinen Ursprung in dem Whetstone-Benchmark, der fuer die KWIPS (Kilo Whetstones Per Second) zustaendig ist.
Seine Autoren, H.J.Curnow und B.A.Wichmann von National Physical Laboratory, schrieben das Programm zum ersten Mal 1976 in ALGOL 60. Die heutigen Whetstones beruhen ausschliesslich auf der FORTRAN Version.
Seinen komischen Namen verdankt der Whetstone-Benchmark dem Whetstone-ALGOL Compiler. Diesen Compiler benutzten die Programmierer auch dazu, statistische Daten ueber das dynamische Verhalten von Programmen zu gewinnen. Fuer eine grosse Zahl numerischer Anwendungen sammelten die Programmierer Daten ueber die Haeufigkeit von sog. “Whetstone Instructions”, Befehlen in der vom Compiler benutzten Zwischensprache. Mit diesen Daten als Basis konstruierten sie ein synthetisches Programm, den “Whetstone Benchmark”.
Ein weiterer Benchmark, dessen Werte “Qualitaet” versprechen, ist der Linpack-Benchmark. Hier werden die Ergebnisse in MFLOPS angegeben.
Der Linpack war urspruenglich nicht als Benchmark gedacht, sondern war viel eher eine Sammlung von oft benutzten Unterprogrammen aus dem Bereich der linearen Algebra (daher der Name). Jack Dongarra hat dann daraus eine Standardfassung konstruiert, die in aller Welt grossen Anklang fand. So liegen fuer fast alle Rechner Linpack-Ergebnisse vor.
Auch Whetstone, Dhrystone und Linpack haben ihre Schwaechen, doch sind ihre Werte bei Weitem verlaesslicher, als irgendwelche MIPS oder noch besser Norton Faktor und Landmark (aber das ist ein Kapitel fuer sich).
Ein weiterer Befgriff, den man dann und wann antrifft ist “Performance”. Diese berechnet sich aus den ausgefuehrten Benchmarkbefehlen durch die benoetigten Sekunden geteilt. Um einen Festwert zu haben hat man diese Rechnung um VUPs erweitwert. VUP heisst Vax Units of Performance). Also teilt man die Performance durch die Performance einer VAX 11/780 (das sind 1757).
Naja, ob man sie wirklich braucht, die Benchmarks, MIPS, MFLOPS, VUPs und Konsorten, sei dahingestellt, aber wenn ich die Werte angebe, sollte auch klar sein was ich meine, gell?!
mfg AXEL
P.S.: Wenn ich MIPS angebe sind es meist real Werte, also die MIPS die ein Proz. im harten Alltag hergibt.