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.
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.
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