Czy benchmarki kłamią?

Dobór odpowiedniego algorytmu testowego ma poważny wpływ na rezultaty testów produktów. Czy więc benchmarki mówią prawdę o wydajności mierzonych rozwiązań?

Wydajność według SPEC

W testach wydajności CINT2006 (liczby całkowite) wyniki są następujące. PowerEdge M610 (Intel Xeon X5550, 2.67 GHz) osiąga wynik 29.2, ale PowerEdge M610 (Intel Xeon E5520, 2.27 GHz) osiąga 24.1. Gdy mierzy się wydajność obliczeń zmiennoprzecinkowych w teście CFP2006, Dell PowerEdge M610 (Intel Xeon E5540, 2.53 GHz) osiąga 31.4, a PowerEdge M610 (Intel Xeon X5550, 2.67 GHz) - 35.3 (wszystkie dane pochodzą ze strony www.specbench.org). Aplikacje testowe, które służą do badania wydajności różnych maszyn, są oferowane w sprzedaży przez organizację SPEC, z jednym wyjątkiem, którym jest SPECjvm2008 oferowany do pobrania w dziale Download. Są to dość kosztowne aplikacje, CPU2006 kosztuje 800USD, jAppServer2004 V1.08 kosztuje 2 tys. USD, SPECmail2009 - 1900 USD.

Potrzeba pomiaru wydajności obliczeniowej różnych maszyn jest tak stara, jak komputerowa technika obliczeniowa. Ponieważ subiektywne wrażenie prędkości obliczeń jest zawodne, opracowano szereg testów. W komputerach PC popularnością cieszyły się mierniki Dhrystones (benchmarki wykonujące ogólny zestaw instrukcji procesora, wynik określa ilość wykonań programu na sekundę) oraz Whetstones, który testował operacje zmiennoprzecinkowe. Te proste benchmarki zostały zastąpione przez zaawansowane pakiety, z których najpopularniejszymi są SYSmark oraz MobileMark firmy BAPCo. Test SYSmark określa wydajność maszyny w konkretnych zadaniach, takich jak e-learning, tworzenie wideo, zadania biurowe i zadania z grafiką 3D. Ponieważ kładą nacisk na podsystem grafiki i zadania typowe dla stacji roboczych, nie bardzo nadają się do pomiaru wydajności serwerów. Wynika to stąd, że serwery zazwyczaj posiadają słabsze podsystemy grafiki, bez zaawansowanej akceleracji 3D, gdyż na konsoli serwera nie uruchamia się produkcyjnych zadań wymagających trójwymiarowej grafiki. Ponadto SYSmark działa i mierzy jedynie komputery z desktopowymi systemami Windows, zatem nie można zmierzyć za ich pomocą wydajności maszyn z systemami Unix i Linux, pomiary środowiska serwerowego Windows nie będą w pełni wiarygodne.

Od Linpacka do benchmarku

Najpopularniejszym miernikiem wydajności dużych komputerów jest Linpack. Jest to test, który wykorzystuje bibliotekę o tej samej nazwie, służącą do obliczeń z dziedziny algebry liniowej. Biblioteka ta powstała w latach 70. XX wieku, została oprogramowana w Fortranie przez Jacka Dongarra, Jima Buncha, Cleve’a Molera i Pete’a Stewarta. Biblioteka Linpack rzadko bywa wykorzystywana w obliczeniach inżynierskich, gdyż podobny pakiet LAPACK działa sprawniej w środowisku superkomputerów.

Benchmark Linpack mierzy prędkość rozwiązywania gęstego układu równań liniowych i dobrze oddaje wydajność komputerów w typowych zadaniach inżynierskich z dużą ilością obliczeń zmiennoprzecinkowych. Stanowi on ważny wskaźnik szybkości komputera i jest podstawą rankingu najszybszych superkomputerów świata - TOP 500. Obecnie najszybszym komputerem w Polsce jest gdański klaster Galera (67. miejsce na świecie w rankingu TOP 500 to 38,17 Tflopów mierzonych za pomocą Linpacka), najszybszą maszyną jest Roadrunner zainstalowany w laboratoriach Los Alamos w Stanach Zjednoczonych z wynikiem 1105 Tflopów.