o serwisie | redakcja | reklama | kontakt
szukaj w serwisie
Spis treści

Indeks działów

 
Czy Intel może podać przykład „killer app”, programu, który idealnie wykorzystuje wielowątkowość i ma szansę przekonać do siebie duże rzesze użytkowników?

Klasycznym przykładem jest praca nad obrazem – proces ten doskonale się skaluje, a samo rozbicie go na równolegle wykonywane wątki jest bardzo proste. Należy jednak pamiętać, że im więcej rdzeni jest wykorzystywanych, tym więcej mocy obliczeniowej pochłania synchronizacja ich działań. Dlatego dla większej liczby rdzeni skalowalność nie jest idealna.

Z punktu widzenia użytkowników nie tylko szybsze działanie pojedynczej aplikacji może być ogromną zachętą do korzystania z procesorów wielordzeniowych. Możliwość równoległego, szybkiego wykonywania programów i bezproblemowego korzystania z wymagających aplikacji, podczas gdy w tle system antywirusowy skanuje dysk twardy, także jest wielką zachętą dla konsumentów, którzy przyzwyczaili się do korzystania z kilku programów równocześnie.

Z drugiej strony na programistów chcących korzystać z wielowątkowości czyhają pułapki, szczególnie w przypadku programów, które operują na tym samym zestawie danych. Aplikacja musi śledzić kolejność dostępu do obrabianych danych, tak by każda operacja wykonywana była dopiero po zakończeniu poprzedniej. Prowadzi to do sytuacji, w których jeden rdzeń musi czekać z rozpoczęciem obliczeń, aż wątek zostanie zwrócony przez inny rdzeń, a ten nie może zacząć pracy, zanim dane nie zostaną obrobione przez wątek uruchomiony na trzecim rdzeniu.

Najciekawsze jest to, że problemy te zostały już rozwiązane, i to dobrych 50 lat temu, przez programistów uniksowych tworzących oprogramowanie biznesowe. Wiedza o tym nie jest powszechna, bo deweloperzy programujący mainframe'y byli kreowani na elitę, natomiast programiści pracujący z oprogramowaniem na komputery osobiste byli traktowani trochę z przymrużeniem oka. Wiedza o programowaniu wielowątkowym nie przedostała się do specjalistów od PC, ponieważ na początku nie była im w ogóle potrzebna – pamiętajmy, że era wielu rdzeni w konsumenckim środowisku x86 zaczęła się tak naprawdę dopiero kilka lat temu.

W Intelu wierzymy, że proces zmiany nawyków programistów potrwa jeszcze cztery – pięć lat.

Czy nie jest to zbyt optymistyczna prognoza? Gdy w sprzedaży pojawiły się procesory dwurdzeniowe, spodziewano się, że ich możliwości zostaną szybko wykorzystane przez programistów gier. Tymczasem minęły lata, a tytuły prawdziwie wielowątkowe można policzyć na palcach jednej ręki...

Problem polega na tym, że przy tworzeniu gier potrzeba tak naprawdę dwóch zespołów programistów, bo wykorzystywane są dwa modele programowania: jeden dla CPU, drugi dla GPU.


Czy Intel w takim razie nie działa na swoją niekorzyść? Przecież architektura przyszłych procesorów ma być heterogeniczna?

Nie mogę co prawda udzielać informacji o produktach, których jeszcze nie ma na rynku, ale mogę podzielić się swoimi przemyśleniami. Czy może istnieć procesor, którego jeden z rdzeni znakomicie radzi sobie z generowaniem grafiki, drugi przystosowany jest do wykonywania dużej liczby obliczeń, a trzeci jest zoptymalizowany na przykład do wykonywania aplikacji zajmujących się rozpoznawaniem mowy? Myślę, że w przyszłości jak najbardziej będzie to możliwe. Będą to jednak zintegrowane rozwiązania, korzystające z tego samego modelu programowania i tych samych instrukcji, dzięki czemu wykorzystanie ich mocy będzie bardzo łatwe. To jest przyszłość.

Obsługa instrukcji x86 to także wielka siła projektu Larrabee: takie rozwiązanie pozwoli twórcom gier pracować wydajniej i taniej, ponieważ potrzebny będzie tylko jeden zespół zamiast dotychczasowych dwóch. To oznacza duże zmiany dla całego przemysłu.

Sam pomysł powstał na samym początku kariery PC, ale ograniczały nas możliwości techniczne. Teraz, gdy możemy produkować procesory składające się z miliardów tranzystorów, możemy pokusić się o dodanie specjalizowanych bloków, zaprojektowanych do wykonywania specyficznych zadań.

Wielowątkowość to niejedyna idea, do której Intel stara się przekonać programistów. Jak posuwają się prace nad „zielonym programowaniem”?

Rzeczywiście, prowadzimy taki projekt dla Linuksa. Staramy się pokazać, w jaki sposób powinno się programować, aby maksymalnie zmniejszyć zużycie energii potrzebnej do wykonania programu. Jest to szczególnie ważne w przypadku pracy na urządzeniach przenośnych, na przykład na bijących rekordy popularności netbookach, bo w bezpośredni sposób przekłada się to na długość pracy na bateriach.

Jest wiele możliwości oszczędnego wykorzystywania mocy obliczeniowej procesora. Jeśli aplikacja nie wykonuje skomplikowanych obliczeń, można obniżyć częstotliwość zegara, z drugiej strony warto wykonać kod jak najszybciej, a następnie uśpić procesor.

Nasze pomysły i sposoby na zmniejszenie energochłonności aplikacji włączamy do narzędzi deweloperskich, tak by mogli z nich korzystać wszyscy programiści.

Wspomagamy także programistów w pracach nad oprogramowaniem wykorzystującym możliwości naszych platform, na przykład vPro, oraz staramy się pokazywać im, jak wykorzystać możliwości oferowane przez wirtualizację.


Zobacz komentarze do artykułu / 0
Wersja do druku

Przeczytaj również...

Zaloguj się, aby móc dodawać komentarze.

Login
Hasło
Zarejestruj się
Zapomniałem hasła
  Ostatnio komentowane
  Ostatnio na forum
więcej »
strona główna | o serwisie | redakcja | reklama | kontakt