next up previous contents
Next: Opis języka dla maszyny Up: Obliczenia równoległe Previous: Fork95   Spis rzeczy


Berkeley NOW

Network of Workstations (NOW) jest systemem klastrowym stworzonym na Uniwersytecie w Berkeley ([1], [3], [8]). Przedstawia on odmienne podejście do budowy i programowania maszyn równoległych od przedstawionego w poprzednich rozdziałach.

U podstaw jego powstania leżały następujące założenia.

Bazując na tych założeniach naukowcy z Berkeley stworzyli klastrowy system złożony z ponad stu maszyn połączonych siecią Myrinet. Aby przyspieszyć komunikację sieciową zastosowano specjalne karty sieciowe (Myricom ,,Lanai'') charakteryzujące się między innymi własnym szybkim procesorem oraz pamięcią. Sieć ma strukturę drzewiastą. W każdym z liści tego drzewa znajdują się stacje robocze, w każdym z węzłów wewnętrznych są natomiast szybkie przełączniki sieciowe.

Jeśli chodzi o oprogramowanie, to podstawą jest system operacyjny Solaris pracujący na każdej ze stacji roboczych. Za pomocą dodatkowej, zbudowanej na nim warstwy zwanej Global Layer Unix (GLUnix) wzbogacony został o dodatkowe funkcje takie jak:

globalne zarządzanie procesami:
dodano możliwość globalnego zarządzania programami uruchomionymi w klastrze. Obejmuje to uruchamianie procesów, ich identyfikację (globalny pid), zarządzanie (komendy kill i ps) i komunikację;
globalny system plików:
system ten jest zbudowany na podobnej zasadzie co RAID8 . Pliki są rozproszone wśród węzłów sieci. Przy próbie dostępu do danych z dysku przez proces pracujący na jednej maszynie operacje są wykonywane przez różne fizyczne maszyny, co w znacznym stopniu niweluje duży czas dostępu do dysku (czas ten jest większy od czasu operacji sieciowych). Dodatkowo można wykorzystać pamięć buforową maszyn (w której można w ten sposób zmieścić na przykład cały, duży plik a nie tylko jego fragment);
globalna pamięć wirtualna:
idea standardowej pamięci wirtualnej opiera się na tym, że w przypadku braku pamięci operacyjnej niewykorzystywane w danym momencie dane są zapisywane na dysk komputera, a następnie zwalniana jest pamięć przez nie zajmowana. Przy próbie dostępu do nich są one następnie wczytywane z dysku. Ponieważ operacje dyskowe są ,,powolne'', w przypadku programów operujących na dużych ilościach pamięci, może to spowodować istotne zmniejszenie wydajności nie tylko danego programu, ale też całego systemu. Jednocześnie -- zgodnie z jednym z powyższych założeń -- prawie na pewno w sieci znajdują się maszyny, których pamięć pozostaje niewykorzystana. Naturalną konsekwencją staje się próba jej użycia. Otrzymuje się w ten sposób dużo większą pamięć niż ta dostępna na pojedynczej stacji roboczej zyskując przy tym na czasie przy próbie korzystania z pamięci wirtualnej.

Na poszczególnych stacjach roboczych można uruchamiać standardowe aplikacje, jednakże system służy głównie do uruchamiania programów, które będą umiały wykorzystać jego architekturę. Podstawowym narzędziem do komunikacji między- i wewnątrzprocesowej są Active Messages (AM). System AM przypomina uproszczoną wersję zdalnego wołania procedur (RPC9). Zapewnia między innymi wykrywanie błędów oraz ponawianie transmisji pomiędzy interfejsami sieciowymi w przypadku błędu. Dostępne są trzy klasy komunikatów:

Na bazie AM zbudowano implementację MPI10 umożliwiającą w prostszy sposób wykorzystanie mechanizmu komunikatów.

Reasumując, schemat programowej realizacji NOW przedstawia rysunek 3.

Rysunek 3: Schemat modelu programowego NOW



\resizebox* {0.9\textwidth}{!}{\includegraphics{rys3.eps}}



Testy wykonane przez autorów systemu pokazały, że implementacja ta jest w stanie konkurować z dużymi i bardzo drogimi superkomputerami, na przykład Cray T3D. Uzyskuje się przy tym zdecydowanie lepszy współczynnik wydajności do ceny. Dodatkowo system ten jest w prosty sposób skalowalny przez dołożenie kolejnych maszyn.

System ten różni się od przedstawionego w punkcie 2.1.1 modelu maszyny PRAM. Posiada on jednak wiele cech z nią wspólnych. Pierwszą z nich jest współdzielenie przez wszystkie procesory rzeczywiste pamięci całego systemu. Nie są one co prawda taktowane wspólnym zegarem, jednak za pomocą odpowiedniego oprogramowania można zapewnić synchronizację. Automatyczne rozpraszanie procesów między poszczególne maszyny w istotny sposób ułatwia realizację zbalansowanego wykorzystania poszczególnych elementów systemu.



next up previous contents
Next: Opis języka dla maszyny Up: Obliczenia równoległe Previous: Fork95   Spis rzeczy
Łukasz Maśko
2000-04-17