Czego zarządzający centrami danych mogą się nauczyć od superkomputerów?

Robert Sepeta Business Development Manager Kingston Technology
Robert Sepeta, Business Development Manager w Kingston Technology w Polsce

Superkomputery wciąż odbiegają od niektórych wyobrażeń z futurystycznych filmów i daleko im do przejęcia władzy nad światem, ale już teraz znajdują istotne zastosowanie w wielu branżach. Stosuje się je m.in. w poszukiwaniach ropy naftowej i gazu, prognozach pogody, skomplikowanych analizach rynków finansowych, a także po prostu – w rozwoju nowych technologii. Istotne znaczenie mają rosnące możliwości przetwarzania danych, które wpływają z kolei na rozwój technologii superkomputerów – obszary te wzajemnie się przenikają. Czego więc od superkomputerów mogliby nauczyć się zarządzający centrami danych?

W świecie superkomputerów najważniejsze jest dostosowanie do indywidualnych potrzeb i zastosowań. Ich znajomość jest pierwszym krokiem do uzyskiwania wysokowydajnych i stabilnych infrastruktur. Bez względu na wielkość centrum danych, ważne jest, aby traktować je jako obiekt o kluczowym znaczeniu. W kontekście generowania, przechowywania czy udostępniania danych, można je również postrzegać w kategoriach superkomputera.

  1. Superkomputery są projektowane specjalnie z myślą o stabilności

Większość platform opartych na chmurze, stworzonych do obsługi różnych aplikacji, może korzystać ze współdzielonych zasobów i infrastruktur. Z kolei większość superkomputerów powstała z myślą o określonych potrzebach. Jest to widoczne nawet na liście TOP 500[1] najszybszych superkomputerów na świecie (odtajnionych i znanych publicznie), która zawiera nie tylko informacje dotyczące lokalizacji czy szybkości urządzenia, ale także główny obszar jego zastosowania.

Maszyny te nie są więc uniwersalnymi konstrukcjami. Są budowane w celu wykonywania określonych rodzajów obliczeń na precyzyjnie określonych zestawach danych — w czasie rzeczywistym lub w obliczeniach asynchronicznych. Pojemności ich pamięci mierzy się w eksabajtach, co daleko wykracza poza wartości petabajtowe w nowoczesnych hurtowniach danych. Systemy takie jak Frontera nie muszą osiągać maksymalnych prędkości przy szczytowym obciążeniu obliczeniowym, ale za to powinny ze stabilną wydajnością odczytywać ogromne ilości danych w celu uzyskania końcowego wyniku. Skok wydajności obliczeniowej mógłby powodować błędy w wynikach, dlatego kładzie się duży nacisk na stabilność. Jakie wnioski mogą wyciągnąć z tego dla siebie zarządzający centrami danych?

W pierwszej kolejności warto sobie zadać pytanie: „do czego będziemy wykorzystywać system?”, aby następnie móc go zaprojektować, zarządzać zasobami i stworzyć niezawodne zabezpieczenia przed awarią.

W przypadku data centers należy rozważyć, w jaki sposób uzyskać stabilną wydajność bez konieczności stosowania niestandardowych konfiguracji. Najwięksi gracze na rynku mogą pozwolić sobie na tworzenie niestandardowych infrastruktur obliczeniowych lub pamięci masowych, ale większość dostawców usług musi w selektywny sposób korzystać z gotowych rozwiązań. Pomocne byłoby tu ustalenie ścisłych kryteriów testów porównawczych wydajności, które pozwolą rozwiązać problem jakości usług i sprawią, że oprócz szybkości obliczeniowej i opóźnienia, równie ważnym czynnikiem będzie stabilność działania.

  1. Przetwarzanie w czasie rzeczywistym – zapisywanie modeli, a nie strumieni danych

W przypadku superkomputerów wiele przykładów zastosowania przetwarzania danych w czasie rzeczywistym ma poważne implikacje np. zatrzymanie reakcji jądrowej czy dane telemetryczne podczas startu rakiety. Każde opóźnienie w obliczeniach mogłoby mieć katastrofalne następstwa, a operacje odbywają się na ogromnych zbiorach danych. Ich strumienie nie pochodzą z jednego źródła, często są dostarczane z sieci węzłów raportujących.

Istotne jest to, że mają one krótką żywotność. Podczas przetwarzania danych przesyłanych w czasie rzeczywistym większość z nich jest przechowywana tylko przez określony czas. Dane są przetwarzane partiami, a obliczenia mają na celu uzyskanie wyniku (np. średniej, modelu statystycznego lub algorytmu) — i dopiero on jest przechowywany na dłużej.

Można zobrazować to na przykładzie prognozy pogody, gdzie superkomputer nie przechowuje wszystkich danych dotyczących czynników meteorologicznych jak opady atmosferyczne, temperatura powietrza, wiatr itd. Zmieniają się one nieustannie i są przesyłane jako strumień danych, jednak przechowywane są wyłącznie modele prognostyczne tworzone na ich podstawie. Lokalni meteorolodzy opierają się następnie o te modele ograniczone do konkretnego obszaru i uzupełniają je o informacje z lokalnych stacji pogodowych, żeby doprecyzować prognozę pogody o mikroklimat.

Ten sam model przetwarzania danych w czasie rzeczywistym można zastosować do handlu akcjami czy modeli finansowych. Opierają się one na średnich ruchomych — każdy z wbudowanymi określonymi wskaźnikami i czynnikami wyzwalającymi, w oparciu o określone parametry dla dopuszczalnych wartości progowych zachowań rynku.

Projektowanie systemu wykorzystującego dane w czasie rzeczywistym nie musi więc uwzględniać przechowywania wszystkich informacji, które do niego spływają. Powinien on wykorzystywać nieulotną pamięć o dostępie swobodnym (NVRAM) oraz pamięć dynamiczną (DRAM) do bieżącego buforowania i przetwarzania danych, aby następnie zapisywać uzyskane wyniki w pamięci masowej.

  1. Wartości progowe opóźnień, pamięć flash NAND i dostrajanie pamięci DRAM

Superkomputery działają przy z góry określonym obciążeniu dla danego poziomu usług — niezależnie od tego, czy chodzi o opóźnienie, zasoby obliczeniowe, pamięć masową, czy przepustowość. Podczas obliczeń uwzględniają błędy, w których system może przekierowywać strumienie danych dla uzyskania optymalnych warunków opóźnienia, przechodząc na asynchroniczne modele obliczeniowe lub nadając priorytet zasobom obliczeniowym, żeby zapewnić wystarczają moc przetwarzania lub przepustowość dla określonych zadań.

Zarówno w przypadku wysokiej klasy stacji roboczych, wysoko wydajnych serwerów, czy obciążeń w środowiskach HPC i badań naukowych, duże komputery i przetwarzanie typu Big Data wymagają potężnych zasobów pamięci DRAM. Sposoby, w jakie twórcy superkomputerów precyzyjnie dostosowują strukturę sprzętu i kontrolera pamięci, są unikalne dla projektowanego zastosowania. Często określone zadania obliczeniowe, w których dostęp do dysku stanowi poważne wąskie gardło z związku z wymaganiami pamięci RAM, sprawiają, że pamięć DRAM staje się niepraktyczna, ale są wystarczająco małe, aby można było wykorzystać pamięci flash NAND. Klastry FPGA są również dostrajane do każdego konkretnego obciążenia, aby dużym zestawom danych towarzyszył potężny wzrost wydajności, jeśli konieczne będzie ich pobieranie z tradycyjnych nośników.

Współpracujące zespoły z Uniwersytetu Utah, Lawrence Berkeley Lab, Uniwersytetu Południowej Kalifornii i Argonne National Lab przedstawiły nowe modele automatycznego dostosowywania wydajności (lub inaczej autodostrajania) jako skutecznego sposobu na przenoszenie wydajności między architekturami. Zamiast zależeć od kompilatora, który może zapewnić optymalną wydajność w nowszych architekturach wielordzeniowych, automatycznie dostrajające się jądra i aplikacje mogą automatycznie dostroić docelowy procesor, sieć i model programowania.

  1. Wiele warstw zabezpieczeń przed awarią

Coraz większym wyzwaniem w centrach danych HPC staje się dystrybucja energii — zwłaszcza w przypadku infrastruktur wykorzystywanych jako zasoby wspólne. Infrastruktury dedykowane lub centra danych udostępniające swoje usługi muszą zapewniać ciągłą pracę i minimalizować ryzyko wszelkich awarii. Kopie zapasowe w przypadku centrów danych stają się terminem operacyjnym. Podobnie jak w przypadku superkomputerów data centers powinny być zabezpieczane na wielu poziomach.

Obecnie większość centrów danych wykorzystuje struktury RAID wysokiego poziomu, aby zapewnić ciągłe i niemal jednoczesne zapisy w różnych macierzach pamięci. Ponadto infrastruktury HPC wykorzystują duże ilości pamięci NVRAM do buforowania danych podczas przetwarzania, które są albo strumieniami danych na żywo, nieprzesyłanymi między macierzami pamięci, albo przetwarzanymi równolegle informacjami z wykorzystaniem dyskowej przestrzeni tymczasowej (tzw. scratch) co pozwala zwalniać dodatkowe zasoby obliczeniowe.

Większość infrastruktur HPC eliminuje również ryzyko awarii sprzętu związane z zastosowaniem dysków obrotowych, przechodząc całkowicie na macierze półprzewodnikowe i bloki pamięci flash. Te rozwiązania pamięci masowej zapewniają stabilne wartości IOPS i przewidywalne opóźnienia, które mieszczą się w przedziałach wartości progowych opóźnień właściwych dla danego zastosowania. Wiele superkomputerów korzysta również z licznych bibliotek taśmowych (o pojemności skalowalnej do eksabajta lub większej) w celu zapewnienia niezawodnej archiwizacji każdego przetwarzanego i przechowywanego bitu.

Również w wielu systemach, na wypadek awarii całego łańcucha zabezpieczeń, przy dyskach SSD i pamięciach DRAM instaluje się kondensatory podtrzymujące zasilanie, które umożliwiają napędom (niezależnym lub w ramach macierzy) na ukończenie zapisu w toku, zmniejszając w ten sposób ilość potencjalnie utraconych danych na skutek krytycznej usterki.

Robert Sepeta, Business Development Manager w Kingston Technology w Polsce

[1] https://www.top500.org/