Architektura superkomputera - Supercomputer architecture

SGI Altix superkomputer z 23.000 procesorów w cines zakładzie we Francji

Podejścia do architektury superkomputerów przyjęły dramatyczne zmiany od czasu wprowadzenia najwcześniejszych systemów w latach 60. XX wieku. Wczesne architektury superkomputerów, których pionierem był Seymour Cray, opierały się na kompaktowych, innowacyjnych konstrukcjach i lokalnej równoległości w celu osiągnięcia najwyższej wydajności obliczeniowej. Jednak z czasem zapotrzebowanie na zwiększoną moc obliczeniową zapoczątkowało erę systemów masowo równoległych .

Podczas gdy superkomputery lat 70. używały tylko kilku procesorów , w latach 90. zaczęły pojawiać się maszyny z tysiącami procesorów, a pod koniec XX wieku pojawiły się masowo równoległe superkomputery z dziesiątkami tysięcy „gotowych” procesorów. norma. Superkomputery XXI wieku mogą wykorzystywać ponad 100 000 procesorów (niektóre to jednostki graficzne ) połączonych szybkimi łączami.

Przez dziesięciolecia zarządzanie gęstością ciepła pozostawało kluczową kwestią dla większości scentralizowanych superkomputerów. Duża ilość ciepła wytwarzanego przez system może mieć również inne skutki, takie jak skrócenie żywotności innych elementów systemu. Istnieją różne podejścia do zarządzania ciepłem, od pompowania Fluorinert przez system do hybrydowego systemu chłodzenia cieczą powietrzem lub chłodzenia powietrzem przy normalnych temperaturach klimatyzacji .

Systemy z ogromną liczbą procesorów zazwyczaj wybierają jedną z dwóch ścieżek: w jednym podejściu, np. w obliczeniach siatkowych, moc obliczeniowa dużej liczby komputerów w rozproszonych, zróżnicowanych domenach administracyjnych jest oportunistycznie wykorzystywana, gdy tylko komputer jest dostępny. W innym podejściu, duża liczba procesorów jest używana blisko siebie, np. w klastrze komputerowym . W takim scentralizowanym, masowo równoległym systemie szybkość i elastyczność połączenia stają się bardzo ważne, a nowoczesne superkomputery stosują różne podejścia, od ulepszonych systemów Infiniband po trójwymiarowe połączenia torusowe .

Kontekst i przegląd

Od późnych lat sześćdziesiątych wzrost mocy i proliferacja superkomputerów był dramatyczny, a podstawowe kierunki architektoniczne tych systemów zmieniły się znacząco. Podczas gdy wczesne superkomputery opierały się na niewielkiej liczbie ściśle połączonych procesorów, które miały dostęp do pamięci współdzielonej , superkomputery XXI wieku wykorzystują ponad 100 000 procesorów połączonych szybkimi sieciami.

Przez dziesięciolecia zarządzanie gęstością ciepła pozostawało kluczową kwestią dla większości scentralizowanych superkomputerów. Motto Seymoura Crayawydobądź ciepło” było centralnym elementem jego filozofii projektowania i nadal jest kluczowym zagadnieniem w architekturach superkomputerów, np. w eksperymentach na dużą skalę, takich jak Blue Waters . Duża ilość ciepła wytwarzanego przez system może mieć również inne skutki, takie jak skrócenie żywotności innych elementów systemu.

Istnieją różne podejścia do zarządzania ciepłem, np . Cray 2 pompował Fluorinert przez system, podczas gdy System X wykorzystywał hybrydowy system chłodzenia cieczą powietrzem, a Blue Gene/P jest chłodzony powietrzem przy normalnych temperaturach klimatyzacji . Ciepło z superkomputera Aquasar jest wykorzystywane do ogrzewania kampusu uniwersyteckiego.

Gęstość ciepła generowana przez superkomputer jest bezpośrednio zależna od typu procesora używanego w systemie, przy czym mocniejsze procesory zazwyczaj generują więcej ciepła, biorąc pod uwagę podobne technologie półprzewodnikowe . Chociaż pierwsze superkomputery wykorzystywane kilka szybko, ściśle upakowane procesory, które miały przewagę miejscowego równoległości (np rurociąg i przetwarzanie wektora ), w czasie liczba procesorów wzrosła, i węzłów obliczeniowych mogą być umieszczone dalej, na przykład w klastrze komputerowym , lub mogą być rozproszone geograficznie w sieciach obliczeniowych . Wraz ze wzrostem liczby procesorów w superkomputerze „ wskaźnik awarii komponentów ” zaczyna być poważnym problemem. Jeśli superkomputer wykorzystuje tysiące węzłów, z których każdy może ulec awarii średnio raz w roku, system będzie doświadczał kilku awarii węzłów każdego dnia.

Wraz z poprawą stosunku ceny do wydajności procesorów graficznych ogólnego przeznaczenia (GPGPU), wiele superkomputerów petaflopów, takich jak Tianhe-I i Nebulae , zaczęło na nich polegać. Jednak inne systemy, takie jak komputer K, nadal używają konwencjonalnych procesorów, takich jak projekty oparte na SPARC , a ogólna przydatność GPGPU w zastosowaniach obliczeniowych o wysokiej wydajności ogólnego przeznaczenia była przedmiotem debaty, ponieważ podczas gdy GPGPU może być dostrojony, aby uzyskać wynik dobrze na określonych testach porównawczych, jego ogólna przydatność do codziennych algorytmów może być ograniczona, chyba że zostanie włożony znaczny wysiłek w dostrojenie aplikacji do niego. Jednak procesory graficzne zyskują na popularności, a w 2012 roku superkomputer Jaguar został przekształcony w Titan , zastępując procesory procesorami graficznymi.

Wraz ze wzrostem liczby niezależnych procesorów w superkomputerze sposób, w jaki uzyskują one dostęp do danych w systemie plików oraz w jaki sposób współdzielą i uzyskują dostęp do zasobów dodatkowej pamięci masowej, stają się widoczne. Na przestrzeni lat powstało wiele systemów do rozproszonego zarządzania plikami , np . IBM General Parallel File System , BeeGFS , Parallel Virtual File System , Hadoop itp. Szereg superkomputerów na liście TOP100 takich jak Tianhe-I używam Linux jest systemem plików Lustre .

Wczesne systemy z kilkoma procesorami

W CDC 6600 seria komputerów były bardzo wczesne próby Superkomputerowo zdobyli przewagę nad istniejącymi systemami przez spychając pracę do urządzeń peryferyjnych , uwalniając CPU ( Central Processing Unit ), aby przetwarzać dane rzeczywiste. Dzięki kompilatorowi Minnesota FORTRAN 6600 może wytrzymać 500 kiloflopów przy standardowych operacjach matematycznych.

Cylindryczny kształt wczesnych komputerów Cray scentralizował dostęp, utrzymując krótkie i jednolite odległości.

Inne wczesne superkomputery, takie jak Cray 1 i Cray 2, które pojawiły się później, wykorzystywały niewielką liczbę szybkich procesorów, które działały harmonijnie i były jednolicie połączone z największą ilością pamięci współdzielonej, jaką można było w tym czasie zarządzać.

Te wczesne architektury wprowadziły przetwarzanie równoległe na poziomie procesora, z takimi innowacjami, jak przetwarzanie wektorowe , w którym procesor może wykonywać kilka operacji w jednym cyklu zegara , zamiast czekać na kolejne cykle.

Z czasem, wraz ze wzrostem liczby procesorów, pojawiły się różne problemy architektoniczne. Dwie kwestie, które należy rozwiązać wraz ze wzrostem liczby procesorów, to dystrybucja pamięci i przetwarzanie. W podejściu z pamięcią rozproszoną każdy procesor jest fizycznie upakowany z pewną pamięcią lokalną. Pamięć powiązana z innymi procesorami jest wtedy „oddalona” na podstawie parametrów przepustowości i opóźnień w niejednorodnym dostępie do pamięci .

W latach sześćdziesiątych potokowanie było postrzegane jako innowacja, a w latach siedemdziesiątych stosowanie procesorów wektorowych było już dobrze ugruntowane. W latach 80. wiele superkomputerów używało równoległych procesorów wektorowych.

Stosunkowo niewielka liczba procesorów we wczesnych systemach pozwoliła im z łatwością korzystać z architektury pamięci współdzielonej , która umożliwia procesorom dostęp do wspólnej puli pamięci. Na początku powszechnym podejściem było stosowanie jednolitego dostępu do pamięci (UMA), w którym czas dostępu do lokalizacji pamięci był podobny między procesorami. Zastosowanie niejednolitego dostępu do pamięci (NUMA) pozwoliło procesorowi na dostęp do własnej pamięci lokalnej szybciej niż do innych lokalizacji pamięci, podczas gdy architektury pamięci podręcznej (COMA) pozwoliły na użycie pamięci lokalnej każdego procesora jako pamięci podręcznej, a zatem wymagające koordynacji w miarę zmiany wartości pamięci.

Wraz ze wzrostem liczby procesorów wyzwaniem staje się wydajna komunikacja międzyprocesorowa i synchronizacja na superkomputerze. Aby osiągnąć ten cel, można zastosować szereg podejść. Przykładowo w 1980 roku, w Cray X-MP systemu wspólne rejestry użyto. W tym podejściu wszystkie procesory miały dostęp do wspólnych rejestrów, które nie przenosiły danych tam iz powrotem, ale były używane tylko do komunikacji międzyprocesorowej i synchronizacji. Jednak nieodłączne wyzwania związane z zarządzaniem dużą ilością pamięci współdzielonej przez wiele procesorów doprowadziły do ​​przejścia na architektury bardziej rozproszone .

Masywny scentralizowany równoległość

Blue Gene / L szafę pokazujący ułożone ostrza , każdy posiadania wielu procesorów

W latach osiemdziesiątych, wraz ze wzrostem zapotrzebowania na moc obliczeniową, rozpoczął się trend do znacznie większej liczby procesorów, co zapoczątkowało erę systemów masowo równoległych , z pamięcią rozproszoną i rozproszonymi systemami plików , biorąc pod uwagę, że architektury pamięci współdzielonej nie mogły być skalowane do duża liczba procesorów. Podejścia hybrydowe, takie jak rozproszona pamięć współdzielona, pojawiły się również po wczesnych systemach.

Podejście polegające na klastrowaniu komputerów łączy szereg łatwo dostępnych węzłów obliczeniowych (np. komputerów osobistych używanych jako serwery) za pośrednictwem szybkiej, prywatnej sieci lokalnej . Działania węzłów obliczeniowych są koordynowane przez „klastrowe oprogramowanie pośredniczące”, warstwę oprogramowania, która znajduje się na szczycie węzłów i pozwala użytkownikom traktować klaster jako w zasadzie jedną spójną jednostkę obliczeniową, np. poprzez koncepcję pojedynczego obrazu systemu .

Klastrowanie komputerów opiera się na scentralizowanym podejściu do zarządzania, które udostępnia węzły jako zorganizowane serwery współdzielone . Różni się od innych podejść, takich jak przetwarzanie typu peer-to-peer lub grid, które również wykorzystują wiele węzłów, ale mają znacznie bardziej rozproszony charakter . W XXI wieku półroczna lista 500 najszybszych superkomputerów organizacji TOP500 często obejmuje wiele klastrów, np. najszybszy na świecie w 2011 r. komputer K z pamięcią rozproszoną , architektura klastrowa.

Gdy wykorzystywana jest duża liczba lokalnych, częściowo niezależnych węzłów obliczeniowych (np. w architekturze klastrowej), bardzo ważna staje się szybkość i elastyczność połączenia. Współczesne superkomputery podjęły różne podejścia do rozwiązania tego problemu, np. Tianhe-1 wykorzystuje zastrzeżoną, szybką sieć opartą na Infiniband QDR, wzbogaconą o procesory FeiTeng-1000 . Z drugiej strony system Blue Gene /L wykorzystuje trójwymiarowe połączenie torusowe z sieciami pomocniczymi do globalnej komunikacji. W tym podejściu każdy węzeł jest połączony z sześcioma najbliższymi sąsiadami. Podobny torus był używany przez Cray T3E .

Masywne systemy scentralizowane czasami używają procesorów specjalnego przeznaczenia, zaprojektowanych do konkretnych zastosowań i mogą wykorzystywać układy FPGA (ang. field programmable gate arrays ) w celu zwiększenia wydajności poprzez poświęcenie ogólności. Przykłady superkomputerów specjalnego przeznaczenia obejmują Belle , Deep Blue i Hydra do gry w szachy , Gravity Pipe do astrofizyki, MDGRAPE-3 do obliczania struktury białek, dynamiki molekularnej oraz Deep Crack do łamania szyfru DES .

Masywny rozłożony równoległość

Przykładowa architektura rozproszonego geograficznie systemu obliczeniowego łączącego wiele węzłów w sieci

Przetwarzanie siatkowe wykorzystuje dużą liczbę komputerów w rozproszonych, zróżnicowanych domenach administracyjnych. Jest to podejście oportunistyczne, które wykorzystuje zasoby zawsze, gdy są one dostępne. Przykładem jest BOINC , oportunistyczny system gridowy oparty na ochotnikach . Niektóre aplikacje BOINC osiągnęły poziom multi-petaflop dzięki wykorzystaniu blisko pół miliona komputerów podłączonych do Internetu, gdy tylko dostępne są zasoby wolontariuszy. Jednak tego typu wyniki często nie pojawiają się w rankingach TOP500, ponieważ nie uruchamiają ogólnego benchmarku Linpack .

Chociaż obliczenia siatkowe odniosły sukces w równoległym wykonywaniu zadań, wymagające zastosowania superkomputerów, takie jak symulacje pogody lub obliczeniowa dynamika płynów , pozostały poza zasięgiem, częściowo ze względu na bariery w niezawodnym przydzielaniu podrzędnych dużej liczby zadań, a także niezawodną dostępność. zasobów w danym czasie.

W quasi-oportunistycznych superkomputerach duża liczba geograficznie rozproszonych komputerów jest połączona z wbudowanymi zabezpieczeniami . Podejście quasi-oportunistyczne wykracza poza obliczenia ochotnicze w wysoce rozproszonych systemach, takich jak BOINC lub ogólne przetwarzanie siatkowe w systemie takim jak Globus , umożliwiając oprogramowaniu pośredniczącemu niemal bezproblemowy dostęp do wielu klastrów obliczeniowych, dzięki czemu istniejące programy w językach takich jak Fortran lub C może być rozłożony na wiele zasobów obliczeniowych.

Quasi-oportunistyczne superkomputery mają na celu zapewnienie wyższej jakości usług niż oportunistyczne współdzielenie zasobów . Podejście quasi-oportunistyczne umożliwia wykonywanie wymagających aplikacji w sieciach komputerowych poprzez zawieranie umów dotyczących alokacji zasobów pod kątem sieci; a komunikat odporny na awarie przekazywany w celu abstrakcyjnej ochrony przed awariami podstawowych zasobów, zachowując w ten sposób pewien oportunizm, jednocześnie umożliwiając wyższy poziom kontroli.

Trendy architektoniczne XXI wieku

Osoba spacerująca między stojakami superkomputera Cray XE6

Chłodzona powietrzem architektura superkomputera IBM Blue Gene zamienia szybkość procesora na niskie zużycie energii, dzięki czemu większa liczba procesorów może być używana w temperaturze pokojowej przy użyciu normalnej klimatyzacji. System Blue Gene/P drugiej generacji ma procesory ze zintegrowaną logiką komunikacji między węzłami. Jest energooszczędny, osiąga 371 MFLOPS/W .

Komputer K jest chłodzony wodą , jednorodne procesor rozmieszczone pamięci systemu z architekturą klastra . Wykorzystuje ponad 80 000 procesorów SPARC64 VIIIfx , każdy z ośmioma rdzeniami , co daje łącznie ponad 700 000 rdzeni — prawie dwa razy więcej niż jakikolwiek inny system. Składa się z ponad 800 szaf, każda z 96 węzłami obliczeniowymi (każda z 16 GB pamięci) oraz 6 węzłami I/O. Chociaż jest bardziej wydajny niż pięć kolejnych systemów na liście TOP500 razem wziętych, przy 824,56 MFLOPS/W ma najniższy stosunek mocy do wydajności spośród wszystkich obecnych głównych systemów superkomputerowych. Kolejny system dla komputera K, nazwany PRIMEHPC FX10, wykorzystuje ten sam sześciowymiarowy torus, ale wciąż tylko jeden procesor na węzeł.

W przeciwieństwie do komputera K, system Tianhe-1A wykorzystuje architekturę hybrydową i integruje procesory i karty graficzne. Wykorzystuje ponad 14 000 procesorów ogólnego przeznaczenia Xeon i ponad 7 000 procesorów graficznych ogólnego przeznaczenia (GPGPU) Nvidia Tesla na około 3500 kasetach . Posiada 112 szaf komputerowych i 262 terabajty pamięci rozproszonej; 2 petabajty pamięci dyskowej są realizowane za pośrednictwem plików klastrowych Luster . Tianhe-1 wykorzystuje zastrzeżoną, szybką sieć komunikacyjną do łączenia procesorów. Autorska sieć połączeń została oparta na Infiniband QDR, wzbogacona o chińskie procesory FeiTeng-1000 . W przypadku interkonektu system jest dwukrotnie szybszy niż Infiniband, ale wolniejszy niż niektóre interkonekty na innych superkomputerach.

Granice poszczególnych podejść są nadal testowane, ponieważ granice są osiągane przez eksperymenty na dużą skalę, np. w 2011 r. IBM zakończył swój udział w projekcie petaflops Blue Waters na Uniwersytecie Illinois. Architektura Blue Waters została oparta na procesorze IBM POWER7 i miała mieć 200 000 rdzeni z petabajtem „pamięci adresowalnej globalnie” i 10 petabajtów miejsca na dysku. Cel trwałego petaflopu doprowadził do wyborów projektowych, które zoptymalizowały wydajność pojedynczego rdzenia, a tym samym mniejszą liczbę rdzeni. Oczekiwano, że mniejsza liczba rdzeni poprawi wydajność programów, które nie skalują się dobrze do dużej liczby procesorów. Duża, globalnie adresowalna architektura pamięci miała na celu wydajne rozwiązywanie problemów z adresowaniem pamięci dla programów tego samego typu. Oczekiwano, że Blue Waters będzie działać ze stałą prędkością co najmniej jednego petaflopa i polegało na specyficznym podejściu do chłodzenia wodą w celu zarządzania ciepłem. W ciągu pierwszych czterech lat działalności National Science Foundation wydała na projekt około 200 milionów dolarów. IBM wypuścił wkrótce potem węzeł obliczeniowy Power 775 oparty na technologii tego projektu, ale skutecznie zrezygnował z podejścia Blue Waters.

Eksperymenty architektoniczne są kontynuowane w wielu kierunkach, np. system Cyclops64 wykorzystuje podejście „superkomputer na chipie”, w kierunku odbiegającym od stosowania masowych procesorów rozproszonych. Każdy 64-bitowy układ Cyclops64 zawiera 80 procesorów, a cały system wykorzystuje globalnie adresowalną architekturę pamięci. Procesory połączone są nieblokującym się wewnętrznie przełącznikiem krzyżowym i komunikują się ze sobą za pośrednictwem globalnej pamięci z przeplotem. W architekturze nie ma pamięci podręcznej danych , ale połowa każdego banku SRAM może być wykorzystana jako pamięć notatnika. Chociaż ten typ architektury umożliwia niestrukturalną równoległość w dynamicznie nieciągłym systemie pamięci, stwarza również problemy w wydajnym mapowaniu algorytmów równoległych do systemu wielordzeniowego .

Zobacz też

Bibliografia