Login
Newsletter
Werbung

Do, 7. Juli 2011, 15:00

Über Benchmarks

Immer wieder werden in der Open-Source-Gemeinde verschiedenste Programme an Hand von willkürlichen Zahlen miteinander verglichen. In vielen Fällen haben diejenigen, die die »Benchmarks« durchführen, jedoch keinen technischen tieferen Einblick in das, was sie eigentlich vergleichen, und es werden einfach nur Zahlen ohne jegliche Interpretation vorgelegt. In diesem Artikel wird am Beispiel eines auf Phoronix veröffentlichten Benchmarks aufgezeigt, wie wichtig es ist, die Benchmarks kritisch zu betrachten und »Zahlen« nicht spekulativ zu interpretieren.

Die Nachrichtenseite Phoronix, mit dem Schwerpunkt X und Linux, veröffentlicht regelmäßig Benchmark-Ergebnisse. Dabei wird die von Phoronix entwickelte Phoronix Test Suite eingesetzt. Betrachtet man die Ergebnisse, so stellt man sehr oft die gleichen konzeptionellen Fehler in der Durchführung der Benchmarks fest. Bei Lesern, welche die Benchmarks kritisch betrachten, hört man auch, dass Phoronix »alles benchmarkt, was nicht bei drei auf den Bäumen ist«. Unglücklicherweise werden die auf Phoronix veröffentlichten Ergebnisse von Medien unreflektiert weiterverbreitet und Phoronix als verlässliche Quelle angesehen (was sie durchaus ist, jedoch nicht bei Benchmarks, wie gezeigt wird).

Gute Benchmarks

Zuerst vorweg: Benchmarks sind, wenn sie richtig durchgeführt werden, eine wichtige Unterstützung in der Softwareentwicklung und auch in der Freien-Software-Welt eine wichtige Komponente. Ein guter Benchmark kann sehr schnell Regressionen feststellen oder aufzeigen, ob eine Optimierung überhaupt sinnvoll ist. Anhand eines falschen Benchmark-Ergebnisses zu optimieren, kann allerdings zu einer Verschlechterung der vorherigen Situation führen.

Einen guten Benchmark aufzusetzen ist leider nicht einfach – es muss die wissenschaftliche Methodik eingehalten werden. Ein Benchmark ist zu betrachten wie ein naturwissenschaftliches Experiment, d.h. jemand anderes muss unter gleichen Bedingungen die Ergebnisse reproduzieren können und die Werte müssen normalisiert sein. Die Versuche müssen mehrmals durchgeführt werden und die Beeinflussung von externen Störfaktoren muss ausgeschlossen werden. Ein guter und aussagekräftiger Benchmark zum Vergleich verschiedener Anwendungen erfordert daher den Aufwand vergleichbar mit wissenschaftlichen Arbeiten.

Am wichtigsten bei einem Benchmark ist jedoch seine Interpretation. Einfach nur die Zahlen zu präsentieren, ist kein aussagekräftiger Benchmark. Die Zahlen müssen verstanden und erklärt werden. Abweichungen zu bestehenden theoretischen Annahmen müssen betrachtet und dürfen nicht einfach ignoriert werden, da sie auf einen Fehler im Versuchsaufbau hinweisen können.

Falsche Benchmarks

Der Klassiker unter den falsch verstandenen Benchmarks ist das Programm glxgears. Führt man es aus, wird in der Konsole alle fünf Sekunden die Anzahl der gerenderten Frames ausgegeben. Viele Anwender nutzen diese Zahlen zum Vergleich von Systemen oder melden sogar Bugreports, weil sich die Anzahl der Frames verschlechtert. Jedoch ist glxgears kein Benchmark. Seit einiger Zeit verwendet glxgears VSync, womit die Zahlen sowieso der Bildschirmfrequenz von in der Regel 60 Hz entsprechen. Jedes mehr gerenderte Frame kann von der Hardware nicht dargestellt werden und ist somit eine Verschwendung von Rechenzeit. Jedoch hätte glxgears auch ohne diese Einschränkung keine Aussagekraft, da es völlig realitsätsferne Elemente der OpenGL-API austestet, wie sie so von keiner modernen OpenGL-Anwendung verwendet wird. Bei glxgears ist es sogar wahrscheinlich, dass die Softwareemulation bessere Ergebnisse liefert als eine hardwarebeschleunigte Ausführung.

glxgears ist kein Benchmark-Programm

Martin Gräßlin

glxgears ist kein Benchmark-Programm

Fallbeispiel Phoronix

Der Phoronix Benchmark »How Unity, Compiz, GNOME Shell & KWin Affect Performance« (deutsch: »Wie Unity, Compiz, GNOME Shell und KWin die Leistung beeinflussen«) hat in etwa so viel Aussagekraft wie ein mit glxgears durchgeführter Benchmark. Ziel des Benchmarks ist es, herauszufinden, wie die Leistung (d.h. Anzahl gezeichneter Bilder pro Sekunde) von OpenGL-Computerspielen unter verschiedenen Fenstermanagern und Desktopumgebungen beeinflusst wird, und zwar unter Betrachtung des Einflusses von OpenGL-Compositing.

Betrachtet man den Artikel, so fallen sofort einige Fehler in der Durchführung auf. Der Benchmark erfolgte auf einem Grundsystem einer Distribution und für die verschiedenen Tests wurde die Grafikkarte ausgetauscht. Um einen allgemeingültigen Benchmark zu erhalten, hätte der Test auf verschiedenen Hardwareplattformen ausgeführt werden und auf jedem System hätten mehrere Distribution verwendet werden müssen. In der dargestellten Ausführung ist die einzige Aussagekraft des Benchmarks, dass unter dem getesteten System die angegebenen FPS der verschiedenen Spiele erreicht wurden. Ob das eine allgemeingültige Aussage hat, wie sie zum Teil abgeleitet wurde, kann aus den präsentierten Zahlen nicht erkannt werden.

Das nächste offensichtliche Problem erkennt man, wenn man versucht, zu klären, wie oft die Tests wiederholt wurden. Man findet dazu im Artikel keine Angaben. Möchte man als interessierter Dritter die Ergebnisse reproduzieren, so ist dies nicht möglich, da wichtige Bestandteile der Testausführung nicht bekannt sind. So stellt sich die Frage, ob die Tests nur einmal durchgeführt wurden oder mehrmals, ob Ausrutscher herausgenommen wurden oder ob vielleicht die präsentierten Zahlen eigentlich Ausrutscher sind.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung