Wojna o przyszłość

Wreszcie mamy czym porównać wydajność Xeona i Opterona w aplikacjach 64-bitowych. Świeżo zoptymalizowane benchmarki pozwoliły odpowiedzieć na jedne i zadać następne pytania.

Zachwycony swoim Itanium Intel przez długi czas hamował pracę nad tańszą odmianą 64-bitowego procesora - a byłby prostym rozszerzeniem architektury x86, na której ta firma zbiła majątek. Zamiast tego na scenę wkroczył AMD, którego 64-bitowy Opteron mocno usadowił się na rynku dzięki umiejętności radzenia sobie zarówno z nowym, jaki i starszym, 32-bitowym kodem. Dla wielu Itanium było za drogie i zbyt daleko odbiegało od dotychczasowych standardów.

Świat się zmienia

Opteron nie miał konkurenta do czerwca tego roku, kiedy Intel w trybie awaryjnym wprowadził poprawiony Xeon. Fanfary z tej okazji były nieco stłumione, bo tym razem ktoś inny narzucił standard. Intel zaadaptował zbiór instrukcji x86-64, wymyślony w AMD do Opterona. Nowa architektura, zwana EM64T (Extended Memory 64 Technology) pozwoliła Xeonowi na wejście w szranki.

Nowy produkt musiał poczekać na ocenę swojej przydatności do 64-bitowych obliczeń, bo dotychczasowy kod x86-64 był napisany i optymalizowany do Opterona.

Takie kłopoty dotąd raczej spotykały konkurentów Intela. Beta Windows nie działała z EM64T, bo system nie identyfikował procesora. Szybciej uwinęli się linuksowcy, trzecie uaktualnienie do Red Hat Advanced Server już się instalowało na komputerach z EM64T. Można było przystąpić do porównania obu konstrukcji, chociaż dostępne benchmarki raczej testowały pracę w trybie 32-bitowym. Przygotowanie nowych było tylko kwestią czasu, który właśnie nadszedł.

Wojny rdzeni

Benchmarki wzorowaliśmy na kilku prostych życiowych przykładach. Oczywiście chodzi o życie serwerów, a nie zapalonych graczy. Specjalnie przyłożyliśmy się do wyeliminowania wszystkiego poza kodem 64-bitowym. Zrobiliśmy, co było w naszej mocy, aby uzyskać porównywalne platformy. W barwach Intela wystąpił serwer Dell PowerEdge 2800 z dwoma procesorami Xeon 3,6 GHz, 4 GB RAM i twardymi dyskami Ultra 320 SCSI o pojemności 36 GB. AMD reprezentował Newisys 2100, serwer z dwoma Opteronami 2,4 GHz, takim samym RAM i dyskami jak u konkurenta. W testach zewnętrznych rolę klientów grały Compaq Proliant ML370, pracujące pod kontrolą systemu Red Hat AS 3.0 z dwoma 32-bitowymi procesorami Xeon 2,8 GHz i 4 GB RAM. Wszystkie razem spięliśmy gigabitowym Ethernetem.

Wybór Linuksa jako systemu operacyjnego zarówno do Opterona, jak i platformy EM64T Xeona nie podlegał dyskusji. Chociaż ostatnio Microsoft także dostarcza 64-bitowe rozwiązania do serwerów, Linuks jest w tym segmencie już od trzech lat. Na obu serwerach została zainstalowana dystrybucja Red Hat Advanced Server 3.0, pracująca na najnowszym jądrze 2.4.21-15.EL. Po zainstalowaniu uaktualnienia trzeciego dla x86-64 dołączyliśmy także inne dostępne w tym czasie.

W teście mierzyliśmy wydajność pracy bazy danych MySQL w wersji 3.23.58, korzystając z wbudowanego sql-bencha i obsługującego zapytania z serwera WWW Apache 2.0.46. Pracowała także testowa część Linpacka, pakietu matematycznego do obliczeń macierzowych.

Wyniki testu nie pozostawiły wątpliwości. W kategorii testów z życia wziętych serwer Newisys na Opteronie, mimo niższej częstotliwości taktowania, pracował wydajniej od EM64T Xeona. Przez lata Intel kładł nacisk na zwiększanie częstotliwości procesora, upatrując w tym symbol przewagi nad innymi konstrukcjami. Zgodnie z tą doktryną 3,6 GHz Xeon nie powinien mieć kłopotu z wykazaniem wyższości nad rzadziej taktowanym Opteronem. Okazało się, że jest odwrotnie. Wynika z tego, że szybki zegar to nie wszystko.

Liczby to nie słowa

Interesujące różnice w wydajności towarzyszyły prawie każdej fazie testu. Chociażby podczas pomiaru wydajności obsługi serwera WWW. Używaliśmy benchmarku ab z Apache`a w stosunku do statycznej strony wielkości 100,5k. Drugi test polegał na wykonaniu skryptu CGI napisanego w Perlu, który pobiera dane z bazy MySQL. Skrypt wyświetla tablicę zbudowaną z 210 wierszy danych wybranych na bieżąco z bazy złożonej z dziesięciu kolumn, po 3500 wierszy w każdej. W teście statycznym Opteron pracował o 21, a w dynamicznym o 25 procent szybciej.

-------------

1)Statyczna strona wielkości 100 KB z 10 tysiącami zapytań, tworzona jednocześnie przez 10 wątków.

Te procenty w liczbach bezwzględnych oznaczają, że system z dwoma Opteronami obsłużył w teście statycznym ponad 700, a w dynamicznym o dziesięć zapytań na sekundę więcej od konkurenta na Xeonach Intela. Takiej przewagi wydajności nie można ignorować.

Test przeprowadzony bezpośrednio z bazą danych MySQL zakończył się podobnym wynikiem. Te same zadania system AMD wykonywał dziewięć minut krócej. Zaoszczędził więcej niż czwartą część sumarycznego czasu. W tym teście większą rolę niż w tworzeniu stron WWW odgrywa sprawność twardych dysków. Ale dyski i interfejs były identyczne i nie mogły spowodować tak dużych różnic. To potwierdzenie wiarygodności wyników.

Sztuka rewanżu

Intel odgryzł się w następnym teście. HPL (High-Performance Linpack) jest próbą polegającą na obliczeniach wielkich macierzy. Przeprowadzenie tego testu musiało być odłożone do czasu przygotowania odpowiedniej optymalizacji biblioteki BLAS (Basic Linear Algebra Subprograms), z której Linpack intensywnie korzysta. Pracy podjął się Kazushige Goto z Uniwersytetu Teksańskiego w Austin, który wcześniej zoptymalizował tę bibliotekę dla wielu innych procesorów, w tym Opterona, PowerPC i Xeona.

Kazushige spisał się na medal. W teście Xeon z EM64T wykazał się wydajnością o 44 procent wyższą od Opterona. Ale to nie koniec historii. Pytany o komentarz Goto stwierdził, że dobre wyniki w teście HPL niekoniecznie muszą się łączyć z dużą wydajnością obliczeń samej jednostki centralnej. Wyjaśnił, że procedury z biblioteki HPL DGEMM maskują długie opóźnienia w dostępie do pamięci podręcznej, które są problemem procesorów EM64T.

Potencjalnie ważniejsze są wyniki bezpośrednich testów wydajności CPU. W jednym wyniki Opterona i EM64T były podobne, chodzi o próbę pojedynczego procesora. Opteron uzyskał 89,9 a Xeon 88,3 procent wartości maksimum. Podczas pracy podwójnej różnice powiększyły się. Opteron pozostał na poziomie 88,8 a EM64T spadł do 84,5 procent. Ujawniła się przewaga architektury NUMA, bezpośredniej komunikacji między procesorami możliwej w Opteronach.

Życie w ciekawych czasach

Intel jest przyzwyczajony do przewodzenia na rynku procesorów. Konieczność podążania za AMD musi być dla niego przykrą niespodzianką, zwłaszcza kiedy w odpowiedzi na powszechnie wyrażane zapotrzebowanie na 64 bity bezskutecznie lansował Itanium. Niewielu wątpi, że zbiór instrukcji do Itanium, IA64, jest lepszy od x86-64, ale to nie wystarcza do odniesienia sukcesu. Wydajność przegrała z atutami Opterona, wsteczną kompatybilnością ze starszymi procesorami i niższą ceną.

Zapowiada się interesujący rok walki między grającym na dwóch platformach Intelem, a AMD, które narzuciło przeciwnikowi swoje warunki. Eksperci są zgodni, że jednoczesne wspieranie obu procesorów nie będzie możliwe, a wejście do produkcji 64-bitowego Xeona nie pogrąży Opterona, ale raczej zahamuje sprzedaż Itanium.

Zmienia się stosunek dużych producentów serwerów do procesorów AMD. Kiedyś okazywali niechęć do ich używania w trosce o dobre stosunki z Intelem. Teraz Hewlett-Packard czy IBM aktywnie rozwijają i wprowadzają do swoich ofert serwery oparte na Opteronie. Wydaje się, że w walce o dominację na rynku procesorów x86-64 aktualnie prowadzi AMD, ale wyścig jeszcze trwa i jest daleki od rozstrzygnięcia. Jeśli programiści przeniosą się w całości na platformę 64-bitową, korzyść z kompatybilności x86-64 przestanie być istotna i przewaga tej platformy się skończy.


Zobacz również