Reklama
aplikuj.pl

Swarm – przyszłość obliczeń równoległych

Od lat wzrost mocy obliczeniowej komputerów w większym stopniu opiera się zwiększeniu ilości rdzeni procesora niż na przyspieszaniu pracy pojedynczego rdzenia. Bo tak jest łatwiej. Tendencja ta widoczna jest zwłaszcza w procesorach do zadań profesjonalnych – niedawno pisaliśmy o chińskim superkomputerze zbudowanym z 260-rdzeniowych procesorów. Choć 260 to rekord w procesorze wykorzystywanym komercyjnie, to niedawno w University of California stworzono prototypowy procesor o tysiącu rdzeni.

Jednak nie tylko sama ilość rdzeni jest ważna. Ważne jest również to, żeby wykonywane zadanie dało się pomiędzy nie podzielić. Choć niektóre problemy, takie jak rendering, z łatwością można dzielić na tysiące, czy setki tysięcy wątków, to wiele algorytmów, także używanych na co dzień, uchodzi za trudne w paralelizacji – zbyt dużo w nich bowiem zależności.

W przyspieszeniu algorytmów uchodzących za trudne do zrównoleglenia pomóc ma właśnie opracowany na MIT procesor Swarm. Składa się on z „zaledwie” 64 rdzeni, jednak zawiera także rozwiązania sprzętowe dedykowane zarządzaniu obliczeniami równoległymi.

Specjalne obwody analizują program i dzielą go na mniejsze części, które mogą zostać wykonane równolegle przez osobne rdzenie. Części te mogą zawierać nawet po kilkadziesiąt instrukcji, podczas gdy współczesne procesory wielordzeniowe, aby opłacało się w ogóle dzielić program pomiędzy rdzenie, muszą otrzymywać go w kawałkach o długości tysięcy instrukcji.

Funkcje zaimplementowane sprzętowo w procesorze Swarm nie tylko dzielą program na mniejsze wątki i zarządzają ich wykonaniem, ale pilnują również, aby nie dochodziło do konfliktów w zapisie do pamięci, kiedy fragmenty kodu chciałyby edytować wartość tej samej zmiennej w niewłaściwej kolejności.

Zwykle, aby kod mógł być wydajnie wykonywany równolegle, wymaga to dużego nakładu pracy programisty. Dzięki sprzętowej automatyzacji pewnych procesów, nakład ten ma zmniejszyć się około dziesięciokrotnie. Co więcej, uzyskany kod ma być także szybszy. Badacze testowali Swarm w różnych zastosowaniach, analizie grafów, symulacjach i bazach danych, za każdym razem uzyskując wzrost szybkości. Wspomagana sprzętowo wielowątkowość okazała się szybsza od czysto programowej od 3 do 18 razy. Wyniki stają się jeszcze ciekawsze, kiedy porównamy wielowątkowość procesora Swarm z szybkością algorytmów jednowątkowych. Tutaj wzrost prędkości wynosi 43 do 117 razy.

Na razie nie wiemy kiedy rozwiązania opracowane w ramach projektu Swarm zostaną skomercjalizowane, ani czy w ogóle któryś z dużych producentów procesorów się nimi zainteresuje. Miejmy jednak nadzieję, że potencjalne zyski, liczone w miliardach dolarów, zachęci któregoś z graczy.

[źródło i grafika: gizmag.com]