Wiadomości

Wielordzeniowe procesory to nowe wyzwanie

23 marca 2009 09:40,
Janusz Chustecki, IDG News Service

W serwerach, notebookach, pecetach i stacjach roboczych królują obecnie niepodzielnie procesory wielordzeniowe. Jednak uczestnicy konferencji 2009 Multicore Expo (która odbyła się w zeszłym tygodniu w Santa Clara; Kalifornia; USA) zwracają uwagę na fakt, że użytkownicy nie mogą w pełni wykorzystać zalet takich procesorów, ponieważ warstwa sprzętowa oraz programistyczna komputerów nie jest po prostu przygotowana do współpracy z takimi procesorami.

Prawda jest taka, że znakomita większość dostępnych obecnie programów została zaprojektowana z myślą o tym, że będą obsługiwane przez procesory jednordzeniowe. Dlatego producenci oprogramowania powinni je modyfikować, po to aby mogły one w pełni wykorzystać możliwości procesów wielordzeniowych.

Starsze aplikacje będą oczywiście pracować szybciej po zainstalowaniu ich na komputerze zawierającym np. czterordzeniowy procesor Xeon. Jednak wydajność takiej aplikacji nie wzrośnie czterokrotnie (w porównaniu z wydajnością osiąganą w przypadku uruchomienia aplikacji na serwerze zawierającym jednordzeniowy procesor).

Dzieje się tak dlatego, ponieważ aplikacja w obu przypadkach zachowuje się tak, jakby miała do dyspozycji procesor jednordzeniowy. Potwierdza to raport opracowany ostatnio przez firmę analityczną Gartner, który potwierdza fakt, że twórcy oprogramowania nie nadążają za innowacjami wprowadzanymi do procesorów. Dotyczy to oczywiście przede wszystkim wielordzeniowości.

Dlatego producenci procesorów i komputerów starają się edukować programistów i oferować im różnego rodzaju narzędzia, które ułatwiają zadanie pisania aplikacji przeznaczonych do uruchamiania na serwerach zawierających wielordzeniowe procesory. I tak np. Intel i Microsoft poinformowały niedawno, że uruchamiają w Stanach Zjednoczonych kosztem 20 mln USD dwa centra edukacyjne, których głównym zadaniem będzie przygotowanie programistów do pisania aplikacji korzystających z usług wielordzeniowych procesorów. Jednak Gartner twierdzi, że jest to ciągle za mało.

Aplikacje przetwarzające dane równolegle nie są oczywiście niczym nowym. Jednak były do tej pory stosowane przede wszystkim w wysoce specjalizowanych środowiskach obliczeniowych opartych na serwerach z najwyższej półki. Przez dłuższy czas wydawało się, że wydajność serwerów platformy x86 będzie można zwiększyć głównie przez instalowanie w nich jednordzeniowych procesorów, jednak taktowanych coraz szybszymi zegarami.

Z czasem okazało się, że nie jest to takie proste i tak Intel jak i AMD zdecydowały, że nie tędy droga, wprowadzając za to do procesorów coraz więcej rdzeni. Intel zapowiada np. że procesor Nehalem-EX będzie zawierać osiem rdzeni, a AMD zademonstrował już sześciordzeniowe procesory Istanbul (pisaliśmy o tym tutaj) i zapowiada, że pracuje nad procesorem dla serwerów zawierających 12 rdzeni.

Programiści mają już do dyspozycji narzędzia pozwalające pisać aplikacje, które przetwarzają dane równolegle. Są to np. takie produkty jak Parallel Studio for C i C++ (Intel). Istnieje też nowy model programowania oparty na języku C (OpenCL), opracowany przez Khronos Group i wspierany przez szereg wiodących producentów sprzętu i oprogramowania (w tym przez AMD, Intel, Apple, Intel i Nvidia).

Uczestnicy konferencji Multicore Expo zwracali jednak uwagę na fakt, że generalnie podaż takich narzędzi jest mała. Chodzi tu np. o kompilatory, które analizują kod i są w stanie określić, że określone operacje można wykonywać równolegle, podejmując takie decyzje bez interwencji programisty.

Pomimo braku takich narzędzi, niektórzy dostawcy oprogramowania podejmują trud pisania aplikacji (przetwarzających np. grafikę czy obrazy wideo), które wykorzystują możliwości procesorów wielordzeniowych. Firma Adobe zmodyfikowała np. program Photoshop w taki sposób, że może zlecać wykonanie poszczególnych operacji (filtrowanie informacji graficznych, powiększanie obrazów i inne) określonym rdzeniom procesora x86. Adobe twierdzi, że dzięki takiemu udoskonaleniu wydajność programu Photoshop udało się zwiększyć trzy/cztery razy.

Duże pole do popisu mają tu też producenci sprzętu. Chodzi np. o to, że wielordzeniowe procesory wymagają obecności pamięci oferujących bardzo małe opóźnienia oraz magistral danych, które pracują szybciej niż te stosowane obecnie. Należy też zmienić architekturę systemów obliczeniowych. Przykładem mogą tu być bufory na dane. Współużytkowanie przez wiele rdzeni jednego bufora na dane (co ma miejsce często obecnie) powoduje, że w obszarze tym tworzą się zatory spowalniające proces przetwarzania danych.

Ocena:
Twoja ocena:

Komentarze (11)

kamilsok

24-03-2009 15:22

Pamietam taka pewna zaleznosc ze studiow: liczba rdzeni procesujacych wplywa na wydajnosc tylko do pewnego momentu (zaleznego od aplikacji) i nie jest to zaleznosc liniowa; Wiekszosc dzisiejszych aplikacji pisana jest sekwencyjnie to fakt..ale jesli sie zastanowic,okaze sie,ze w wielu przypadkach inaczej byc nie moze, poniewaz instrukcja nastepna bazuje na wyniku poprzedniej. Stad nigdy (nawet przy maksymalnej wielowatkowosci kodu) nie bedziemy w stanie uzyskac rownania 4 rdzenie = 4*1 rdzen..

Bosman

24-03-2009 09:42

Z tekstu płynie sugestia, że procesor 4 rdzeniowy może być teoretycznie 4 razy szybszy niż jednordzeniowy o tych samych parametrach. Jednak mi się wydaje, że tego się nie da osiągnąć.

Przem0l

23-03-2009 18:07

fffatman: "W obecnym stanie, jeszcze na czterech rdzeniach systemy ekstensywnie przyspieszą, tylko, że na 8 już będą chodzić wolniej niż na 2.". Sam ględzisz głupoty. Mam kilkanaście serwerów z Xeonami gdzie są pojedyncze "quady" i (większość) podwójne, i nigdzie nie "zauważyłem" tego co napisałeś. Tak sie składa, że niektóre aplikacje powinny być jednowątkowe. Personalni mają syfny sofcik do rozliczania pracy pracowników i każda jego sesja zawala cały rdzeń, dlatego wrzuciliśmy go na oddzielną 8 rdzeniową maszynkę niech tam się mieli, przynajmniej TS się odmulił :D. Dość ciekawie zabrzmiało (w artykule), że pamięci muszą być szybkie i o niskich CL... a przeciez w serwerach są to moduły 667@5 i to w dodatku recc (co raczej nie przyśpiesza). Tam się liczy ilość, gdy kupujesz 2 szafy rackowe serwerów to nie patrzysz na wydajność pamięci (i tak nie włoży się szybszych niż 667) ale na ilość. Do tego wydajny system sieciowy i po sprawie. A dyski? Od tego są oddzielne macierze po FC. Żeby nie było, że mnie ten problem nie dotyczy: w domu mam wykręconego quada, 8 gb ramu i mnie też irytuje to olewactwo programistów. Nie dość, że nie tworzy się zbytnio softu (ani gier dla ścisłości) tylko pod 64 bity to jeszcze nie ma wielowątkowości. A przeciez (prawie) każdy komp kupiony na przestrzeni kilku lat ma 64 bitowy procek. A jak ktoś sępi paru złotych na wymianę sprzętu to wiadomo, że nie wyda kasy na gry czy programy (piractwo) więc nie widzę sensu "dbania" o taką klientelę. Przez nich cierpimy MY, którzy poszli z duchem czasu. Poza tym nas jest większość :D.

fffatman

23-03-2009 16:08

@aix: Nawet nie chciało ci się przeczytać, nie chodzi o wykorzystanie 1000 rdzeni w serwerach z czym Linux se radzi a Windows może se popatrzeć jak to się robi a o 4, 4 rdzenie do pracy na desku z którymi nie radzi se żaden system biurkowy, ani Linux, ani Windows, ani jakikolwiek i reszta oprogramowania im w tym nie pomaga. W obecnym stanie, jeszcze na czterech rdzeniach systemy ekstensywnie przyspieszą, tylko, że na 8 już będą chodzić wolniej niż na 2. @tad: Ględzisz.

Gość

23-03-2009 14:47

Efektywność wykorzystania więcej niż 2 rdzeni rdzeni i nowych rozkazów nowych procesorów jest słabiutka i zrobiona wielkim nakładem ręcznej pracy.

hifly

23-03-2009 14:47

Linux to, Microsoft tamto. Jeden ma drugi nie ma. Lubie go, nie lubie go! Darmowe rozwiązanie w prezencie od Intela, dla rozwiązań Open Souce. Intel Threading Building Blocks for Open Source [[www.threadingbuildingblocks.org]]

koczis

23-03-2009 13:33

Aix, mylisz pojęcia.Wykorzystywanie a obsługa to są dwie różne rzeczy.Linux obsługuje procesory wielordzeniowe tak samo jak Windows, ale co do wykorzystywania ich mocy i możliwości, przez aplikacje pisane na te systemy to jeszcze poczekamy i w jednym i w drugim przypadku.

~Gość

23-03-2009 12:59

dlatego m.in. Linux nie ma przyszłości, bo od zawsze nie zaprezentował narzędzi nawet o zbliżonej efektywności pracy dla firm dewloperskich jak Microsoft. Microsoft już ma kolejną generację narzędzi do tworzenia aplikacji zrównoleglonych na wielu poziomach, w tym dla naprawdę wielu rdzeni, z wykorzystaniem współczesnych architektur i języków. Linuks zostaje coraz bardziej ze swoimi częściowymi , choć standardowymi "rozwiązaniami". Chociaż same linuxy, jako systemy są OK, ale co z tego, skoro zwykle brakuje im ludzi i koniecznych lepszych systemów do rozwijania i tworzenia, od tych co ma konkurencja. Brakuje coraz bardziej, w kolejnych latach. Bo może to już jego wieczór.

Gość

23-03-2009 12:47

dlatego Linux nie ma przyszłości, bo od zawsze nie zaprezentował narzędzi nawet o zbliżonej efektywności pracy dla firm dewloperskich jak Microsoft. MIcrosoft już ma kolejną generację narzędzi do tworzenia aplikacji zrównoleglonych na wielu poziomach, w tym dla naprawdę wielu rdzeni, z wykorzystaniem współczesnych architektur i języków. Linuks zostaje coraz bardziej ze swoimi namiastkami. Chociaż sam, jako system jest OK, ale co z tego, skoro brakuje mu ludzi i koniecznych lepszych systemów, niż mają konkurenci. Brakuje coraz bardziej, w kolejnych latach. Bo może to juz koniec.

Gość

23-03-2009 12:45

dlatego Linux nie ma przyszłości, bo od zawsze nie zaprezentował narzędzi nawet o zbliżonej efektywności pracy dla firm dewloperskich jak Microsoft. MIcrosoft już ma kolejną generację narzędzi do tworzenia aplikacji zrównoleglonych na wielu poziomach, w tym dla naprawdę wielu rdzeni, z wykorzystaniem współczesnych architektur i języków. Linuks zostaje coraz bardziej ze swoimi namiastkami. Chociaż sam, jako system jest OK, ale co z tego, skoro brakuje mu ludzi i kluczowych systemów.

aix

23-03-2009 11:03

dlatego m.i. Linux jest przyszłością. Już od dawna wykorzystuje wszystkie rdzenie.

Polecane

Przełomowy rok... znowu

Lektura firmowych informacji prasowych i prognoz firm analitycznych nie pozostawia wątpliwości - każdego roku...


Spokój i luz administratora

Wymagania wobec pracowników działów IT rosną proporcjonalnie do stopnia rozwoju teleinformatyki. Oczekuje się, że...


04-204 Warszawa ul. Jordanowska 12
tel.: (+48 22) 321 78 00 fax: (+48 22) 321 78 88
© copyright 2011 IDG Poland SA