Wielordzeniowe procesory to nowe wyzwanie
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.
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.
Komentarze (11)
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..
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ąć.
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.
@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.
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.
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]]
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.
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.
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.
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.
dlatego m.i. Linux jest przyszłością. Już od dawna wykorzystuje wszystkie rdzenie.
- Kingston: Nowa linia dysków SSD
- Microsoft zapowiada nowy system plików - ReFS
- Intel: SSD 520 - nowa linia szybkich dysków
- Praktyczne porady dla administratorów na 2012 rok
- Co powinien wiedzieć każdy specjalista IT?
- Narzędzia dla administratorów sieci
- Windows Intune 3.0 - szansa na perfekcyjne narzędzie?
- Kontrowersyjne decyzje Oracle odnośnie Javy
- Testy penetracyjne pomogą w obronie przed cyberatakami
- MSP: kierunki rozwoju technologii w 2012 roku
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...