Programistów czeka sporo pracy

Anwar Gholoum, jeden z inżynierów zatrudnionych w intelowskim Laboratorium Technologii Mikroprocesorowych, opublikował na oficjalnym blogu Intela wpis, w którym zwraca programistom uwagę na poważne zmiany, jakie zajdą w najbliższych latach.

Gholoum wspomina o rozmowach, jakie toczy z innymi inżynierami. Z jednej strony od lat mówi się o tym, że osoby rozwijające oprogramowanie starają się jak najmniejszym kosztem przystosować je do pracy na dwu czy czterordzeniowych procesorach. Z drugiej zaś, inżynierowie już dyskutują o procesorach przyszłości, zawierających dziesiątki, setki, a nawet tysiące rdzeni. W przypadku takich procesorów taktyka "oszczędnego" programowania się nie sprawdzi.

Obecnie programiści w dość prosty sposób przystosowują np. gry napisane dla procesorów jednordzeniowych, do współpracy z czterordzeniowymi układami. Wystarczy, że "rozbiją" pojedynczy wątek na kilka oddzielnych: jeden odpowiedzialny za przetwarzanie muzyki, drugi za grafikę, trzeci za sztuczną inteligencję. Taka taktyka zapewnia spore oszczędności, gdyż "rozbite" wątki korzystają z pierwotnego kodu pojedynczego wątku, więc ich przygotowanie nie wymaga dużo pracy. Zmiany takie powodują pewne zwiększenie wydajności, gdyż każdy z wątków może być przetwarzany przez osobny rdzeń. Jeśli zatem rozdzielimy oryginalny wątek na 4, to będą one korzystały z 4 i tylko z 4 rdzeni.

Reklama

Gholoum uważa, że programiści powinni przygotować się do całkowitej zmiany podejścia. Tak naprawdę procesory przyszłości będą wymagały przepisania niemal całego kodu tak, by każdy z wątków mógł skorzystać z dowolnej dostępnej liczby rdzeni. Dopiero wtedy w pełni wykorzystamy wydajność wielordzeniowych procesorów.

Już w tej chwili istnieją techniki, które działają właśnie w ten sposób. Bardzo dobrze skaluje się ray tracing, czyli śledzenia światła w wirtualnych scenach. Wykorzystywane w tym przypadku algorytmy są tak skonstruowane, że dołożenie kolejnych rdzeni powoduje zwiększenie prędkości przetwarzania, gdyż potrafią one skorzystać z dodatkowych mocy obliczeniowych.

Większość aplikacji jest jednak napisanych tak, że ich skalowanie będzie wymagało olbrzymiego nakładu pracy. Tym bardziej, że zarówno współczesne narzędzia developerskie i testowe oraz języki programowania są mocno zorientowane na przetwarzanie jednowątkowe.

Gholoum zauważa, że programiści specjalizujący się w rynku HPC (high-performance computing) od lat wiedzą o problemach związanych z przetwarzaniem wielowątkowym. Osoby programujące na rynek konsumencki jak dotąd nie przejmowały się kłopotami, z jakimi musieli zmagać się ich koledzy oprogramowujący potężne klastry. W najbliższych latach może się to zmienić.

Mariusz Błoński

kopalniawiedzy.pl
Dowiedz się więcej na temat: Michał Czekaj
Reklama
Reklama
Reklama
Reklama
Reklama
Strona główna INTERIA.PL
Polecamy