Watson zasłynął z prezentacji swych możliwości w amerykańskim teleturnieju “Jeopardy!”, w którym w 2011 roku zajął pierwsze miejsce. Od 2013 jest komercyjnie wykorzystywany we wspomaganiu wyboru terapii raka płuc w Memorial Sloan Kettering Cancer Center. W tej chwili IBM Watson znajduje jeszcze szersze zastosowania w uczeniu maszynowym, w sztucznej inteligencji, w modelowaniu finansowym i wielu różnych inicjatywach rozwojowych oraz badawczych.
Pewna analogia do istniejącego superkomputera IBM Watson pojawia się w futurystycznej wizji sztucznej inteligencji opisanej w najnowszej książce Dana Browna pt. „Początek”. SI Browna to… Winston. Tę analogię dokładniej wyjaśnię na końcu artykułu.
Funkcjonalnie Winston jest oparty, przynajmniej częściowo, na superkomputerze MareNostrum zlokalizowanym w BSC (Barcelona Supercomputing Center). MareNostrum mieści się w zdesakralizowanym kościele z XIX w. (Torre Girona), tuż obok politechniki barcelońskiej. Trudno o bardziej niezwykłą dla maszyny obliczeniowej przestrzeń. MareNostrum jest przykładem klasycznej platformy superkomputerowej. To rozwiązanie, które nawet w nadchodzącym powoli świecie komputerów kwantowych, znajdzie swoje zastosowanie we wspieraniu najnowocześniejszych trendów technologicznych w zakresie uczenia maszynowego i sztucznej inteligencji.
Ale najpierw warto trochę usystematyzować informacje i wiedzę o świecie superkomputerów.
Czym są superkomputery?
Współczesny, bardzo dynamiczny rozwój nauki i technologii we wszystkich dyscyplinach wymaga zapewnienia bardzo sprawnych i nowatorskich metod badawczych oraz przetwarzania ogromnej ilości danych, będących wynikiem przeprowadzanych eksperymentów, dotyczących np. danych klimatycznych, sejsmicznych czy demograficznych. Z drugiej zaś strony wiele z eksperymentalnych metod badawczych jest niezwykle kosztownych przy ogromnej niepewności poprawności dobrania parametrów brzegowych dla analizowanego eksperymentu.
Bezcennym narzędziem są superkomputery zapewniające przetwarzanie ogromnej ilości danych w krótkim czasie, a także zapewniającym dostarczenia narzędzi symulujących wiele bardzo złożonych procesów, tak aby ostateczny eksperyment laboratoryjny, czy produkcyjny został w swych wariantach zredukowany do minimum opcji.
Kluczowe wymagania dla tego typu systemów to ogromna moc obliczeniowa, ogromne ilości pamięci zarówno operacyjnej, jak i potrzebnymi do składowania danych, ultranowoczesne magistrale wymiany danych, a także bardzo efektywne mechanizmy zarządzania tymi rozwiązaniami oraz sposobami ich wykorzystania. Superkomputery spełniają te wymagania.
Superkomputery są rozwiązaniami bardzo kosztownymi i generalnie są fundowane przez agencje rządowe dla podległych ośrodków badawczych, w tych krajach, które stawiają na rozwój nauki. Można wręcz mówić o swoistym wyścigu między państwami. W artykule skupimy się na superkomputerach ogólnego zastosowania, a więc takich, na których można praktycznie wykonać wszelkie rodzaje obliczeń, przetwarzań i symulacji.
Superkomputery są bardzo rozbudowanymi rozwiązaniami technologii tzw. High Performance Computingu (HPC), a więc wysokowydajnego przetwarzania komputerowego. Technologia HPC ma wiele cech szczególnych i ktoś, kto się z nią nie spotkał, może nie zdawać sobie sprawy z charakterystycznych cech i oczekiwań jakim te rozwiązania powinny , czy też muszą sprostać.
Dlatego też poniżej przedstawiono pewne kluczowe informacje ułatwiające zrozumienie elementów technologicznych związanych z technologiami HPC oraz superkomputerami.
Bardzo ciekawy i kompletny kurs z podstaw rozwiązań HPC i superkomputerów można znaleźć na stronie Lawrence Livermore National Laboratory. Każde zagadnienie związane z przetwarzaniem danych może być programistycznie zrealizowane na wiele sposobów. Jednak jednym z najważniejszych dla użytkowników elementów jest czas realizacji przetwarzania danych. Jeżeli przetwarzanie jest realizowane na wielu wątkach równolegle, jego czas będzie ulegał skróceniu.
Zatem kluczem do sukcesu jest tu maksymalne rozłożenie przetwarzania na wszystkie możliwe rdzenie procesorów i ich wątki. Takie podejście zapewnia maksymalne skrócenie czasu wykonywania przetwarzania danych. Niestety, zadania jakie są realizowane na danych przez oprogramowanie najczęściej mają ograniczone możliwości zapewnienia równoległości obliczeń. Nie wszystko można przetworzyć równolegle. Najczęściej najpierw trzeba poczekać na wiele obliczeń pośrednich. Część z nich może spowolnić przetwarzanie, ponieważ wszystkie inne operacje muszą czekać na wyniki cząstkowe. Taka jest rzeczywistość – każde oprogramowanie można poprowadzić równolegle, ale w specyficzny dla niego sposób.
Na diagramie poniżej, z lewej strony, widać, że jeśli kod oprogramowania jest trudny do równoległego wykonania, to dokładanie kolejnych węzłów obliczeniowych nic nie da. Przy kodzie, który łatwo podzielić, sprawny programista uzyska na wielu węzłach ogromne przyspieszenie obliczeń.
Platformy sprzętowe realizujące obliczenia mogą mieć dwie zasadnicze architektury:
- architektura z pamięcią współdzieloną
- procesory współdzielą przestrzeń adresową
- komunikacja między pamięcią a procesorami opiera się na wewnętrznych magistralach serwera
- architektura z pamięcią rozproszoną
- jest to rozwiązanie z zastosowaniem klastra rozproszonego oparte na wielu węzłach przetwarzania
- w ramach pojedynczego węzła przetwarzania procesor ma bezpośredni dostęp do pamięci własnego węzła, pobiera dane z zewnątrz (innego węzła), przetwarza dane i następnie przekazuje wynik swych obliczeń dalej
- węzły obliczeniowe komunikują się miedzy sobą poprzez dedykowany system połączeń oraz poprzez specyficzne protokoły wymiany danych.
Wybór architektury platformy przetwarzania zależy od wyboru oprogramowania, jakie będzie na nim pracować. Z reguły są to specyficzne programy modelujące, symulujące i przetwarzające, które często powstały wiele lat temu i zaprojektowane zostały do pracy ze specyficzną architekturą. Często bywa tak, że kod nie jest modyfikowany dla platform bardziej uniwersalnych.
W większości przypadków, oprogramowanie bardzo dobrze funkcjonuje na tańszej architekturze klastrów (z pamięcią rozproszoną). Istnieje też grupa specjalistycznych programów, które zostały dostosowane do platform z pamięcią współdzieloną i wymagają serwerów z 4, 8, a nawet 32 procesorami. Oczywiście te serwery są znacznie droższe od prostych węzłów klastra rozproszonego i mają jednocześnie bardzo ograniczone możliwości rozbudowy.
Istnieją metody symulacji platform z pamięcią współdzieloną na tańszych systemach z pamięcią rozproszoną. Jest to np. rozwiązanie firmy ScaleMP – oprogramowanie vSMP.
Wątki oprogramowania równoległego, które wykonują pewne obliczenia muszą się komunikować ze sobą poprzez wymianę danych w pamięci, a więc poprzez udostępnianie używanej przez siebie pamięci innym procesom, a także poprzez sięganie do obszarów pamięci, które są wykorzystywane przez inne wątki programu.
Dla systemów z pamięcią współdzieloną wykorzystuje się mechanizm zwany OpenMP (Open Multi Processing), natomiast w przypadku rozwiązań z pamięcią rozproszoną stosuje się rozwiązanie zwane MPI (Message Passing Interface).
Oba te sposoby wymagają stosownego podejścia programistycznego, aby zapewnić efektywną wymianę danych między procesami realizowanymi na poszczególnych rdzeniach procesorów.
Dla platform z pamięcią rozproszoną, która składa się w wielu węzłów obliczeniowych, kluczowym problemem jest zapewnienie jak najszybszego sposobu wymiany danych między procesami, które są najczęściej realizowane na różnych węzłach. Niektóre rodzaje oprogramowania nie wymagają bardzo częstej wymiany danych między węzłami i wtedy mówimy o architekturze połączeń typu Coarse Grain (grubozianiste), inne z kolei wymieniają te dane bardzo intensywnie i wtedy mówimy o architekturze typu Fine Grain (drobnoziarnistej). Najczęściej połączenia między węzłami realizuje się w technologii InfiniBand o szybkości 40 Gbps (QDR), 56 Gbps (FDR), 100 Gbps (EDR) lub 200 Gbps (HDR), ale także w technologii Intel Omni-Path.
Jaki z tym wszystkim związek mają superkomputery?
Otóż superkomputery są bardzo rozbudowanymi architekturami z pamięcią rozproszoną. Są w większości wypadków zbiorem węzłów (nodów) z jednym tylko procesorem, czasem z parą procesorów ogólnego zastosowania uzupełnionych o bardzo wydajne, specjalizowane układy GPU (Graphical Procesor Unit). Jest tu cała gama rozwiązań, o czym więcej będzie w dalszej części materiału.
Przy rozwiązaniu opartym na wielu węzłach przetwarzających, kluczową sprawą jest zapewnienie bardzo efektywnej i bardzo wydajnej infrastruktury połączeń z minimalnymi opóźnieniami. Tu także istnieje wiele różnych realizacji, które bardzo różnią się parametrami wydajnościowymi jakie udaje się uzyskać.
Technologie realizacji połączeń między węzłami dla platform superkomputerów o wielu tysiącach węzłów obliczeniowych są olbrzymim fragmentem wiedzy. Warto wiedzieć, że są one kluczowe dla wydajności całości rozwiązania, gdzie poza wydajnością pojedynczego węzła, o wydajności superkomputera decyduje także szybkość wymiany danych między węzłami.
Inne elementy superkomputerów
Należy mieć świadomość, że rozwiązania HPC, a zwłaszcza superkomputery stanowią bardzo złożone architektury zawierające wiele elementów technologicznych i zarządzających w tym:
- systemy operacyjne – często linuksowe, ale większości przypadków superkomputerów – inne systemy, unikalne, często specjalizowane bądź silnie modyfikowane na potrzeby danego rozwiązania
- systemy tzw. deploymentu i zarządzania – zapewniające automatyczne instalacje systemów operacyjnych na bardzo wielu węzłach, zdalne konfiguracje węzłów, monitorowanie ich pracy i działania administracyjne
- system zarządzania zasobami klastra (Workload Manager) – zapewniający zarządzanie zasobami klastra lub superkomputera, przydzielanie i udostępnianie ich do obliczeń, zarządzanie kolejkami zadań i przydzielanie im zasobów, egzekwowanie polityk współdzielenia zasobów między użytkownikami, rozliczanie wykorzystania itp.
- biblioteki i kompilatory – dostarczane użytkownikom i programistom, dotyczące samej platformy obliczeniowej oraz wykorzystywanego oprogramowania.
- równoległy system plików dla potrzeb obliczeń, w tym zasoby skąd dane są pobierane do przetwarzania, a także miejsce składowania danych przetworzonych; jest to z reguły równoległy system typu GPFS lub Lustre, którego struktura i podłączenie do klastra lub superkomputera wymaga starannego projektu w zakresie zapewnienia oczekiwanej przepustowości dostępu i zapisu poprzez dobór zasobów pod zadania metadata (MDS/MDT) oraz zasobów storage (OSS/OST)
- struktura połączeń węzłów obliczeniowych oraz dostępu do równoległego systemu plików zapewniająca wysoką przepustowość i minimalne opóźnienia; często są to struktury sieci InfiniBand 40, 56, 100 lub 200 Gbps w różnej topologii np. Fat-Tree Nonblocking; dla dużych systemów superkomputerowych są to specjalne, unikatowe rozwiązania np. Fujitsu K Computer – Tofu-2 (6 wymiarowy torus ze skalowaniem do 100 000 węzłów), CRAY Aries Interconncet (Dragonfly Topology).
Poniżej zaawansowany, kompletny system zarządzania klastrem obliczeniowym na przykładzie pakietu Fujitsu HPC Cluster Suite. Można tu zidentyfikować obsługę wielu niezbędnych zadań dla poprawnego funkcjonowania klastra obliczeniowego i jego zarządzania.
Każde rozwiązanie klastra HPC, a zwłaszcza superkomputerów ma analogiczne środowisko zarządzania, często z wieloma komponentami charakterystycznymi dla danej technologii i implementacji.
Dla pewnego przybliżenia skali złożoności rozwiązań superkomputerów przedstawiono poniżej ogólny schemat architektury najszybszego aktualnie komputera na świecie wg listy top500 – chińskiego Sunway TaihuLight.
Sama moc obliczeniowa w postaci węzłów obliczeniowych musi być uzupełniona o wiele dodatkowych elementów z zakresu infrastruktury komunikacyjnej, zasobów macierzy dyskowych z systemami plików oraz o całą bardzo ważną warstwą oprogramowania, bibliotek, zarządzania itd. Dopiero doskonała współpraca wszystkich tych komponentów daje funkcjonujące, pełnowartościowe rozwiązanie systemu przetwarzania, który nazywamy superkomputerem.
Na kolejnej podstronie piszemy m.in. o miarach wydajności procesorów w superkomputerach.
O miarach wydajności
Już wiele lat temu opracowano, stosowany do dziś, test wydajności oparty o szybkość przetwarzań zmiennoprzecinkowych LINPACK. Były to czasy, gdy wydajności procesorów i wymiana danych między nimi, były kluczowe dla wynikowej szybkości superkomputerów. W chwili obecnej przetwarzania posiadają nieco inne charakterystyki, ale stare przyzwyczajenia biorą górę i nadal superkomputery są porównywane między sobą za pomocą starszych miar wydajności.
Powszechnie stosowaną miarą wydajności rozwiązań HPC, w tym także systemów superkomputerowych jest liczba operacji zmiennoprzecinkowych wykonywanych w ciągu sekundy.
Miara ta jest ściśle i jednoznacznie związana z procesorami tworzącymi rozwiązanie.
Jednostką wydajności jest tu FLOPS – Floating Point Operations per Second.
Dla pojedynczego procesora wyraża się on iloczynem następujących wielkości:
- szybkością zegara taktującego procesora [GHz]
- liczbą rdzeni procesora
- liczbą wykonywanych instrukcji zmiennoprzecinkowych na cykl zegara
- stosowane są tu dwie miary
- SP – Single-Precision – format 32-bitowy
- DP – Double-Precision – format 64-bitowy
- Zwykle podaje się obie wielkości, a dla przykładowych procesorów wynoszą one
- Intel Xeon Nahalem – SP = 8, DP = 4
- Intel Xeon Broadwell – SP = 32, DP = 16
- Intel Xeon Scalable (od Gold Advance i wyżej) – SP = 64, DP = 32
Widać jak bardzo wielkości te zmieniały się wraz ze zmianą generacji procesorów.
- stosowane są tu dwie miary
Dla przykładu, wybrane procesory Intel Xeon najnowszej generacji (Xeon Scalable) mają następującą moc obliczeniową:
- Xeon Gold 6130 (16C/32T 2.1GHz) – 1075 GFLOPS
- Xeon Platinum 8170 (26C/52T 2.0GHz) – 1747 GFLOPS
- Xeon Platinum 8180 (28C/56T 2.5GHz) – 2240 GFLOPS.
Jeśli wyobrazimy sobie superkomputer HPC zbudowany na bazie stu, dwuprocesorowych serwerów, gdzie będą to procesory Xeon Platinum 8180, to wydajność całości rozwiązania wyniesie 448 000 GFLOPS, a więc 448 TFLOPS.
Są to miary wydajności zależne jedynie od architektury samych procesorów i są one określane jako wydajności teoretyczne. Mogą być zatem pewnym odniesieniem dającym pojęcie o skali wydajności danego rozwiązania, ale nie o praktycznej wydajności.
Wydajność praktyczna została zdefiniowana przez Jacka Dongarrę wiele lat temu w benchmarku LINPACK (HPL) jako szybkość rozwiązywania gęstych układów równań liniowych, które są często spotykane w problemach inżynieryjnych i naukowych.
Wynik benchmarku jest podawany także w jednostkach GFLOPS i zawsze jest mniejszy niż jego odpowiednik teoretyczny. W zależności od skali rozwiązania oraz technologii samych węzłów obliczeniowych, a także sposobu ich połączeń, może stanowić od 60 do do 90 proc. wydajności teoretycznej. Oczywiście, im bliższy wartości teoretycznej jest wynik LINPACK, tym lepiej świadczy to o efektywności rozwiązania. Na stronie www.top500.org można znaleźć wyniki LINPACK dla najszybszych superkomputerów na świecie.
Od razu widać rekordzistę – to Sunway TaihuLight z Chin z rekordowym wynikiem 93 PFLOPS (HPL), co daje mu niemal trzykrotną przewagę nad Tianhe-2 (MilkyWay-2), także z Chin.
Należy zwrócić uwagę, że najlepsze współczynniki wydajności uzyskanej w teście LINPACK (Rmax) w stosunku do maksymalnej, teoretyczne wydajności (Rpeak), uzyskał K Computer firmy Fujitsu z centrum komputerowego w Riken w Japonii. Jego efektywność wynosi aż 93!
Ranking wydajności systemów HPC i superkomputerowych oparty na teście LINPACK jest najpowszechniejszym i najbardziej znanym testem wydajnościowym. Jest ze swej natury bardzo związany z architekturą procesorów i szybkością ich przetwarzania, jednak stawia mniejszy nacisk na czas dostępu do pamięci operacyjnej oraz szybkość i efektywność połączeń między węzłami obliczeniowymi.
Dlatego też wraz z rozwojem technologii oraz specjalistycznych zastosowań pojawiły się także inne benchmarki.
Benchmark Green500
W tym teście najwyżej punktowane są rozwiązania zapewniające najwyższy współczynnik wykorzystania energii w stosunku do uzyskanej wydajności testu LINPACK. Prym wiodą unikalne systemy ZettaScaler stosujące technologię chłodzenia Liquid Immersion Cooling System, gdzie całe urządzenie jest zanurzone w specjalnej cieczy chłodzącej.
W ostatnich latach opracowano także nowy benchmark zwany HPCG (High Performance Gradients). Według jego twórców (jest wśród nich także twórca LINPACK-a – Jack Dongarra), LINPACK wykonuje algorytmy bogate w obliczenia na gęstych strukturach danych, aby określić teoretyczną maksymalną prędkość superkomputera. Dzisiejsze aplikacje często wykorzystują rzadkie struktury danych, a obliczenia są mniejsze. Natomiast typowe aplikacje operujące na dużych zbiorach danych, takie jak uczenie maszynowe, analizy finansowe, a wraz z tym globalne operacje zbiorowe, gdzie kluczem do wydajności są podsystemy pamięci, nie są testowane w teście HPL (LINPACK).
Dlatego w Sandia National Laboratories powstał test HPCG, którego wyniki z listopada 2017 roku pokazuje poniższa tabela.
Test HPCG szczególny nacisk kładzie na wydajność współpracy procesorów z systemami pamięci. Widać, że rekord to zaledwie 5,4 proc. tego, czego można byłoby się spodziewać z benchmarku LINPACK. Ukazuje to, jak poważne są problemy z efektywnym zasileniem szybkich rdzeni procesorów w dane z pamięci.
Rekordzistą jest K Computer firmy Fujitsu zlokalizowany w centrum obliczeniowym Riken Advanced Institute for Computation Science. Należy także przypomnieć, że jest to komputer o najwyższym współczynniku między testami Rmax i Rpeak – aż 93 proc. w testach maszyn z listy Top500.
Warto podkreślić, że superkomputery, zwłaszcza te nowej generacji są przeznaczone nie tylko do realizacji typowych obliczeń numerycznych i symulacyjnych, ale także do uczenia się maszynowego i sztucznej inteligencji – a więc tych obszarów wiedzy, które jeszcze do niedawna były na wstępnym etapie rozwoju i nie przewidywano, że superkomputery znajdą w nich zastosowanie. Dlatego też zmiana miarodajnego benchmarku z HPL na HPCG jest ze wszech miar pożądana, choć jak pokazuje życie pokonanie przyzwyczajeń nie jest proste.
Benchmark Graph500
To test, który powstał, aby umożliwić ocenę skalowalności klastrów HPC w zakresie intensywnej wymiany danych. Moc obliczeniowa rozwiązania jest tu badana pod względem wydajności przy przetwarzaniu grafów. Benchmark Graph500 generuje znaczny poziom komunikacji oraz synchronizacji, a procesowanie grafów wymusza duże zapotrzebowanie i obciążenie pamięci.
Benchmark Graph500 generuje graf w postaci listy wierzchołków (vertices). Rozwiązania skaluje się wg nazewnictwa jak w tabeli poniżej, gdzie przykładowo rozwiązanie skali „Large” określa się jako zdolne do przetwarzania grafu o 238 wierzchołków.
Poniżej przedstawiony jest wykres wiążący ze sobą wielkości GTEPS (Giga Traversed Edges per Second), ze skalą rozwiązania (ilość wierzchołków 220 – 231) oraz ilości węzłów przetwarzających.
Ponieważ benchmark Graph500 w zupełnie inny sposób ocenia wydajność rozwiązania HPC niż standardowy benchmark HPL, zatem i kolejność na liście najbardziej wydajnych maszyn jest tu zupełnie inna. Na pierwszym miejscu, podobnie jak w benchmarku HPCG, jest superkomputer K Computer firmy Fujitsu. Został on oddany do użytku w 2011 roku i nadal jest niepokonany. Wynika to z faktu, że wiele kluczowych elementów architektury tego superkomputera zostało od podstaw zaprojektowanych z dużą starannością w zakresie dostępu do pamięci. Używa on niezwykle wydajnego systemu połączeń między węzłami opartego o własną topologię Tofu – 6-wymiarowy torus. Pomimo nie najbardziej wydajnych procesorów w stosunku do aktualnej konkurencji, komputer ten stanowi czołowe osiągnięcie w zakresie technologii superkomputerów.
Dalej przeczytacie o typach procesorów wykorzystywanych w superkomputerach.
Procesory w rozwiązania HPC i superkomputerach
Jednym z kluczowych elementów rozwiązań superkomputerów są węzły obliczeniowe, a głównie – zastosowane w nich procesory. Aktualnie stosowane rozwiązania procesorowe można łatwo prześledzić na podstawie pierwszych dziesięciu pozycji z listy Top500 (www.top500.org). Łatwo zauważyć, że występuje kilka rodzajów platform, gdzie węzły obliczeniowe są oparte na różnych rozwiązaniach.
Ponieważ wśród procesorów, które stanowią zasadnicze elementy mocy obliczeniowej, są zarówno unikalne procesory, które zostały opracowane specjalnie na potrzeby realizowanych projektów, a także procesory graficzne, przedstawimy je w kilku zdaniach:
Procesory SW26010 260c
Procesor ten został opracowany w Shanghai High Performance IC Design Center. Składa się z czterech klastrów jednostek CPE (Computing Processing Elements), każda po 64 rdzenie RISC. Daje to wydajność 3,06 TFLOPS na węzeł obliczeniowy przy 260 rdzeniach. Procesor ten ujawnia jak bardzo silne i niezależne od technologii powszechnie znanych są rozwiązania chińskie.
Nie ma na razie pewności, czy procesor ten lub jego następca znajdzie zastosowanie w planowanym przez rząd chiński superkomputerze Exascale Tianhe-3, którego powstanie szacuje się na 2020 rok. Są jednak pewne przecieki, że nowy Tianhe-3 może być oparty na procesorze FT-2000/64 będącym implementacją technologii ARM64 oferowaną przez firmę Phytium – chińskiego dostawcę rozwiązań IC.
Procesory PEZY-SC2
PEZY-SC2 jest procesorem typu many-core MIMD (Multiple Instruction – Multiple Data) opracowanym w Japonii. Oferuje 2048 rdzeni i 16384 wątki, zapewniając wydajność 4,1 TFLOPS w podwójnej precyzji. Procesor ten jest podstawą rozwiązania superkomputera ZettaScaler, który jest na 1-wszym miejscu rankingu Green500.
Planowane jest rozwijanie tej rodziny procesorów w kolejnych generacjach superkomputerów ExaScaler, przewidując, że uzyskany będzie 4-krotnie lepszy wynik w efektywności mocy obliczeniowej na wat mocy w stosunku do aktualnego procesora.
Procesory graficzne
W wielu rozwiązaniach HPC oraz superkomputerach bardzo ważną role odgrywają procesory graficzne GPU (Graphical Processor Unit). Jeśli spojrzymy na taksomonię systemów komputerowych Flynn’a, to procesory tego typu plasują się w kategorii rozwiązań typu SIMD (Single Instruction – Multiple Data), co oznacza, że są generalnie przeznaczone do takich zastosowań, gdzie duża ilość danych jest poddawana tym samym obliczeniom. Zjawisko takie ma miejsce przy pracy z obrazami, gdzie np. rozjaśnienie obrazu, jest realizowane pojedynczą instrukcją, a dotyczy wszystkich danych składających się na piksele obrazu.
Powszechnie znane procesory ogólnego zastosowania, jak Xeon, AMD, RISC są procesorami typu MIMD (Multiple Instruction – Multiple Data).
Procesory graficzne są silnie zorientowane na przetwarzanie dużej ilość danych w podobny sposób. Znalazło to zastosowanie w rozwiązaniach HPC i superkomputerowych, bowiem wiele rodzajów zadań można efektywnie zrealizować w ten właśnie sposób. Jednocześnie tworzone od wielu lat rozwiązania procesorów graficznych są w kolejnych swych generacjach uzupełniane o możliwości efektywnej pracy w środowiskach HPC.
Powszechnie używane są rozwiązania procesorów NVIDIA Tesla w kolejnych generacjach Fermi, Kepler, Maxwell, Pascal, a ostatnio Volta, który w postaci Tesla V100 SXM2 oferuje wydajność blisko 8 TFLOPS wydajności w podwójnej precyzji na 5120 rdzeniach i 125 TFLOPS na 640 specjalizowanych rdzeniach tensorowych. Procesory Tesla nie stanowią autonomicznych jednostek obliczeniowych, ale muszą współpracować z procesorami klasycznymi, ogólnego zastosowania (Xeon, RISC).
Inną powszechnie znaną grupą procesorów graficznych jest linia procesorów Intel serii Xeon Phi, której kolejne generacje noszą nazwy kodowe Knights Corner, Knights Landing, Knights Mill oraz Knights Hill. Produkcja tego ostatniego została aktualnie zawieszona przez Intela, najprawdopodobniej z powodów technologicznych, ale nie jest to w pełni jasne. Szeroko stosowany Knights Landing oferuje wydajność na poziomie blisko 3,5 TFLOPS’ów dla przetwarzania podwójne precyzji. Procesory te cechują się możliwością autonomicznej pracy bez konieczności współpracy z procesorami klasycznymi, dlatego też niektóre węzły obliczeniowe mogą opierać się jedynie na tych procesorach.
Warto wiedzieć, że drugi na liście komputer Tianhe-2 jest dostępny także w wersji zmodyfikowanej Tianhe-2A (Milkyway-2A), gdzie procesor graficzny Xeon Phi (KNC) został zastąpiony przez chiński akcelerator Matrix-2000.
Procesory RISC
Wśród najbardziej wydajnych superkomputerów wyposażonych w procesory RISC znajdujemy maszynę Sequoia z procesorami IBM Power BQC.
Rozwiązania superkomputerów konstrukcji firmy IBM, nadal opierać się będą na procesorach RISC Power. W aktualnie powstających superkomputerach Summit (dla ORNL) oraz Sierra (dla LLNL) zastosowane zostały procesory Power najnowszej generacji – IBM Power 9, które połączono wysokowydajnymi interconnect’ami NVLink z procesorami graficznymi NVIDIA Tesla V100 (generacja Volta).
K Computer opiera się na procesorach SPARC64 w wersji SPARC64 VIIIfx, który jest przeznaczony dla jednoprocesorowych węzłów obliczeniowych
Z przeznaczeniem dla superkomputerów pojawiały się kolejno procesory:
- SPARC64 VIIIfx (8rdzeni)
- wydajność procesora 128 GFLOPS
- zastosowany w superkomputerze Fujitsu K Computer
- SPARC64 IXfx (16 rdzeni)
- wydajność procesora 236 GFLOPS
- zastosowany w superkomputerze Fujitsu PRIMEHPC FX10
- SPARC64 XIfx (32 rdzenie)
- wydajność procesora ok 1 TFLOPS
- zastosowany w superkomputerze Fujitsu PRIMEHPC FX100.
Na ostatniej podstronie przeczytacie o najszybszych i najciekawszych superkomputerach.
Projekty Exascale Computing
Aktualnie, najszybszym komputerem znajdujący się na liście top500 jest maszyna Sunway o wydajności teoretycznej ok. 125 PFLOPS-ów. Pomimo tego co opisano w części o wydajnościach, że benchmark teoretyczny lub LINPACK (HPL) zupełnie nie odzwierciedlają faktycznej wydajności w realnych zastosowaniach, to siła przyzwyczajenia jest ogromna i nadal porównuje się superkomputery właśnie poprzez ich FLOPS-y.
Stany Zjednoczone – Exascale Comp
Jedną z głównych instytucji rządowych, napędzających rozwój systemów superkomputerowych w Stanach Zjednoczonych jest Departament Energii oraz NNSA (Agencja Narodowego Bezpieczeństwa Nuklearnego). Pod jej nadzorem powstał projekt zwany Exascale Computing Project (ECP), którego zadaniem jest dostarczanie rozwiązań przetwarzania komputerowego skali exa, czyli takiego, które sprosta największym wyzwaniom naukowym. W projekcie biora udział centra komputerowe, tzw. zwane National Laboratiories, które pracują pod nadzorem Departamentu Energii USA, m.in. Oak Ridge National Laboratory (ORNL), Argonne National Laboratory (ANL), Los Alamos National Laboratory (LANL) oraz Berkeley Lab (Lawrence Berkeley National Laboratory – LBNL).
W chwili obecnej są realizowane wdrożenia superkomputerów Summit w Oak Ridge NL oraz Sierra w Lawrence Livermore NL. Projekt superkomputera Aurora w Argonne NL został na odłożony. Superkomputery Summit oraz Sierra są tworzone na bazie technologii procesorów IBM Power 9 oraz NVIDIA Tesla V100.
Sierra będzie mieć ok. 4600 węzłów, każdy o wydajności ok. 40 TFLOPS-ów, a docelowa sumaryczna wydajność to ponad 200 PFLOPS-ów.
Bliźniaczy superkomputer Sierra w Lawrence Livermore NL, a więc także zbudowany na bazie procesorów IBM Power 9 oraz NVIDIA Tesla V100, będzie miał wydajność na poziomie 125 PFLOPS-ów.
Oba projekty powinny zostać zakończone jeszcze w 2018 roku. Trzeci z dużych superkomputerów Aurora, który będzie przeznaczony dla Argonne NL oparty ma być na komputerach Cray wyposażonych w procesory Xeon Phi 3 generacji. Niestety projekt ten ulegał na przestrzeni czasu znacznym modyfikacjom związanym z tym, że firma Intel zmieniła swoją politykę w stosunku do procesorów Xeon Phi, co wg niepotwierdzonych informacji było wynikiem pewnych problemów technologicznych. Tak czy inaczej wstępnie planowana wydajność superkomputera Aurora planowana na ok 180 PFLOPS’ów jest przeskalowana na Exascale jako pierwszy tej skali superkomputer w Stanach Zjednoczonych z przewidywanym czasem realizacji na lata 2021-2022.
W chwili obecnej, sekretariat Departamentu Energii ogłosił przetarg na superkomputery dla Oak Ridge NL oraz Lawrence Livermore NL jako następcy aktualnie wdrażanych platform Summit oraz Sierra, z wydajnością Exascale z wdrożeniem w latach 2022-2023. Roboczo są one nazywane jako Frontier oraz El Capitan.
Chiński superkomputer Exascale
Aktualnie na czele listy Top500 są dwa superkomputery pracujące w ośrodkach w Chinach. Są to Sunway TaihuLight oraz Tianhe-2. Sunway jest absolutnym liderem o teoretycznej wydajności 125 PFLOPS-ów. Jednak wyścig wydajności Exascale trwa, a Chiny mają duże szanse, aby mimo planów Stanów Zjednoczonych, pozostać liderem.
Wiadomo, że trwają prace na najnowszym superkomputerem Tianhe-3. Niewiele wiadomo na razie o tym, w którą stronę idą prace projektowe, ale z pewnych przecieków wiemy, że może to być niestosowana dotychczas w Chinach technologia HPC, a mianowicie procesory oparte na technologii ARM. Mogą to być procesory FT-2000/64 zgodne z ARMv8 ISA, które są produkowane przez firmą Phytium Technology Co. z Chin. Przewiduje się, że połączenie procesorów FT-2000/64 oraz akceleratorów Matrix2000 GPDSP – także produkcji chińskiej – może umożliwić stworzenie niezwykle wydajnego superkomputera. Tym bardziej, że zapewne zastosowane byłyby procesory oraz akceleratory nowszych generacji w stosunku do dostępnych obecnie. Należy przypomnieć, że akcelerator Matirx2000 jest aktualnie już stosowany w nowszej wersji superkomputera Tianhe-2A.
Japoński superkomputer Exascale
O ile plany zastosowania procesora o architekturze ARM w rozwiązaniach chińskich superkomputerów są na razie przeciekiem prasowym, to zastosowanie procesorów ARM w superkomputerze Fujitsu Post-K zostało oficjalnie ogłoszone. Do tej pory firma Fujitsu oferowała w swoich superkomputerach procesory SPARC64. W kolejnych wersjach znalazł się one w K-Computerze, a także jego następcach: komputerach FX10 oraz FX100.
Przejście na architekturę ARM spowodowane jest – jak twierdzi Fujitsu – lepszym ekosystemem sofware’owym niż ten ze SPARC, lepszym wsparciem i bardzo dużą liczbą dostępnych funkcji, a także bardzo niskim zapotrzebowaniem na energię. Dzięki współpracy Fujitsu z firmą ARM możliwe stało się opracowanie rozszerzeń SVE (Scalable Vector Extension) i dodanie ich do architektury ARMv8-A.
Powstawanie komputera Post-K jest realizowane przez ośrodek Riken, przy współpracy technologicznej z Fujitsu. Jest to projekt pod nazwą FLAGSHIP 2020 Project i zgodnie z nazwą, planowane udostępnienie tego rozwiązania jest właśnie w 2020 roku. Planowana wydajność tego superkomputera nie została podana, ale wiadomo, że ma przekroczyć 1 EFLOPS-a, a więc wpisać się w trend rozwiązań typu Exascale.
Europejskie drogi do rozwiązań Exascale
W zakresie technologii HPC i superkomputerów, Europa nieco różni się od Stanów Zjednoczonych, Chin, czy Japonii, głównie tym, że istnieją tu silne ośrodki obliczeniowe, które są związane przede wszystkim z projektami realizowanymi na potrzeby krajów, w których się znajdują. Istnieją oczywiście inicjatywy i realizacje wspólnych projektów badawczych na poziomie międzynarodowym, ale dopiero pewne działania ogólnoświatowe związane z Exascale Computingiem, dały silny impuls do powstania europejskich ośrodków obliczeniowych. Kluczową, pozycję zajmuje inicjatywa EXDCI (European Extreme Data & Computing Initiative), która m.in. koordynuje strategiczny europejski projekt Horizon 2020 w części dotyczącej HPC. Horizon 2020 jest największym programem UE dotyczącym badań naukowych i innowacji.
W zakresie technologii EXDCI opiera się na dwóch najważniejszych organach HPC w Europie:
- ETP 4 HPC – European Technology Platform for HPC
- PRACE (Partnership for Advanced Computing in Europe).
Powstała w 2011 roku organizacja ETP4HPC łączy dostawców technologii, dostawców usług oraz centra badawcze, tworząc platformę wspólnych działań oraz innych aktywności wobec pozostałych gremiów tworzących europejska infrastrukturę HPC oraz wpływających na ogólnoeuropejskie kierunki działań rozwojowych. Pięć europejskich ośrodków obliczeniowych tworzy trzon PRACE:
- BSC (Barcelona Supercomputing Center) – reprezentujący Hiszpanię
- Komputer MareNostrum 4 (13.7 PFLOPS)
- CINECA (SCAI – SupeComputing Applications and Innovation) –reprezentujący Włochy
- Komputery Marconi A1/A2/A3 (20 PFLOPS)
- CSCS (Swiss National Supecomputing Centre) – reprezentujący Szwajcarię
- Komputery Piz Daint-Hybrid (7.7 PFLOPS), Piz Daint (750 TFLOPS), Monte Rosa (402 TFLOPS)
- GCS (Gauss Centre for Supercomputing) – reprezentujący Niemcy
- Komputery Juqueen (5.9 PFLOPS), SuperMUC (6.8 PFLOPS), HazelHen (7.42 PFLOPS)
- GENCI (French National Equipment for Intensive Computing) – reprezentujący Francję
- Komputery Curie (2 PFLOPS), ADA (230 TFLOPS), Turing (830 TFLOPS), Occigen (2.1 PFLOPS).
Poza wyżej wymienionymi centrami obliczeniowymi do PRACE należy jeszcze 25 członków. Wśród nich jest Instytut Chemii Bioorganicznej PAN z PCSS (Poznańskie Centrum Superkomputerowo-Sieciowe). Działanie prowadzone przez PCSS w ramach współpracy w PRACE są realizowane wspólnie z pozostałymi ośrodkami obliczeniowymi w Polsce, w tym Cyfronet (AGH), ICM (interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego Uniwersytetu Warszawskiego), TASK (Trójmiejska Akademicka Sieć Komputerowa – Politechnika Gdańska), WCSS (Wrocławskie Centrum Sieciowo-Superkomputerowe – Politechnika Wrocławska).
Superkomputer Mont-Blanc
Barcelona Supecomputing Center (BSC) od 2011 roku uczestniczy w projekcie o nazwie Mont-Blanc. Projekt ten miał już dwie fazy wstępne, a w chwili obecnej realizowana jest trzecia faza tego projektu. Projekt ten polega się zastosowaniu procesorów architektury ARM do platform superkomputerów, jako szczególnie energooszczędnego rozwiązania. Pierwotnie liderem było centrum BSC, gdzie instalowane były rozwiązania BullX z 2160 procesorami 1080 GPU. Na obecnym etapie projektu, realizowany jest prototyp nr 3 projektu Mont-Blanc o nazwie Dibona, który jest prowadzony przez firmę Atos i opiera się na rozwiązaniu BullSequana X1000. Jest to kompleksowe rozwiązanie blade, gdzie zasadniczym komponentem będą serwery blade BullSequana X1310 na procesorach ARM o przewidywanej w tej chwili konfiguracji na ponad 3000 rdzeni ARMv8 (Cavium ThunderX2). Sieć połączeń między węzłami ma w tym etapie zapewniać technologia InfiniBand EDR (100 Gbps). Serwery te będą dostępne w drugim kwartale 2018 roku.
Docelowa wersja tego projektu nosi nazwę Mont-Blanc 2020 i będzie wynikiem wszystkich etapów prototypowych. Oprócz trzech kluczowych partnerów, a więc BSC, Bull (Atos Group) oraz ARM, w projekcie uczestniczą także inni partnerzy technologiczni. Zakończenie projektu przewiduje się na listopad 2020 roku.
Superkomputer Isambard
Drugim dużym projektem jest przedsięwzięcie aliansu GW4 (Great West 4), obejmujące cztery uniwersytety południowo-zachodniej części Wielkiej Brytanii:
- University of Bath
- University of Bristol
- Cardiff University
- University of Exeter.
Wynikiem działania tego aliansu jest projekt superkomputera Isambard, który oparty będzie na technologii systemu Cray XC50 serie. Nazwa superkomputera upamiętnia Isambarda Brunela (1806-1859), znakomitego inżyniera czasów wiktoriańskich i budowniczego m.in. kolei Great Western Railway, drugiego po Winstonie Churchillu Brytyjczyka wszech czasów.
Superkomputer Isambard będzie obejmował ponad 10000 rdzeni ARMv8 (Cavium ThunderX2). Według realizujących ten projekt, Isambard będzie pierwszym na świecie produkcyjnym superkomputerem opartym na procesorach ARM.
Isambard będzie przede wszystkim używany na potrzeby grupy GW4. Jego zasoby będą także udostępniane na poziomie kolejnych tierów, w tym na potrzeby regionalnych centrów HPC Wielkiej Brytanii, dalej UK National Supercomputing Services (Archer), a w końcu na poziomie tier 0 – PRACE (Partnership for Advanced Computing in Europe) oraz DoE (US Department of Energy).
Superkomputer Isambard będzie bazował na technologii firmy Cray XC50 i jego wersji z procesorami ARMv8 w wersji Cavium ThunderX2. Każdy z węzłów obliczeniowych będzie zawierał po dwa procesory 32-rdzeniowe.
O procesorach ARM
Patrząc na wspomniane wcześniej planowane duże projekty Exascale, widać ogromne zainteresowanie procesorami ARM. W projekcie Mont-Blanc są one z dużym sukcesem testowane już od dobrych kilku lat i w końcu powstanie zapewne końcowa implementacja na platformie Bull Sequana. Japoński Post-K superkomputer ma być oparty na procesorach ARM z własnymi rozszerzeniami. Projekt aliansu GW4 – komputer Isambard – to także kolejna, wdrażana już implementacja oparta na technologii procesorów ARM. Przecieki prasowe donoszą, że powstający chiński Thianhe-3 być może także będzie oparty na chińskiej wersji procesorów ARM.
To co ogólnie nazywa się procesorami ARM, to w rzeczywistości architektura ARM (Advanced RISC Machine). Architektura ARM oznacza, że jest to nic innego jak model programowy, co oznacza że procesory często mające bardzo odmienną budowę fizyczną są ze sobą kompatybilne pod kątem programistycznym.
Jeśli ktoś słyszał o procesorach SPARC, to być może pamięta, że procesory SPARC były fizyczną realizacją modelu programowego – ISA (Instruction Set Architecture) dla 64-bitów SPARC ver9. Publicznie dostępna dokumentacja opisująca ISA była podstawą dla firm implementujących. Najbardziej znanymi implementacjami ISA SPARC ver9 były fizyczne procesory UltraSPARC firmy Sun Microsystems oraz SPARC64 firmy Fujitsu. Są to zupełnie odmienne implementacje modelu programowego SPARC v9, ale oczywiście w pełni zgodne programowo.
Analogiczna sytuacja jest z technologią ARM, choć z racji ogromnej popularności w wielu już zastosowaniach, dużo bardziej skomplikowana.
Firma ARM Holdings PLC, twórca architektury ARM, nie produkuje mikroprocesorów, ale sprzedaje licencje na zaprojektowane przez siebie architektury. Procesory oparte na architekturze ARM, jak się szacuje, są najczęściej stosowanymi procesorami na świecie i zajmują ponad 75 proc. rynku procesorów 32-bitowych w systemach wbudowanych w tym w dyskach twardych, smartfonach, routerach itd.
Firma ARM opracowuje specyfikacje na kolejne generacje rdzeni np. Cortex-A73, które stanowią podstawę większej architektury np. ARMv8-A. Oznaczenie ARMv8-A definiuje zestaw instrukcji i stanowi punkt wyjściowy do implementacji fizycznej dla zainteresowanych producentów układów scalonych.
Wśród producentów układów, którzy stosują w produkcji procesorów np. ISA ARMv8-A znajdziemy m.in.:
- Apple (ARMv8-A): Mikroarchitektury AX – Cyclone, Typhoon, Twister, Hurricane
- NVIDIA (ARMv8-A): Mikroarchitektura Denver
- AMD (ARMv8-A): Mikroarchitektura K12
- Samsung (ARMv8-A) Mikroarchitektura Exynos M1 Mongoose
- Cavium (ARMv8-A) Mikroarchitektura ThunderX.
To właśnie Cavium zdobyło bardzo wysoką pozycję w zakresie implementacji fizycznej architektury ARM dla rozwiązań serwerowych. Procesory ARMv8-A ThunderX2 są podstawą dla rozwiązań w superkomputerach Mont-Blanc (Bull Sequana) oraz Isambard (Cray X50).
Firma Cavium dostarcza zaimplementowane przez siebie procesory ARM z rdzeniami ThunderX2 dla ogólnie dostępnych serwerów HPC. Można tu znaleźć rozwiązania firmy Cray – serwer XC50, Atos (Bull Sequana X1310 komputer), HPE – komputer Apollo 70.
Inne planowane do wprowadzenia na rynek superkomputery bazujące na technologii ARM będą najprawdopodobniej wykorzystywały własne implementacje tej technologii. Dotyczy to firmy Fujitsu, która sama od wielu lat produkuje procesory SPARC64. A być może dotyczyć będzie również powstającego superkomputer Thianhe-3, który jak się wydaje, może być wyposażony w procesory Phytium FT-2000 zgodne ze specyfikacją ARMv8.
Superkomputery a komputery kwantowe
Komputery kwantowe opierają się na wykorzystaniu kwantowych zjawisk zwanych superpozycją, splątaniem kwantowym oraz tunelowaniem kwantowym. Szczególnie znaczenie ma tu zjawisko superpozycji umożliwiające uzyskanie wyniku w jednym kroku analizującym wszystkie możliwe warianty stanów początkowych. Daje to możliwość ogromnego przyspieszenia działania wielu algorytmów obliczeniowych. Miarą wielkości, mocy obliczeniowej komputera kwantowego jest ilość kubitów (jednostek informacji będących jednocześnie w stanie „1” i „0”). O technologii komputerów kwantowych pisałem w CHIP-ie szerzej w marcu.
Poza rozwijaną od kilku lat technologią tzw. wyżarzania kwantowego ukierunkowaną na obsługę algorytmów optymalizacyjnych (D-Wave), pojawiają się już komputery kwantowe tzw. ogólnego zastosowania (IBM Q). Dodatkowo pojawiły się możliwości zapoznania się z programowaniem kwantowym, poprzez udostępnienie zasobów obliczeniowych komputerów kwantowych dla każdego, zainteresowanego użytkownika (IBM Q Experience oraz Rigetti).
Od jakiegoś czasu przeprowadzanie są testy tzw. supremacji komputerów kwantowych nad superkomputerami. Służą one określeniu liczby kubitów komputera kwantowego, którego już nie da się emulować na największych istniejących klasycznych platformach superkomputerowych. W chwili obecnej jest to granica ok. 50-60 kubitów w zależności od algorytmów emulacji. Jednocześnie jest to aktualna granica technologiczna dla wielkości komputerów kwantowych ogólnego zastosowania.
Jeśli pomimo początkowego etapu rozwoju komputerów kwantowych już spotykamy się ze zjawiskiem przekraczania możliwości obliczeniowych dostępnych superkomputerów, to czy w ogóle ma sens inwestowanie i rozwijanie technologii klasycznych rozwiązań?
Aby znaleźć odpowiedz na to pytanie, warto spojrzeć na pewne zasady rządzące rozwojem technologii od chwili jej pojawienia się do fazy dojrzałych zastosowań. Bardzo dobrze oddaje to graficznie tzw. Hype Cycle.
Hype Cycle jest prezentacją opracowaną i wykorzystywaną przez amerykańską firmę badawczą, doradczą i informatyczną Gartner do reprezentowania dojrzałości i stopnia upowszechenienia określonych technologii. Metoda ta dzieli rozwój technologii na pięć faz:
- Faza pojawienia się technologii
- Szczyt wygórowanych oczekiwań
- Faza rozczarowań
- Faza uświadomienia sobie faktycznych możliwości
- Faza dojrzałych zastosowań.
Praktyka i analiza dotychczasowych przypadków pojawienia się i rozwoju technologii uwidacznia, że od momentu zaistnienia technologii, trzeba przejść przez fazę przesadzonego entuzjazmu, a także fazę rozczarowań, aby w końcu spojrzeć na sprawę krytycznie i obiektywnie. Dopiero wtedy wchodzi się w fazę dojrzałych wdrożeń.
Widoczny poniżej wykres Hype Cycle dokładnie przedstawia doświadczenia i wnioski związane z każdą z pięciu faz. Daje on znakomity pogląd z jakimi problemami spotyka się nowa technologia zanim stanie się dojrzałym rozwiązaniem.
Jest to pewne uogólnienie na podstawie wielu prześledzonych historii technologii. W pewnej części przypadków faza przesadzonego entuzjazmu nie była tak znacząca, w innych zaś faza rozczarowań nie była aż tak pognębiająca, aby technologia musiała się niemal „odbić od dna”. Każda technologia ma więc de facto swoją własną historię, a czasem ta historia jest dopiero pisana. Jeśli teraz ponownie spojrzymy na komputery kwantowe i superkomputery, to od razu można zauważyć w jakich fazach znajduje się każda z tych technologii.
Te pierwsze są na razie w fazie „Technology Trigger”, a entuzjastyczne nastawienie powoli przesuwa je do fazy przesadnych oczekiwań. Czy faktycznie czeka nas jeszcze „kubeł zimnej wody” fazy rozczarowań, zanim komputery kwantowe pojawią się jako technologia dojrzała? Miejmy nadzieję, że nie.
Superkomputery bazują na technologiach, z których praktycznie wszystkie są w fazie dojrzałej. Fakt, że nowe generacje będą oparte na nowych procesorach, bardziej efektywnych rozwiązaniach połączeń nie ma tu żadnego znaczenia, bo obracamy się wokół technologii w znacznym stopniu ugruntowanych. Nawet zastosowanie technologii procesorów ARM było najpierw systematycznie i metodycznie testowane w kilku fazach w ramach projektu Mont-Blanc, w celu sprawdzenia kluczowych dla superkomputerów cech takich rozwiązań.
Nawet, jeśli jest się entuzjastą technologii komputerów kwantowych, to jak widać, warto nabrać pewnego dystansu i kompleksowo spojrzeć i ocenić pewne aspekty sprawy:
- dojrzałość technologiczna
- komputery kwantowe są w chwili obecnej na początkowym etapie swego rozwoju technologicznego; są implementacje już działające, ale czy na pewno optymalne w zakresie eliminacji błędów, dostępności technik ich realizacji, kosztów wytworzenia i utrzymania?; może czas przyniesie inne prostsze implementacje; w zakresie programistycznym, aktualnie stosowane aplikacje na klasycznych platformach musiałyby być praktycznie napisane od nowa (są co prawda już dostępne kompilatory na wybrane języki programowania dla komputerów kwantowych, ale…)
- superkomputery opierają się na powszechnie dostępnych technologiach krzemowych; kolejne generacje dotyczą zmian wydajności, czasem zmiany architektury procesorów (aktualnie sporo planowanych wdrożeń na procesorach ARM); daje to dużą stabilność i zgodność „w tył” dla bardzo wielu platform software’owych, emulujących, symulatorów itp.
- koszty wdrożeń i utrzymania
- ponieważ komputery kwantowe są na początkowym etapie rozwoju, to koszty wdrażania tej technologii są bardzo wysokie (głównie poprzez ekstremalne warunki chłodzenia), a jednocześnie nie ma pewności czy dana wersja technologii nie okaże się „ślepą uliczką” rozwoju jeśli równolegle pojawią się bardziej efektywne kosztowo rozwiązania
- superkomputery są bardzo drogie, ale ich koszty są bardzo przewidywalne, nawet jeśli technologicznie są zastępowane nowymi rozwiązaniami; ryzyko niepowodzenia wdrożenia praktycznie nie istnieje, zwłaszcza przy ogromnym doświadczeniu zarządzania takimi projektami
- czas uzyskania pełnej dostępności produkcyjnej
- problemy rozwiązywane na platformach superkomputerów są wynikiem ogromnego zapotrzebowania na rezultaty tych działań; często jest to ciągła presja czasu w zakresie modelowania skuteczności leków, symulacji zjawisk sejsmicznych (symulacje kataklizmów), wielu modelowań technologicznych itd. Superkomputery są bezcennym narzędziem do rozwiązywania aktualnie istniejących problemów
- komputery kwantowe są ogromnie obiecujące, ale w tej chwili pomimo już rekordowych wydajności, nie są jeszcze gotowe na kluczowe implementacje, zarówno w zakresie technologicznym jak i programistycznym; wiele ośrodków obliczeniowych doskonale zdaje sobie sprawę z widocznych na wyciągnięcie ręki możliwości komputerów kwantowych i znajduje pieniądze, aby już programować na emulatorach komputerów kwantowych lub prowadzić własne prace badawcze (LLNL, ORNL, ANL i wiele innych).
Wydaje się, że przyszłość klasycznych superkomputerów przez następnych 8, 10 lat jest raczej niezagrożona. Wraz z rozwojem technologii komputerów kwantowych i dojrzałości technologicznej, na pewno waga zastosowań i sposobów wykorzystania będzie przesuwała się na korzyść platform kwantowych, uwalniając klasyczne superkomputery od zadań, których ze względu na swoją naturę łatwiej będzie modelować kwantowo. Zapewne oba światy będą długo działały równolegle.
Podsumowanie
Wracamy na koniec do bohatera powieści Dana Browna „Początek” – sztucznej inteligencji o nazwie Winston, o czym wspomnieliśmy na początku. Według twórcy SI, geniusza Edmonda Kirscha, funkcjonowanie Winstona składa się, na wzór ludzkiego mózgu, z dwóch ośrodków przetwarzania. Analogią półkul mózgowych, są dwie zupełnie różne technologie i logiki przetwarzania informacji – klasyczny superkomputer MareNostrum oraz komputer kwantowy E-Wave (nawiązanie do nazwy komputera kwantowego D-Wave). Decyzje Winstona są oparte na dwóch różnych sposobach percepcji informacji ze świata zewnętrznego i dwóch różnych sposobach przetwarzania tych informacji, a dalej procesu decyzyjnego i podejmowania ukierunkowanych działań. Jest to oczywiście fikcja literacka, ale być może w jakimś wymiarze konsultowana z fachowcami w dziedzinie informatyki, uczenia się maszynowego i sztucznej inteligencji.
Jeśli spojrzeć na plany rozwoju systemów superkomputerowych, widać, że są w tej chwili projektowane takie rozwiązania – do co najmniej 2022 roku, przy czasie pełnego wykorzystania przez 5 do 8 lat. Zatem pomimo pojawienia się platform kwantowych, na razie nie są brane pod uwagę ograniczenia rozwojowe klasycznych systemów.
Może zatem jest coś proroczego w wizji istnienia obu światów: klasycznego i kwantowego oraz ścisłej współpracy między nimi. Warto śledzić zmiany w technologiach informatycznych zarówno w zakresie technologii platform sprzętowych i ich architektur, ale także w zakresie wizji i potrzeb, które tak naprawdę napędzają rozwój technologii. Czy jeszcze dekadę temu uczenie maszynowe i sztuczna inteligencja były szerzej znane poza grupą wizjonerów i realizujących ich początkowe koncepcje entuzjastów? Co przyniesie przyszłość jest niewiadomą, ale warto czasem puścić wodze fantazji, a rzeczywistość i tak pewno nas zaskoczy. | CHIP
O autorze:
Marek Gardziński jest związany z branżą IT od ponad 30 lat. Od blisko 15 pracuje w Fujitsu Technology Solutions, od 10 lat jako Solution Architect. Jest specjalistą w zakresie systemów fizyki doświadczalnej, technik mikrofalowych i badawczych technik izotopów promieniotwórczych. Zajmuje się też technologiami transmisji danych, wirtualizacji środowisk IT, rozwiązaniami High Performance Computing, technologiami IT klasy business continuity, mission-critical oraz platformami serwerowymi x86 i RISC.