Gra w klastry

Uzyskanie supermocy superkomputera nie wymaga superdrogich superprocesorów. O wiele taniej można podobną potęgę wydobyć z klastra złożonego z kilku tysięcy jednostek centralnych, takich samych jak w dobrze znanych pecetach.

Uzyskanie supermocy superkomputera nie wymaga superdrogich superprocesorów. O wiele taniej można podobną potęgę wydobyć z klastra złożonego z kilku tysięcy jednostek centralnych, takich samych jak w dobrze znanych pecetach.

Pod koniec ubiegłego roku, 15 grudnia, prezydent oraz minister nauki i informatyzacji symbolicznie uruchomili Clusterix (CLUSTER of LinuX Systems), superkomputer, którego 802 procesory Intela Itanium 2 zostały rozmieszczone w 12 ośrodkach akademickich w całej Polsce. Zgromadzoną w ten sposób szczytową moc obliczeniową ocenia się na 4368 GF/s (gigaflopów na sekundę). Gdyby ten wynik potwierdził się w testach, Clusterix miałby szanse znaleźć się na liście najbardziej wydajnych komputerów na świecie (www.top500.org) w okolicach drugiej pięćdziesiątki. Pech chciał, że wykaz najlepszych aktualizowano w listopadzie, tuż przed uruchomieniem Clusteriksa, więc certyfikatu przynależności do elity można się spodziewać dopiero przy okazji następnej edycji listy, za sześć miesięcy.

Najlepsi

Lista pięciuset najbardziej wydajnych komputerów, TOP500, jest aktualizowana dwa razy do roku od dwunastu lat. Przez cały okres jej prowadzenia podstawą rankingu są wyniki tego samego testu, High Performance Linpack. Jego istotą jest pomiar wydajności na podstawie tempa rozwiązania układu równań tysięcznego stopnia. Procedura testowa intensywnie korzysta z podprogramów biblioteki BLAS (Basic Linear Algebra Subprogram). Dopiero w jej ramach następują odwołania do warstwy sprzętowej superkomputera. Wynik testu w dużym stopniu zależy od optymalizacji biblioteki do architektury testowanego procesora i całego systemu. Oprócz wyniku testu praktycznego w klasyfikacji najlepszych używa się drugiej liczby, wartości maksymalnej, ilustrującej sumaryczną moc samych procesorów. Stosunek wyniku testu do wartości teoretycznej jest ilustracją sprawności architektury superkomputera.

Nie ma pewności, czy polski wynalazek znajdzie się na tej liście, bo jest klastrem klastrów, strukturą dwupiętrową. Jej podstawowy poziom tworzą komputery zgromadzone w obrębie poszczególnych ośrodków, spojone gigabitowym lub szybszym Ethernetem albo nowszym InfiniBandem. Z kolei klastry lokalne są połączone w Clusterix za pomocą funkcjonującej już sieci światłowodowej PIONIER, w której na potrzeby komunikacyjne systemu wydzielono osobne pasmo. Głównym protokołem transmisyjnym będzie IP, w przyszłości w swojej sześciobajtowej wersji.

Ponad plan

Struktura Clusteriksa.

Struktura Clusteriksa.

Jak widać z mapy, moc klastra nie jest równomiernie rozmieszczona we wszystkich ośrodkach. W programie pilotażowym zakładano bardziej jednorodny rozkład, ale dzięki szczodrym dotacjom sponsorów - Intela, Optimusa, HP i ATM - pięciokrotnie powiększyła się sumaryczna wydajność systemu. Nadwyżka skoncentrowała się w dwóch dużych i dwóch średnich ośrodkach. Duża różnorodność zasobów ułatwia zarządzanie. Aplikacje wymagające większej mocy obliczeniowej będzie można przetwarzać w lepiej wyposażonych centrach, a prostsze zadania wykonywać w mniejszych. Powie ktoś, że klaster stanowi jedność, więc wymiana danych z komputerem zza ściany i z drugiego końca kraju powinna być taka sama, ale to nieprawda. Wydajność komunikacji między klastrami ustępuje transferowi lokalnemu wewnątrz tych układów. Na dodatek rozmaite zagadnienia w różny sposób dają się podzielić na dużo niezależnych wątków, czyli pozwalają na równoległe wykonywanie operacji. Te fakty komplikują i tak nieprostą optymalizację. Będzie jeszcze o tym mowa.

Przypominamy siatki

Oprogramowanie zarządzające Clusteriksa jest wzorowane na technologiach siatkowych, dobrze znanych chociażby z projektu SETI@home, ale egzamin piętrowej, hierarchicznej architektury jest o wiele trudniejszy. W Clusteriksie znajdzie zastosowanie siatkowa implementacja standardu MPI, opartego na Globus Toolkit. Wymienione narzędzia należą do kategorii open source. Clusterix ma być jednym z pierwszych klastrów 64-bitowych z możliwością czasowego dołączania innych klastrów 64- i 32-bitowych.

Procesorów jest dwa razy więcej niż węzłów. Typowy komputer wchodzący w skład Clusteriksa jest konstrukcją dwuprocesorową. Wybrano takie rozwiązanie z powodu jego ekonomicznych zalet. Z jednej strony, liczy się cena płyty głównej, niewielka w wypadku jednego procesora, znośna w wypadku dwóch, a bardzo wysoka, gdy są co najmniej cztery procesory. Z drugiej strony, wymiana informacji między układami pamięci na wspólnej płycie z procesorami jest znacznie lepsza, więc z tego punktu widzenia pożądana byłaby jak największa ich koncentracja we wspólnym module. Klaster z komputerów jednoprocesorowych byłby tańszy, ale w wielu zastosowaniach mniej wydajny. Wykorzystanie do budowy superkomputerów elementów nieprzeznaczonych początkowo do tych konstrukcji ma już charakter masowy i nawet doczekało się swojej nazwy, COTS (Commercial-Off-The-Shelf). Chodzi o używanie tanich seryjnych produktów zamiast wyspecjalizowanych, ale droższych. Pomimo gorszego wykorzystania mocy wbudowanych procesorów, dzięki ich dużej liczbie superkomputer klastrowy może osiągnąć zdumiewającą wydajność.

Jak to działa?

Architektura Clusteriksa.

Architektura Clusteriksa.

Chociaż teoretycznie wyróżnia się superkomputery z jedną jednostką wykonawczą, konstrukcje takie odchodzą powoli do lamusa. To samo dotyczy urządzeń z wieloma procesorami, ale wykonującymi równolegle te same instrukcje. Szczególną odmianą tego typu rozwiązania jest procesor wektorowy, mający podobną architekturę, ale zamkniętą w jednym układzie.

Na pierwszy rzut oka wektorowy sposób przetwarzania danych wydaje się mało przydatny, tymczasem zdumiewająco wiele poważnych zagadnień można rozwiązywać w ten sposób. Na przykład prognoza pogody wymaga przeprowadzenia takich samych obliczeń w milionach drobnych elementów, na które dzieli się ziemską atmosferę. Te same zasady dotyczą wielu innych symulacji. Im drobniejszy podział, tym więcej obliczeń, ale w nagrodę lepsze, bardziej realne wyniki.

W konwencjonalnym procesorze do wykonania takich działań stosuje się pętle. Pobiera się z pamięci dane dotyczące pierwszego elementu, wykonuje obliczenia w procesorze i wysyła wyniki z powrotem do pamięci. Ten sam cykl operacji powtarza się z następnym fragmentem aż do zakończenia zadania. Wykonanie każdego przebiegu pętli trwa kilka taktów zegara, ale całego obliczenia - wielokrotnie dłużej. Liczenie przedłuża się o tyle samo czasu z każdym dodatkowym elementem branym pod uwagę. W procesorze wektorowym możemy ten sam cykl obliczeń wykonać jednocześnie. Jeśli mieści np. 32 takie same rejestry, możemy skrócić cykl obliczeń tyle samo razy.

W istocie rzeczy przetwarzanie wektorowe jest ściśle kojarzone z superkomputerami. Czterdzieści lat temu Seymour Cray zbudował CDC 6600 z procesorem wektorowym. Szybko jego nazwisko stało się synonimem superkomputera i zostało nim na wiele lat. Superkomputery i procesory do nich budowano na indywidualne zamówienie. Chłodzenie komputera cieczą i freonem opracowano właśnie w tamtym okresie.

Cięcie kosztów

W latach dziewięćdziesiątych rozpoczęło się panowanie technologii MPP (Massive Parallel Processing). Do superkomputerów zaczęto wstawiać setki, a nawet tysiące procesorów. Wiele wektorowych jednostek miały także nowsze Craye, ale konkurencyjne jednostki centralne i pamięci należały już do kategorii COTS. Wymienione elementy pochodziły z masowej produkcji, ale płyty główne, system połączeń i oprogramowanie systemowe robiono na zamówienie.

Na przełomie wieków nadeszła pora na unifikację kolejnej części superkomputera. Ten krok pozwolił, z jednej strony, na dalsze obniżenie cen, z drugiej - na kolejne zwiększenie liczby procesorów. Klastry zbudowane w dużej części z seryjnych elementów opanowały laboratoria naukowe i wdarły się na prestiżową listę 500 najwydajniejszych superkomputerów. W roku 2000 znajdowało się tam tylko 28 klastrów, dwa lata później - 94, a na najnowszym wykazie z grudnia 2004 jest ich aż 294.


Zobacz również