Servers in a data center

Cztery rzeczy, których zarządzający centrami danych mogą nauczyć się od najszybszych superkomputerów

Gdyby zapytać przechodniów na ulicy, czym według nich jest superkomputer, prawdopodobnie duży odsetek odpowiedzi wskazywałby przykłady z popularnych filmów, w dodatku o nie najlepszej reputacji. Od HALA 9000 z filmu „2001: Odyseja kosmiczna” po VIKI z produkcji „I, Robot” czy nawet Skynet z „Terminatora” – popkultura często przedstawiała superkomputery jako obdarzone inteligencją emocjonalną systemy, które ewoluując, zwracały się przeciwko ludzkości.

Gdyby powiedzieć o tym badaczom z Lawrence Livermore National Laboratory lub National Weather Service, zareagowaliby gromkim śmiechem. Prawda jest taka, że dzisiejsze superkomputery są dalekie od samoświadomości, a ich jedyną sztuczną inteligencją jest w zasadzie tylko „przerośnięty” pasek postępu wyszukiwania, który ilustruje skanowanie bardzo dużych zestawów danych.

Obecnie superkomputery są wykorzystywane w wielu zastosowaniach, które stoją w awangardzie postępu: poczynając od poszukiwania ropy naftowej i gazu, poprzez prognozy pogody i analizę rynków finansowych, a kończąc na rozwoju nowych technologii. Superkomputery to jak Lamborghini lub Bugatti w świecie komputerowym, a firma Kingston przywiązuje dużą wagę do postępu technologicznego, który przesuwa granice możliwości przetwarzania danych. Od wykorzystania i dostrajania pamięci DRAM, poprzez rozwój oprogramowania układowego do zarządzania macierzami pamięci, po stabilność prędkości przesyłania i opóźnień zamiast wartości szczytowych — nasze technologie mają głęboki wpływ na rozwój technologii superkomputerów.

Podobnie jest wiele rzeczy, których zarządzający centrami danych w chmurze i w oparciu o zasoby lokalne mogą nauczyć się od superkomputerów – zarówno jeśli chodzi o projektowanie infrastruktury i zarządzanie nią, jak i wybór podzespołów, które będą gotowe do przyszłej modernizacji bez konieczności wielkiej przebudowy.

Obliczenia w czasie rzeczywistym
1. Superkomputery są projektowane specjalnie z myślą o stabilności

W przeciwieństwie do większości platform opartych na chmurze, takich jak Amazon Web Services czy Microsoft Azure, stworzonych z myślą o obsłudze różnych aplikacji, które mogą korzystać ze współdzielonych zasobów i infrastruktur, większość superkomputerów powstała z myślą o określonych potrzebach. Najnowsza lista TOP 500 najszybszych superkomputerów na świecie (odtajnionych i znanych publicznie) zawiera informacje dotyczące nie tylko lokalizacji i szybkości urządzenia, ale także głównego obszaru zastosowania.

Jedenaście z dwunastu najszybszych maszyn jest wykorzystywane do badań związanych z energetyką, testów jądrowych oraz zastosowań obronnych. Jedynym wyjątkiem jest Frontera — nowy, sfinansowany przez NSF system obliczeniowy o wydajności petaskalowej w Texas Advanced Computing Center na Uniwersytecie Teksańskim, który udostępnia akademickie zasoby na potrzeby partnerów w badaniach naukowych i inżynieryjnych. Z kolejnych 20 superkomputerów na liście TOP 500 prawie wszystkie są wykorzystywane do rządowych zastosowań obronnych i wywiadowczych. Maszyny na pozycjach od 30 do 50 w większości służą do prognozowania pogody. Ostatnie 50 ze 100 najszybszych superkomputerów to mieszanina zastosowań korporacyjnych (NVIDIA, Facebook itp.), średnioterminowych prognoz pogody, programów kosmicznych, poszukiwań złóż ropy i gazu, zastosowań akademickich i specjalnych zastosowań rządowych.

Maszyny te nie są uniwersalnymi konstrukcjami. Budują je na zamówienie tacy producenci, jak Intel, Cray, HP, Toshiba czy IBM, do wykonywania określonych rodzajów obliczeń na precyzyjnie określonych zestawach danych — w czasie rzeczywistym lub w obliczeniach asynchronicznych.

Definiują one także standard dopuszczalnych wartości progowych opóźnień:

  • Skonfigurowane zasoby obliczeniowe wykorzystujące miliony rdzeni przetwarzających.
  • Częstotliwości taktowania zapewniające wydajność w zakresie od 18 000 do 200 000 teraflopów.

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ą „biec sprintem” 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 może powodować błędy w wynikach, dlatego kładzie się nacisk na stabilność.

Współczesny menedżer zarządzający centrum danych powinien w pierwszej kolejności zadać pytanie: „Do czego będziemy wykorzystywać system?”, aby następnie móc go zaprojektować, zarządzać zasobami i stworzyć niezawodne zabezpieczenia przed awarią. Zarządzanie centrum danych, które obsługuje kilka wirtualnych pulpitów, różni się znacząco od obsługi centrum powiadamiania ratunkowego (nr 112) czy systemu kontroli ruchu lotniczego. Mają one różne potrzeby, wymagania, umowy o gwarantowanym poziomie usług oraz budżety – i powinny być odpowiednio zaprojektowane.

Podobnie należy rozważyć, w jaki sposób uzyskać stabilną wydajność bez konieczności stosowania niestandardowych konfiguracji. Firmy takie jak Amazon, Google i Microsoft dysponują budżetami 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ń.

Dlatego w większym stopniu zarządzający centrami danych muszą ustalać ścisłe kryteria 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.

serwer z rozświetlonymi liniami przedstawiającymi sieć
2. Twój czas rzeczywisty nie jest moim czasem rzeczywistym

W zastosowaniach superkomputerów większość przypadków przetwarzania danych w czasie rzeczywistym ma poważne implikacje. Poczynając od zatrzymania reakcji jądrowej, a kończąc na danych telemetrycznych przy starcie rakiety, opóźnienie w obliczeniach może mieć katastrofalne skutki — a zbiory danych są ogromne. Ich strumienie nie są pobierane z jednego źródła, lecz często dostarczane z sieci węzłów raportujących.

Jednak mają one krótką żywotność. Podczas przetwarzania danych przesyłanych w czasie rzeczywistym większość z nich nie jest przechowywana wiecznie. Jest zapisywana, a następnie nadpisywana z określonym „czasem przydatności” na potrzeby zapisów sekwencyjnych i zastępowania nowymi danymi. Dane w czasie rzeczywistym zawsze się zmieniają, a bardzo niewiele zastosowań wymaga zapisywania każdego bitu od zarania dziejów. Dane są przetwarzane partiami, a obliczenia mają na celu uzyskanie wyniku (np. średniej, modelu statystycznego lub algorytmu) — i to wynik jest przechowywany.

Weźmy na przykład prognozy przygotowywane przez superkomputer należący do National Oceanographic and Atmospheric Administration (NOAA). W przyrodzie zachodzą ciągłe zmiany czynników meteorologicznych, takich jak opady atmosferyczne, temperatura powietrza i gruntu, ciśnienie atmosferyczne, pora dnia, efekty słoneczne, wiatr, a nawet sposób jego przemieszczania się nad powierzchnią ziemi. Wszystko to zmienia się co sekundę i jest przekazywane w postaci strumienia informacji w czasie rzeczywistym. Jednak podlegający NOAA instytut National Weather Service (NWS) nie potrzebuje tych nieprzetworzonych danych na zawsze. Potrzebuje modeli prognostycznych! W miarę kształtowania się modelu globalnego systemu prognozowania (GFS) trafiają do niego nowe dane, co pozwala tworzyć bardziej precyzyjne i aktualne prognozy.

Ponadto lokalni meteorolodzy, którzy udostępniają i odbierają dane z NWS, nie potrzebują dostępu do całego, globalnego zestawu danych pogodowych. Po prostu ograniczają swoje modele do lokalnych obszarów. Pozwala im to uzupełniać dane NWS o informacje z lokalnych stacji pogodowych, co zapewnia lepszy wgląd w mikroklimaty i przyspiesza opracowanie bardziej precyzyjnych lokalnych prognoz na podstawie określonych partii danych, które są przetwarzane w celu uzyskania wyniku (średniej, modelu statystycznego lub algorytmu) — i to on jest przechowywany.

To samo można powiedzieć o handlu akcjami czy modelach finansowych, które opierają się 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 uwzględniać przechowywania wszystkiego, co do niego trafia. Powinien on jednak 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.

Ilustracja układu pamięci flash ze rozświetlonymi ścieżkami obwodów
3. Wartości progowe opóźnień, pamięć flash NAND i dostrajanie pamięci DRAM

Większość wartości progowych opóźnień ustawia się ze względu na wymagania danego zastosowania. W scenariuszach handlowych sekundy oznaczają miliony, jeśli nie miliardy dolarów. W przypadku prognoz pogody czy śledzenia huraganów może to oznaczać decyzję o ewakuacji Nowego Orleanu lub Houston.

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ść. Większość wykorzystuje obliczenia uwzględniające błędy, w których system może przekierowywać strumienie danych w celu uzyskania optymalnych warunków opóźnienia (w oparciu o taktowanie zgodne z formułą 𝛱 + Δmax), przechodząc na asynchroniczne modele obliczeniowe lub nadając priorytet zasobom obliczeniowym w celu zapewnienia wystarczającej mocy przetwarzania lub przepustowości dla określonych zadań.

Niezależnie od tego, czy myślimy o wysokiej klasy stacjach roboczych, wysoko wydajnych serwerach, czy o obciążeniach w środowiskach HPC i badań naukowych, duże komputery i przetwarzanie typu Big Data wymagają potężnych zasobów pamięci DRAM. Superkomputery takie jak Tianhe-2 wykorzystują ogromne zasoby pamięci RAM w połączeniu ze specjalistycznymi kartami akceleracyjnymi. 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.

Ilustracja z pracownikiem działu IT w kasku, z laptopem, przed wyświetlaczem przeziernym
4. 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. W przypadku infrastruktur dedykowanych lub udostępnianych jako usługi centra danych muszą zapewniać ciągłą pracę i ograniczać ryzyko uszkodzenia delikatnych komponentów sprzętowych w przypadku awarii zasilania bądź nagłego wzrostu lub zmiany szczytowego zapotrzebowania.

Architekci systemów wykorzystują różne rozwiązania w celu pokrycia strat:

  • Dystrybucję zasilania prądem stałym oraz zasilacze awaryjne (UPS)
  • Trójgenerację (wytwarzanie energii elektrycznej z ciepła i przechowywanie jej na potrzeby zasilania awaryjnego)
  • Aktywny monitoring
„Zapisuj i rób to często” — to stwierdzenie, powtarzane jak mantra w odniesieniu do każdego zastosowania, dotyczy również centrów danych, w przypadku których „kopia zapasowa” staje się terminem operacyjnym.

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”, nie przesyłanymi między macierzami pamięci, albo przetwarzanymi równolegle informacjami z wykorzystaniem dyskowej przestrzeni tymczasowej (tzw. scratch) w celu zwolnienia dodatkowych zasobów obliczeniowych. Wspomniany wcześniej system Frontera wykorzystuje 50 PB całkowitej przestrzeni tymczasowej. Użytkownicy potrzebujący bardzo dużej przepustowości lub spełnienia określonych wymagań IOPS mogą skorzystać z przydziału w systemie plików opartym w całości na technologii NVMe (Non-Volatile Memory Epress) o przybliżonej pojemności 3 PB i przepustowości ok. 1,2 TB/s.

Ta stała rezerwa RAID do przechowywania danych i stabilne działanie buforów NVMe zależy od całkowitych progów we/wy dla kontrolerów w urządzeniu oraz dla całkowitej dostępnej lub udostępnianej przepustowości do zdalnego przechowywania lub tworzenia kopii zapasowych.

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, mieszczące 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, określane jako PFail, P-Cap lub PLP. Kondensatory P-Cap 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.

Podsumowanie

Jak wspomniano wyżej, w świecie superkomputerów najważniejsze jest dostosowanie do indywidualnych potrzeb, a znajomość własnych potrzeb jest pierwszym krokiem w budowie centrum danych, pozwalającym określić, jak uzyskać najbardziej stabilną wydajność. Bez względu na wielkość centrum danych warto myśleć o nim jako o czymś ważnym lub postrzegać je w kategoriach superkomputera — jeśli chodzi o generowanie, przechowywanie lub udostępnianie danych. Oceniając te czynniki, architekci mogą projektować wysokowydajne infrastruktury gotowe do przyszłej modernizacji, także z wykorzystaniem gotowych komponentów.

#KingstonIsWithYou

Powiązane artykuły