W wielości procesorów siła

Architektura S2MP - klucz do skalowalności i prostoty programowania systemów wieloprocesorowych

Architektura S2MP - klucz do skalowalności i prostoty programowania systemów wieloprocesorowych

Latem 1996 roku Silicon Graphics Inc. i Cray Research Inc. połączyły swe siły (łącząc firmy) w celu wykorzystania własnych doświadczeą dla stworzenia nowych generacji systemów obliczeniowych wielkiej mocy. Sukcesy Cray Research, najbardziej znanego producenta superkomputerów największej mocy, oparte były nie tylko na mocy pojedynczych procesorów, ale w równie znaczącym stopniu na prędkości dostępu do pamięci i innych zasobów maszyny. Silicon Graphics ze swoim nowatorskim podejściem stworzenia tanich komputerów wieloprocesorowych, dających się programować równie łatwo jak stacje robocze, zawojowała rynek, w ciągu dwu lat przechodząc od nieistnienia do pierwszej pozycji na liście 500 najszybszych komputerów świata. Wprowadzona na rynek 7 października 1996 r. nowa rodzina serwerów Origin 200, Origin 2000 i CRAY Origin 2000 oferuje użytkownikom te same zalety, jakie proponowały maszyny serii Challenge, zmieniając jednak radykalnie pojęcie skalowalności systemu - z kilku dziesiątek procesorów do setek. Stało się tak dzięki nowatorskiej architekturze S2MPt.

Zalety i ograniczenia tradycyjnych rozwiązań

Najczęściej stosowanym rozwiązaniem problemu komunikacji między procesorami, pamięcią i innymi układami komputera (takimi jak grafika czy układy wejścia/wyjścia) jest wspólna dla wszystkich układów szyna danych. Z rozwiązaniem tym mamy do czynienia zarówno w maszynach jedno- jak i wieloprocesorowych (rys. 1). W realnych rozwiązaniach poszczególne procesory i inne układy mogą ponadto mieć lokalne pamięci podręczne, jednak zasadniczą zaletą przedstawionego modelu jest jedna pamięć, wspólna dla wszystkich procesorów. Mogą one korzystać z niej w dowolny sposób. Taki model, nazywany modelem SMP (Shared Memory Processing), pozwala programistom na efektywne i proste pisanie programów wykorzystujących równolegle wiele procesorów. Dane przetwarzane przez jeden procesor udostępniane są innym w sposób naturalny i bez zbędnych opóźnieó. Jednakże wraz ze wzrostem liczby procesorów ilość przesyłanej informacji zapełnia szynę danych. Ogranicza to możliwość rozbudowy produktu. W przypadku dostępnych na rynku maszyn SMP techniczną wartością graniczną bywa, w zależności od producenta 6-36 procesorów. Jednak efektywne optimum sprawności maszyny, mierzone, np. wzrostem prędkości działania standardowych programów po dodaniu kolejnego procesora, osiągane jest często zaledwie w połowie tej liczby.

Drugim powszechnie stosowanym modelem maszyny wieloprocesorowej jest układ klastrowy, nazywany niekiedy masowo równoległym. W modelu tym poszczególne jednostki, o cechach kompletnego systemu komputerowego (procesor, pamięć, nieraz także dyski i inne układy wejścia/wyjścia), połączone są między sobą siecią połączeó (rys. 2). Sieć ta może mieć różnorodny charakter - od prostej implementacji zwykłych technologii sieciowych, po szybkie układy przełączające. To, co łączy te rozwiązania, to oprogramowanie, w którym programista musi zadbać, aby poszczególne procesory informowały się wzajemnie o swoich działaniach. Stąd nazwa Message Passing Programming MPP. Konieczność zgrania wszystkich modułów (często każdy ze swoją kopią systemu operacyjnego) i długie czasy dostępu do informacji przechowywanej przez różne moduły ogranicza szybkość działania i powoduje ogromne trudności w optymalizacji kodu. Jednak kompletność poszczególnych modułów sprawia, iż rozbudowa systemu jest prosta i prawie nieograniczona.

W ostatnich latach coraz więcej maszyn SMP odchodzi od architektury szyny danych na rzecz przełącznika typu crossbar. Daje to większą skalowalność przy zachowaniu prostoty modelu programowania. Wadą jest jednak to, że kupując komputer w konfiguracji minimalnej, np. dwuprocesorowy, płacimy za przełącznik zdolny obsłużyć 30 procesorów. A nie są to elementy tanie.

NUMA

Potrzeba rozbudowalności systemów spowodowała powstanie rozwiązania nazwanego NUMA (Non-Uniform Memory Access). Oferuje ono to, co najlepsze w architekturach SMP i MPP: możliwość rozbudowy do setek procesorów przy zachowaniu prostoty modelu jednej przestrzeni adresowej. Mimo wspólnej logicznie przestrzeni, w architekturze NUMA dopuszcza się różnice w czasie dostępu do różnych regionów pamięci. Prędkość dostępu do pamięci "lokalnej" jest w przybliżeniu taka, jak w maszynach SMP, do pamięci "odległej" zaś opóźnienia są znacznie większe. Dla konkretnego programu średnia wypada nieco lepiej lub gorzej - w zależności od tego, jak wiele jest odwołaą lokalnych, a jak wiele wymaga przesłania informacji z innych modułów maszyny. Obecnie kilka firm oferuje komputery zbudowane na bazie architektury NUMA: Data General (NUMALiiNE), Sequent (NUMA-Q), Tandem (ServerNet) i Silicon Graphics (Origin).

Klocki i kable

Rodzina serwerów Origin wykorzystuje najlepszy wariant architektury NUMA, zachowujący zgodność pamięci podręcznych (cache coherent NUMA lub cc-NUMA). Wyjątkowość polega na tym, iż czas dostępu do dowolnego obszaru pamięci (związanego z określonym procesorem lub z innymi) jest podobny i porównywalny z czasami w maszynach SMP. Pozwala to na wykorzystanie znanego i wypróbowanego modelu oprogramowania przy zwiększonej skalowalności.

Osiągnięcie takich wyników umoľliwia architektura S2MPt (Scaleable Shared Memory Programming) oraz jej najważniejsze elementy: płyty CPU/RAM/HUB i połączenie między nimi. Podstawowym elementem budowy maszyny jest wspomniana płyta (rys. 4), zawierająca jeden lub dwa procesory MIPS R10000t, pamięć, koncentrator (Hub) i połączenia: XIO (przeznaczone do układów wejścia/wyjścia) oraz CrayLink (służący do łączenia poszczególnych modułów między sobą). Koncentrator zapewnia procesorom dostęp do pamięci z przepustowością 800 MB/s, a przepustowość złącza XIO wynosi 1,28 GB/s. Złącze CrayLink daje 1,6 GB/s (dwukierunkowo), co zapewnia niemal pełną symetrię dla połączeą wewnątrz modułu i między modułami. Drugim elementem konstrukcyjnym serwerów Origin jest system połączeó: kable i routery CrayLink. Dają one nie tylko możliwość efektywnego połączenia poszczególnych modułów, ale także pozwalają - wraz ze wzrostem liczby łączonych procesorów - na zwiększenie matematycznego wymiaru (topologii) połączeó (rys. 5 a-e). W rezultacie rośnie dostępna liczba dróg, jaką informacja może płynąć od jednego procesora do drugiego. Mierzone jest to "przepustowością przekroju" (bisection bandwidth). I tak dla systemu 64-procesorowego osiągnąć ona może 12,8 GB/s, a dla 128-procesorowej maszyny Cray Origin 2000t wynosi 25,6 GB/s. Porównajmy to z przepustowością maszyny SMP opartej na architekturze szyny danych, taką jak Silicon Graphics Challenge, wynoszącą 1,2 GB/s! Ogromna przepustowość budowana jest "po kawałku" wraz z rosnącą liczbą procesorów rośnie liczba i topologia połączeą.

Dodatkową zaletą jest też, to że kolejne moduły dysponują własnymi kanałami I/O (bardzo szybkimi). Tak więc wprowadzenie do komputera danych z dysków nie stanowi wąskiego gardła, jak ma to miejsce w wielu tradycyjnych rozwiązaniach.

Architektura ta pozwala na prawdziwą skalowalność systemu programowanego jako SMP do ponad 100 procesorów. Wraz ze zwiększaniem liczby procesorów rosną proporcjonalnie wszystkie parametry komputera, dając w rezultacie efektywne wykorzystanie zasobów. Nie ma więc ani groźby wybrania konfiguracji zbyt słabej dla przyszłych potrzeb, ani konieczności przepłacania za konfigurację początkową.

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

TOP 200