Nicht nur im professionellen Sektor, wo man per Benchmarks neue Produkte anpreist und verkauft, auch im privaten Bereich werden gerne Benchmarks eingesetzt – entweder, um zu sehen, wie schnell der neue Rechner nun wirklich läuft, oder um herauszufinden, ob der momentan verwendete PC mit aktuellen Systemen noch halbwegs mithalten kann.
Das Benchmarking ist eine Millionenindustrie, denn gute Ergebnisse bedeuten für die Hersteller deutlich bessere Verkäufe. Mittlerweile wandern neue Rechner fast nur noch als Ersatz für vorhandene Systeme über den Ladentisch, und die Performance dient dabei als eines der Haupt-Verkaufsargumente: Schließlich funktioniert der momentan eingesetzte Rechner ja meist noch tadellos. Im High-End-Bereich geben beispielweise Dell, HP, Intel, Sun und IBM Millionen aus, um möglichst gute Ergebnisse im SPEC-CPU-Benchmark [1] oder diversen Server-Leistungstests zu erzielen.
Im Consumer-Markt investieren Firmen wie ATI und Nvidia erkleckliche Summen in die Treiberentwicklung, um in Grafik-Benchmarks möglichst gut dazustehen. Da es dabei um viel Geld geht, kommen gelegentlich auch zweifelhafte Mittel zum Einsatz: Sowohl ATI wie auch Nvidia wurden schon dabei erwischt ([2],[3]), dass sie für das zum Benchmarking populäre Quake 3 respektive 3Dmark in ihre Treiber besondere Modi integrierten, die ohne Rücksicht auf die Grafikqualität den Test möglichst zügig absolvierten.
Während sich die Windows-Welt vieler Benchmarks bedienen kann, sieht es unter Linux bisher eher mager aus. Das gute alte glxgears, das allen Distributionen beiliegt, taugt für wenig mehr als die Prüfung, ob die 3D-Beschleunigung überhaupt läuft. Es "glänzt" primär durch uralten, überholten OpenGL-Code, weswegen ATI auch mit seinen proprietären Treibern eine modernere Version namens fgl_glxgears installiert.
Es tummeln sich zwar zahlreiche Einzel-Benchmarks im Linux-Teich, jedoch keine umfassende Suite, die verschiedene Anwendungen in diversen Leistungsdisziplinen testet. Um Rechner unter Linux auf Herz und Nieren zu prüfen, haben wir deshalb die LinuxUser-Benchmark-Suite (kurz: LU-Bench) zusammengestellt, die Sie auf Seite B unserer Heft-DVD finden. Sie besteht aus einer Vielzahl aus Tests, die auch modernste Rechner zum Schwitzen bringen – dabei haben wir darauf geachtet, dass die Tests sich an der Praxis orientieren, also auf real genutzten Programmen basieren.
Wir haben die Tests in drei Kategorien aufgeteilt, die Sie Ihren Rechner individuell oder zusammen absolvieren lassen können – je nachdem, ob Sie nur eine Komponente (wie beispielsweise eine neue Grafikkarte, CPU oder Festplatte) oder den ganzen Rechner prüfen wollen.
Grafikmarathon
Moderne Grafikchips bestehen inzwischen aus mehr Transistoren als aktuelle CPUs. Sie bieten unglaubliche Rechenleistung, die sich inzwischen sogar für andere Zwecke als nur für Grafik nutzen lässt. Unser GPU-Test beschränkt sich momentan allerdings auf das, wofür der Großteil der Anwender eine neue Grafikkarte kauft: die reine Grafikleistung.
Die Eignung für 3D-Modelling und -Visualisierung sowie sonstige 3D-Anwendungen testet SPECviewperf [4], ein Benchmark, der sich schon seit vielen Jahren im Profi-3D-Segment als Standard etabliert hat, ähnlich wie SPEC-CPU für Prozessoren. SPECviewperf basiert auf einer Reihe von real im Einsatz befindlichen Programmen aus dem CAD/CAM-, 3D-Modelling- und Visualisierungsbereich (Abbildung 1). Interessanterweise gibt es fünf der acht getesteten kommerziellen Programme auch für nativ für Linux: Pro Engineer, Maya, Ensight und UGS NX beziehungsweise Teamcenter laufen schon unter dem freien Betriebssystem, und auch Dassault soll von seinem populären CAD/CAM-Programm Catia angeblich eine Linux-Version in Arbeit haben.
Doch 3D-Anwendungen testen nur einen Aspekt von Grafikkarten: Die schiere Polygon- und Drahtgitter-Zeichenleistung. Texturierung oder moderne Features der Grafikchips nutzen 3D-Programme, falls überhaupt, nur sehr zögerlich. Das höchste der Gefühle in SPECviewperf ist gelegentlich ein texturiertes 3D-Modell. Der CAD/CAM-Bereich braucht so etwas überhaupt nicht, aber auch bei 3D-Modelling und Visualisierung nutzen die Programme Texturen und Shader nur begrenzt. Deshalb testen wir die Grafik-Leistung auch in Spiele-Engines.
Mit Nexuiz [5] haben wir uns für ein grafisch anspruchsvolles Open-Source-Projekt entschieden (Abbildung 2). Nexuiz setzt auf DarkPlaces, einer Weiterentwicklung der von Id Software in Quellform veröffentlichten Quake-Engine. Allerdings stammt die Quake-Engine letztendlich immer noch aus dem letzten Jahrtausend, weshalb der OpenGL-Code nicht mehr ganz zeitgemäß ist. DarkPlaces beherrscht zwar die OpenGL-Shading-Language, Nexuiz macht aber nur spärlich Gebrauch davon. Deshalb testen wir zusätzlich mit der quelloffenen Cube-2-Engine, die im Spiel mit dem originellen Namen Sauerbraten [6] zum Einsatz kommt. Die komplett selbst entwickelte Engine gibt sich äußerst modern und protzt mit grafisch beeindruckenden, Shader-basierten Effekten wie Wasser, Überstrahlen oder Gras (Abbildung 3). Extra für uns suchten die Sauerbraten-Entwickler einen Level aus, der die Shader richtig fordert, stellten die Shader-Einstellungen auf Anschlag ein und modifizierten das Spiel so, dass wir die Frames pro Sekunde in der speziell für uns erstellten Demo mitschneiden können.
Die 2D-Leistung ist heutzutage zwar weitgehend irrelevant, aber vielen Anwendern kann eine GUI niemals flott genug reagieren. Deshalb rundet GTKperf [7] unseren Grafikbenchmark ab, das die 2D-Leistung beim Zeichnen von GTK-Programmfenstern prüft.
Prozessorqual
In Sachen CPU konnten wir aus dem Vollen schöpfen: Hier testet LU-Bench diverse rechenintensive Disziplinen, die selbst moderne Rechner einige Zeit beschäftigen. Compilebench ermittelt die Kompilierleistung, indem es Kernel-Source-Trees erstellt, patcht und kompiliert. Mit Lame und Oggenc encodet unser Benchmark eine komplette CD des Open-Music-Contests in OGG und MP3, mit x264 einen Ausschnitt aus dem Open-Source-Film "Big Buck Bunny" [8] in der 1920x1080 Pixel großen HD-Auflösung im äußerst effizienten H.264-Codec (Abbildung 4).
Auch bei der Archivierung handelt es sich um eine CPU-lastige Aufgabe. LU-Bench prüft, wie schnell die CPU einen 240-MByte-Tarball des /lib-Verzeichnisses komprimiert, das eine bunte Mischung aus Textdateien und Binärcode enthält. Hier greifen wir gleich auf drei Packer zurück: Das beliebte, aber etwas angestaubte Bzip2, das etwas modernere und plattformübergreifend genutzte RAR sowie das neue, äußerst effiziente 7zip.
3D-Rendering zählt ebenfalls zu den Einsatzbereichen, in dem CPUs niemals schnell genug sein können. Mit komplexeren Modellen, ausgefeilteren Shadern, Beleuchtungsmodellen oder Texturen machen die 3D-Animateure, ohne mit der Wimper zu zucken, jedes Quäntchen Mehrleistung neuer CPUs zunichte. Wir messen die Raytracing-Leistung in der multiprozessorfähigen Beta-Version des Open-Source-Raytracers Povray sowie in Yafray, einem insbesondere als Blender-Plugin beliebten Raytracer. Hierzu berechnen wir eine selbst modifizierte Szene aus dem Opensource-Kurzfilm Elephants Dream ([9], Abbildung 5).
Der H.264-Codec arbeitet zwar insbesondere in Sachen Dateigröße äußerst effizient, aber auch äußerst rechenaufwändig. Insbesondere wegen der im High-Profile verwendeten arithmetischen Codierung CABAC ist das für viele Rechner immer noch eine knifflige Aufgabe – sofern sie nicht auf GPU-Decodierung wie Nvidias VDPAU (siehe Grafikkarten-Vergleichstest in diesem Heft) zurückgreifen können. Deshalb testen wir das H.264-Decodieren in Mplayer mit der multiprozessorfähigen Version des Ffmpeg-Frameworks.



