Krótka historia masowego przetwarzania równoległego

Cała sprawa zaczęła się zgoła niewinnie. Profesor Gerald Sussman, pracujący w Massachusetts Institute of Technology (MIT) i zajmujący się problematyką sztucznej inteligencji, namówił grupę studentów do zaprojektowania całkowicie nowego typu komputera. Zasugerował, aby zbudować maszynę, całą wypełnioną procesorami pracującymi równocześnie i komunikującymi się ze sobą. Ten pomysł, rzucony w początkach lat 80. wydaje się być milowym krokiem w rozwoju soft- i hardware'u.

Cała sprawa zaczęła się zgoła niewinnie. Profesor Gerald Sussman, pracujący w Massachusetts Institute of Technology (MIT) i zajmujący się problematyką sztucznej inteligencji, namówił grupę studentów do zaprojektowania całkowicie nowego typu komputera. Zasugerował, aby zbudować maszynę, całą wypełnioną procesorami pracującymi równocześnie i komunikującymi się ze sobą. Ten pomysł, rzucony w początkach lat 80. wydaje się być milowym krokiem w rozwoju soft- i hardware'u.

MPP

Sposób działania komputera, określany mianem masowego przetwarzania równoległego MPP (Massive Parallel Processing), przypomina fabrykę wypełnioną tysiącami równoległych linii produkcyjnych, na których produkt (czyli w tym przypadku dane) obrabiany jest w pewnym stopniu na każdym stanowisku, a następnie przekazywany do dalszej obróbki w pożądane miejsce linii produkcyjnej (w przód lub tył).

Starając się ująć problem w bardziej naukowe terminy, należy wspomnieć o superpipeliningu, czyli specyficznym sposobie pracy grupy procesorów. Polega on na tym, że gdy ktoryś z procesorów kończy obrabianie porcji danych, przekazuje wyniki do pamięci i pobiera z niej kolejne dane, mające podlegać przetwarzaniu według schematu zadanego tylko temu procesorowi - nie czekając na dokończenie operacji przez inne procesory.

Prawidłowa praca takiego komputera zależy w mniejszym stopniu od zalet sprzętu (wydajności mikroprocesorów i wewnętrznej komunikacji). O wiele istotniejsze jest przemyślane zarządzanie procesorem obliczeniowym. Chodzi przede wszystkim o tak zaprojektowane oprogramowanie, aby umiało rozdzielać zadania komputera tak, by najefektywniej wykorzystać posiadane przez komputer procesory.

Thinking Machines

W 1983 r. grupa zwołanych przez Sussmana zapaleńców (w tym Danny Hillis, Cliff Lasser i wielu innych) opuściła MIT i założyła własne przedsiębiorstwo. Nazwali je Thinking Machines (ThM). Na początku korzystali z funduszy uzyskanych od jednej z wyspecjalizowanych agencji Pentagonu - DARPA (Defence Advanced Reaserch Projects Agency) oraz od kilku komercjalnych inwestorów. Obecnie ThM zatrudnia 500 pracowników wypłacając rocznie około 90 mln USD pensji.Konstruktorzy w ciągu trzech lat przygotowali pierwszy pracujący model i obdarzyli go mianem Connection Machine 1 (CM1). Sądzili, że ich nowa maszyna będzie mogła rozpoznawać obiekty lub imitować procesy ludzkiego myślenia (wykorzystując powiązania pomiędzy tysiącami procesorów - węzłów). CM1 mogła być programowana tylko w języku LISP, ulubionym języku badaczy sztucznej inteligencji, ale prawie nigdy nie używanym w zastosowaniach przemysłowych. Pracownicy ThM nigdy nie przypuszczali, że CM kiedykolwiek mogłaby być używana do przetwarzania ogromnych ilości danych - czyli do zadań wykonywanych zazwyczaj przez superkomputery. Poza tym pisanie programu, który dzieliłby pojedynczy, złożony problem pomiędzy tysiące procesorów maszyny wydawało się być zadaniem mało interesującym dla byłych teoretyków z instytutów badawczych.

Sytuacja zmieniła się radykalnie wraz z dołączeniem do ThM noblisty z 1965 r., fizyka Richarda Feynmana. Wybitny uczony bardzo szybko zauważył, że CM może stać się bardzo przydatna w rozwiązywaniu wielu standardowych problemów fizycznych, które często polegają na przeprowadzaniu kilku podstawowych obliczeń dla dużej ilości różnych danych. Na przykład, o wiele łatwiej można przeprowadzić symulację zachowywania się giętego czy rozciąganego pręta metalowego (przedstawiając metal jako sieć punktów). Tradycyjny komputer powtarzał zestaw obliczeń dla danych z każdego punktu po kolei. Nowa wartość każdego punktu sieci, oddziałując na sąsiednie punkty powodowała konieczność ponownego przeliczania danych dla każdego punktu wraz z każdym symulowanym krokiem w czasie. CM mogła dokonać obliczeń dla całego pręta w jednym kroku, pracując tysiącami procesorów równocześnie i przechowując dane z każdego punktu sieci w części pamięci obsługiwanej przez odpowiedni procesor oraz dzieląc się nimi z procesorami, zajmującymi się sąsiednimi punktami. Tego obliczenia CM dokonała z prędkością 120 Mflops, co odpowiadało szybkości działania ówcześnie pracujących superkomputerów (1 Mflops = 1 mln operacji zmiennoprzecinkowych na sekundę). Fakt, że komputer wykonał zadanie zaszokował pracowników ThM, tym bardziej, że pisząc program traktowali to jako rodzaj żartu. Ale żart ten stał się początkiem awansu Thinking Machines z peryferii w główny nurt komputerowego rynku. Po stopniowych przemyśleniach pracownicy ThM porzucili dawny pogląd, iż tylko niewiele problemów da się efektywnie rozwiązać za pomocą MPP. Wprost przeciwnie, zdumiewająco wiele zadań nadaje się do przetwarzania równoległego.

Connection Machine

Pierwszy pracujący model (CM1) zawierał 65 536 stosunkowo prymitywnych procesorów (zamiast wymarzonego miliona), ale otworzył drogę dla kolejnych wersji komputera. W każdej następnej maszynie wzrastała znacznie moc i stopień komplikacji procesorów (a wraz z tym również rosła cena), a jednocześnie malała ich liczba. W ostatniej wersji - CM5 - każdy spośród maksymalnie 1024 węzłów składa się z procesora Sparc produkcji Sun Microsystems i czterech procesorów wektorowych, całość obdarzona 60 MB pamięci (60 razy więcej niż w CM1) o szczytowej prędkości 128 Mflops. Nie jest to tani sprzęt - CM5 w pełnym wymiarze kosztuje blisko 10 mln USD - i jest to poważna bariera dla firmy, która chciała by się podjąć budowy CM wyposażonej w 16tys węzłów, ale nie ma klienta z ok. 200 mln USD. Lista odbiorców maszyn pracujących "równolegle" jest mimo to imponująca. Są to głównie uniwersytety i centra badawcze, jak np. laboratoria w Los Alamos (USA), francuskie Centrum Równoległego Przetwarzania czy Centrum Badań Jądrowych w J?lich (Niemcy) - ale również i firmy wykorzystujące CM do celów komercyjnych. Np. duże kompanie naftowe w poszukiwaniach ropy posługują się symulacją profili geologicznych, Dow Jones (dostarczający m.in. serwis informacji finansowych) używa CM do przeszukiwania bardzo dużych baz danych. Ostatnio CM5 zakupił American Express, ale nie zdradził sposobu jej wykorzystania.

Nie tylko ThM

W tym samym 1983 r., z łona California Institute of Technology wynurzyła się firma Ncube, takoż zajmująca się przetwarzaniem równoległym. A ostatnie dwa lata przyniosły nowiny, że w takich gigantach, jak Intel, Cray czy IBM trwają prace konstrukcyjne nad własnymi komputerami do masowego przetwarzania równoległego.

Różnice

ThM rozpoczynały od bardzo dużej liczby "słabych" procesorów, podczas gdy np. Intel czy Ncube startowały od zestawu 16 lub 32 (obecnie do 64, okazjonalnie kilkuset) relatywnie wydajnych procesorów, a w zasadzie tradycyjnych stacji roboczych, połączonych do pracy równoległej. To nieodwołalnie prowadzi do zapotrzebowania na specyficzny software.

ThM jako pierwsze wprowadziły technikę SIMD (Single Instruction Multiple Data), polegającą na rozdzielaniu danych pomiędzy procesory, które następnie wykonują kolejne (te same) instrukcje programu. Dla podejścia SIMD właściwe jest porównanie z fabryką, w której wiele równoległych linii montażowych wykonuje identyczny cykl produkcyjny. Natomiast technikę MIMD (Multiple Instruction Multiple Data), reprezentowaną przez Intel i Ncube, należałoby raczej wyobrazić sobie jako fabrykę, w której równocześnie, w swoim tempie, małe zespoły pracują nad różnymi częściami produktu finalnego. Gdy jeden z nich zakończy czynność, przekazuje rezultat kolejnej grupie, itd., aż produkt będzie ostatecznie gotowy. Innymi słowy, w MIMD pomiędzy procesory rozdzielane są nie dane, ale podprocedury programu. Każdy procesor jest programowany niezależnie.

Mówi się, że MIMD jest naturalniejszym krokiem w odchodzeniu od tradycyjnego programowania. Wielu zwolenników tego podejścia wskazuje też, że istnieją zagadnienia, dla których SIMD nie byłby najwłaściwszym sposobem działania, np. gra w szachy czy programy, w których mała grupa danych musi być potraktowana inaczej niż reszta. Ot, choćby model klimatu, w którym np. obliczenia dla małego obszaru zakrytego przez chmury mogą zostać wykonane przez kilka procesorów, a pozostałe wtedy tylko markują czas - co oczywiście spowalnia wykonywanie programu. Naturalnie, wyznawcy SIMD nie pozostają dłużni, wykazując w MIMD jako poważną trudność konieczność panowania przez programistę nad tym, co w danej chwili wykonuje każdy procesor. Ale, jak mawia Robert Hyatt, programista z uniwersytetu w Montgomery (Alabama, USA), wolałby pisać program na komputer Cray Y-MP C90, bo jeżeli tratować puszczę, to z 16 słoniami, a nie z 16 tys. małych psów. Cóż, starożytni powiadali: de gustibus...

Utrudnione porozumiewanie

Jako się rzekło, specyficzna architektura wewnętrzna komputerów poszczególnych firm wymaga specyficznego oprogramowania. W połowie lat 80., gdy CM była programowana tylko w języku Lisp, zaistniała potrzeba przygotowania kompilatora do Fortranu, aby maszyna mogła wyjść z zaciszy laboratoriów na rynek. Była to poważna praca - ostatnia wersja kompilatora liczy około 600 tys. linii programu. Pod naciskiem rynku powstawały również kolejne kompilatory dla nowej wersji języka, tzw. Fortran-90, który już zawierał instrukcje zaprojektowane specjalnie z myślą o masowym przetwarzaniu równoległym. Stworzono również nową, specjalną wersję języka C, tzw. C* (C-star). Jednak, ponieważ przeważająca część istniejącego oprogramowania nie jest napisana w C* czy Fortranie-90, ale we wcześniejszych ich wersjach, zatem nadal istnieje potrzeba rozbudowy narzędzi do automatycznego tłumaczenia instrukcji z języków tradycyjnych na odpowiadające im w przetwarzaniu równoległym. Ostatnio zaś trwają prace nad stworzeniem uniwersalnego języka, pozwalającego programować sprzęt zarówno SIMD jak i MIMD - tzw. High Performance Fortran. Sprawa ta jest niesłychanie ważna, gdyż np. CM5 pracująca teoretycznie z wydajnością 130 Gflops, w zetknięciu z życiowymi problemami wykorzystuje tylko ułamek swych reklamowanych możliwości. Wszystko z powodu dotkliwego braku naprawdę efektywnego oprogramowania, przeznaczonego specjalnie dla tych maszyn, a nie bazującego na dawnych wersjach programów.

(ms, wg."New Scientist")

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200