W czasach wielordzeniowości

Ostatnia dekada przyniosła znaczącą ewolucję w architekturze procesorów. Liczba rdzeni w pojedynczym układzie systematycznie wzrasta - jeden, dwa, cztery, aż do ośmiu, dostępnych obecnie w sprzedaży. Na tym nie koniec, gdyż plany na przyszłość mówią o upakowaniu nawet do 80 rdzeni w pojedynczym układzie. Niestety, na drodze szybkiej adaptacji nowych modeli procesorów wielordzeniowych pojawiają się problemy.

Ostatnia dekada przyniosła znaczącą ewolucję w architekturze procesorów. Liczba rdzeni w pojedynczym układzie systematycznie wzrasta - jeden, dwa, cztery, aż do ośmiu, dostępnych obecnie w sprzedaży. Na tym nie koniec, gdyż plany na przyszłość mówią o upakowaniu nawet do 80 rdzeni w pojedynczym układzie. Niestety, na drodze szybkiej adaptacji nowych modeli procesorów wielordzeniowych pojawiają się problemy.

Co z licencjonowaniem aplikacji?

W czasach wielordzeniowości

We wrześniu tego roku Intel wprowadził nową serię procesorów serwerowych Xeon 7400 (Dunnington). Są to pierwsze układy IA86 wyposażone w więcej niż cztery, bo 6 zintegrowanych rdzeni CPU

Do niedawna pobierano najczęściej opłaty licencyjne za każdy serwer lub procesor, na którym zainstalowano daną aplikację. Wraz z pojawieniem się układów wielordzeniowych model ten przestał być jednak zadowalający dla producentów oprogramowania. Szukając większych zysków, dostawcy wprowadzili własne, specyficzne modele pobierania opłat za licencje. W roku 2006 IBM stworzył jednostkę pomiaru mocy procesora "PVU - Processor Value Unit" i na jej podstawie licencjonuje własne aplikacje. Z kolei Microsoft obstaje przy korzystniejszym dla klienta sposobie licencjonowania "per gniazdo", utrzymując, że liczba gniazd procesorowych w systemie nie zmieni się tak znacząco, jak - potencjalnie - liczba rdzeni. Także koncern AMD zachęca producentów oprogramowania do korzystania z modelu licencjonowania aplikacji per gniazdo.

Ten model wielu producentom oprogramowania nie przypadł jednak do gustu, gdyż według nich przynosi zbyt małe zyski. Margaret Lewis, dyrektor działu rozwiązań komercyjnych w AMD, jest jednak dobrej myśli: "Producenci oprogramowania powinni licencjonować swoje produkty per gniazdo, a nie wg liczby rdzeni. Olbrzymia większość dostawców stosuje taki właśnie model. Ciągle jest kilku z modelami alternatywnymi, ale nie uważamy takiej sytuacji za mającą wpływ na proces adaptacji rynkowej procesorów wielordzeniowych". Pozostaje mieć nadzieję, że najwięksi gracze rynkowi, tacy jak IBM, Microsoft czy Oracle, wypracują jednolity standard licencjonowania swoich produktów. Ułatwiłoby to bowiem klientom poruszanie się w gąszczu modeli licencyjnych, tym bardziej że analitycy podkreślają, iż dostawcy oprogramowania nigdy nie zyskują, jeśli reguły licencjonowania są nieprzychylne klientom.

Odpowiednie aplikacje na odpowiednie procesory

W czasach wielordzeniowości

Czterordzeniowy procesor AMD był dotąd produkowany w technologii 65 nm. Lada moment mają być dostępne na rynku procesory wytworzone w nowym procesie technologicznym 45 nm.

Serwery z układami Quad-core dostępne są na rynku od ponad roku. Badania firmy Sun Microsystems pokazują jednak, że pod względem zastosowania przez klientów ustępują one znacznie częściej wybieranym serwerom z układami Dual-core. Nie wszystkie aplikacje dostosowane są do środowiska wielordzeniowego i nie wszystkie potrafią czerpać z niego maksimum korzyści. Jak twierdzi David Simmons, dyrektor działu serwerów x64 w Sun: "Poziom zaadaptowania serwerów Quad-core wzrośnie, jeśli aplikacje będą w stanie w pełni wykorzystać moc każdego rdzenia procesora. To z kolei wymaga czasu, gdyż nikt nie przepisze kodu aplikacji w jedną noc".

Do układów wielordzeniowych wykorzystujących w pełni moc obliczeniową zaliczyć możemy wszelkie aplikacje służące do badań naukowych, analiz finansowych oraz poszukiwań nowych złóż surowców. Wszystkie te aplikacje cechuje wielowątkowość procesów, które mogą być równolegle przetwarzane przez rdzenie.

Aplikacje SAP, bazy danych oraz aplikacje webowe i graficzne również doskonale wpasowują się w środowisko wielordzeniowe. Testy przeprowadzone ostatnio pokazały, że programy jednowątkowe, do których zaliczyć można większość aplikacji audio, działają jednak szybciej na procesorach jednordzeniowych. Wynika to z faktu, iż układ jednordzeniowy jest szybszy niż poszczególne rdzenie procesora wielordzeniowego. Z popularnych systemów operacyjnych zoptymalizowano pod kątem wielordzeniowości Windows Server 2003, Sun Solaris 10 OS, Red Hat Enterprise Linux oraz HP Unix.

Jak pokazują badania firmy Forrester Research, ogromna większość aplikacji nie jest jednak przystosowana do wykorzystania w pełni platform wielordzeniowych. Korporacje oraz centra badawczo--rozwojowe w  przeważającej większości nie zamierzają porzucać krytycznych dla ich funkcjonowania aplikacji jednowątkowych, działających dotychczas wystarczająco wydajnie. Modyfikacja kodu źródłowego na platformy wielordzeniowe byłaby zbyt skomplikowana i kosztowna. "Aplikacje to setki tysięcy linii kodu. Taniej i prościej jest po prostu kupić odpowiedni komputer niż przepisać aplikację" - mówi Mike Lang, technik w laboratorium badawczym Los Alamos National Laboratory.

Osiem rdzeni na horyzoncie

W czasach wielordzeniowości

Procesor UltraSparc T2 firmy Sun zawiera osiem rdzeni, a każdy z nich obsługuje osiem wątków...

Wszystko wskazuje na to, że przez długi czas utrzymywać się będzie tendencja zwiększania liczby rdzeni w układach procesorowych. Na przeszkodzie w budowie szybszych, pojedynczych rdzeni stanęły bowiem prawa fizyki. Upakowanie dużej liczby tranzystorów w układzie powoduje wydzielanie się ogromnej ilości trudnego do odprowadzenia ciepła. Zwiększanie mocy obliczeniowej mikroprocesorów odbywa się poprzez dodawanie kolejnych rdzeni, kosztem obniżenia częstotliwości taktowania zegara.

Sześciordzeniowy układ Intela o nazwie kodowej Dunnington został oficjalnie wprowadzony do sprzedaży w połowie września br. Następnym możliwym krokiem firmy Intel będzie wydanie procesorów czterordzeniowych z technologią współbieżnej wielowątkowości (Hyper-Threading) - procesor wykorzystujący technologię HT widziany jest w systemie operacyjnym jako dwa procesory logiczne. Z kolei firma Sun, oferująca obecnie ośmiordzeniowy układ Niagara, w drugiej połowie przyszłego roku zamierza wprowadzić na rynek układ szesnastordzeniowy. Warto przy tym dodać, że na początku 2006 r. Intel zademonstrował maszynę osiemdziesięciordzeniową, która jednak nie wejdzie do produkcji w najbliższym czasie. Barierą blokującą wprowadzenie na rynek maszyn tego rodzaju jest powszechny brak aplikacji wielowątkowych. Jak mówi Shannon Poulin, dyrektor marketingu procesorów Xeon w Intelu: "Staramy się dopasować rozwój naszych układów pod względem liczby rdzeni do tempa rozwoju oprogramowania, mogącego w pełni je wykorzystać".

AMD pracuje nad procesorem składającym się z 12 rdzeni, rezygnując z wcześniejszych planów wprowadzenia najpierw na rynek ośmiordzeniowego układu CPU. Procesor o roboczej nazwie Magny-Cours będzie gotowy w pierwszej połowie 2010 r. Wcześniej, bo w drugiej połowie 2009 r., AMD ma poszerzyć ofertę o sześciordzeniowy procesor Instanbul. AMD przewiduje też na 2010 r. premierę innego sześciordzeniowego układu o nazwie kodowej Sao Paulo. Wszystkie wymienione układy będą wytwarzane przy użyciu technologii 45 nm (czterordzeniowy procesor Barcelona jest obecnie produkowany w technologii 65 nm). Wiadomo już, że 12-rdzeniowe procesory będą się składać z  dwóch 6-rdzeniowych procesorów umieszczonych w jednej obudowie.

W ostatnim czasie odnotowano wyraźny spadek liczby serwerów jednordzeniowych zamawianych przez korporacje. W większości klienci zamawiają już układy cztero- i dwurdzeniowe. Intel oferuje procesory, które mogą pracować w trybie cztero-, dwu- lub jednordzeniowym. Zachowuje przez to kompatybilność wsteczną z aplikacjami niewspółbieżnymi. Z kolei IBM Power6 to procesory, w których z dostępnych dwóch rdzeni tylko jeden może być aktywowany.

Przewiduje się, że procesory jednordzeniowe będą ciągle popularne w segmencie małych i średnich przedsiębiorstw (SMB), które na jednym rdzeniu procesora będą umieszczać swoje zwirtualizowane systemy produkcyjne, testowe i rozwojowe. Oczywiście, wirtualizacja nie jest jednak ograniczona do jednego rdzenia. W dużych, złożonych środowiskach klasy enterprise przy jej wdrażaniu wykorzystywane będą układy wielordzeniowe. Ich stosowanie pozwoli osiągnąć wyższe współczynniki konsolidacji serwerów fizycznych. Na każdym rdzeniu procesora może bowiem działać wydajnie kilka maszyn wirtualnych, czerpiąc maksimum korzyści z układów wielordzeniowych. Dodatkowo, w celu poprawy wydajności obsługi warstwy wirtualizacji, implementowane są specjalne zestawy instrukcji dla procesorów.

W najbliższym czasie upowszechnienie się procesorów wielordzeniowych będzie ściśle powiązane z rosnącą popularnością technologii wirtualizacji. To właśnie ona czerpie z wielordzeniowości maksimum korzyści. Po wymianie procesora na nieco niżej taktowany, lecz dwurdzeniowy - wydajność popularnych aplikacji często nie rośnie, ale zauważalnie spada. Bez zasadniczych zmian w sposobie projektowania i tworzenia aplikacji optymalne wykorzystanie wielu rdzeni w układzie nie będzie możliwe. Dużo firm z sektora IT uczyniło swoim priorytetem stworzenie narzędzi programistycznych pod kątem procesorów wielordzeniowych. Pozostaje więc czekać na pojawienie się aplikacji współbieżnych - wtedy wszystkie zakupione rdzenie wykorzystamy optymalnie.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200