Intel ułatwi pracę programistom
Pojawienie się wielordzeniowych procesorów nie oznacza, że nasze komputery stają się znacznie bardziej wydajne. Procesory te trzeba oprogramować, a to potrafi niewielu programistów na świecie. Z jeszcze większymi problemami spotkamy się w przyszłości, gdy na rynek trafią układy o liczbie rdzeni wahającej się od 16 po kilkaset. Z wykorzystaniem potencjału takiej kości nie poradzi sobie żaden specjalista.
Problem ten próbują rozwiązać najwięksi gracze na rynku IT. Jeszcze w bieżącym roku Intel zaprezentuje swój projekt badawczy znano jako Ct (C for Throughput). To automatyczne narzędzie, które ma sprawić, że liczne kompilatory C i C++ będą współpracowały z procesorami wielordzeniowymi i umożliwią równoległe przetwarzanie.
Programista, by przygotować program do przetwarzania równoległego, musi najpierw zidentyfikować te fragmenty kodu, które najwięcej na tego typu obliczeniach zyskają, a następnie wyizolować je z całości. Dla każdej rodziny procesorów i dla różnej liczby rdzeni trzeba robić to oddzielnie.
Ct, jak zapewnia Intel, zrobi to wszystko automatycznie i zoptymalizuje kod do współpracy z wielordzeniowymi układami nawet bez konieczności jego ponownej kompilacji. Ct korzysta z techniki SIMD (Single Instruction, Multiple Data), która umożliwia osiągnięcie równoległego przetwarzania danych. Warto tutaj przypomnieć, że koncern próbuje zastosować SIMD również w sprzęcie.
Co więcej Ct jest kompatybilne wstecz z każdym programem napisanym dla procesorów x86. Z zalet układów wielordzeniowych będą mogli skorzystać też np. posiadacze oprogramowania z lat 80. ubiegłego wieku. Jak podkreśla Intel, Ct będzie działało z każdym procesorem x86, niezależnie od jego producenta.
Projekt Ct może przynieść Intelowi olbrzymie zyski. Powstał bowiem w dużej mierze z myślą o wykorzystaniu go w kości Larrabee, będącej połączeniem procesora (CPU) z procesorem graficznym (GPU). Larrabee będzie pierwszym samodzielnym układem graficznym Intela od czasu i740. Jego debiut będzie oznaczał, iż Intel stanie się bezpośrednim konkurentem Nvidii i AMD na rynku układów graficznych. Stąd też zapotrzebowanie na Ct. Przenosimy cały ekosystem x86 na rynek układów graficznych - stwierdził jeden z inżynierów Intela.
Na razie nie wiadomo, w ile rdzeni zostanie wyposażony Larrabee. Z nieoficjalnych informacji wynika, że kość, która zadebiutuje w przyszłym roku, będzie miała ich 16. Z kolei każdy z nich może obsługiwać 4 wątki. Oznacza to jednoczesną obsługę 64 wątków. Jeśli Prawo Moore'a ma nie stracić na ważności, to około roku 2013 na rynek powinny trafić układy obsługujące 256 wątków. Upowszechnienie się projektów takich jak Ct, czy konkurencyjne CUDA lub OpenCL pozwoli programistom nie przejmować się rosnącą liczbą rdzeni.
Komentarze (5)
programista, 21 kwietnia 2009, 20:59
Ach ten intel, i po co to ? I tak korzystam z visual studio i tam już na pewno m$ zadba o kompilator który automatycznie po wybraniu odpowiednich bloków kodu skompiluje je tak aby działały na maksymalnej ilości rdzeni. Teraz są 2, 4 rdzenie dostępne to jeszcze nie jest źle( dla programisty), ale gdy będzie ich 16 , 32 lub 128 to jest oczywiste że to musi robić kompilator bo nikt przy zdrowych zmysłach nie bedzie się pakował w ręczne oprogramowanie takiego czegoś.
Jurgi, 21 kwietnia 2009, 22:12
Ja się tak zastanawiam, w jakich typach oprogramowania wykorzystanie mocy wielu rdzeni przyda się konkretnie. Tak mi jakoś wychodzi, że są to (głównie, bo pewnie nie jedynie) zastosowania multimedialno-obliczeniowe, czyli te, które korzystają na przetwarzaniu przez karty graficzne (streamy i inne cuda ), które wielordzeniowe są z natury rzeczy. Czy zatem wielordzeniowość CPU przyniesie jakieś namacalne korzyści przeciętnemu użytkownikowi? Czy nie lepiej od razu ujednolicić standardy i zrzucić takie zadania na GPU?
(Oczywiście duża liczba rdzeni może być doskonała w konkretnych zastosowaniach, np. serwerowych, ale pisałem rozmyślnie ograniczając się do przeciętnego, domowego desktopa/laptopa/netbooka).
Może się mylę, może skomentuje to jakiś zaawansowany programista?
w46, 22 kwietnia 2009, 08:38
Ekstra, można będzie bez problemu odpalać aplikacje stworzone na np 2 rdzenie na maszynach 20 rdzeniowych uzyskując prawie 10 krotne zwiększenie wydajności (oczywiście nie we wszystkich zastosowaniach).
W uproszczeniu można powiedzieć - oprogramowaniu które wymaga dużo mocy obliczeniowej. Wszelkiego rodzaju przetwarzanie danych. W domowych zastosowaniach takie operacje to głownie multimedia ale nie tylko, zaawansowane programy obliczeniowe, gry, aplikacje bazodanowe, symulacyjne, graficzne, antywirusy itd Czyli wszystko to co zamula na słabszym sprzęcie
Szaman, 22 kwietnia 2009, 08:53
GCC bedzie (a moze juz potrafi?) tak kompilowac petle by wykonywaly sie wielowatkowo (oczywiscie te ktore mozna), wiec rozumiem, ze jesli petla wykona sie 64-watkowo to scheduler powinien je rozstrzelic na 64 rdzenie.
Szczegoly: http://gcc.gnu.org/wiki/Graphite/Parallelization
wilk, 22 kwietnia 2009, 20:45
Standardy POSIX Threads czy OpenMP nie są nowością. Winę ponoszą programiści niechętni do wyodrębniania nadających się fragmentów. Tak samo z SIMD korzysta wiekowe MMX czy SSE.