Hej, hej... Programisto, to kolejny artykuł dla Ciebie! Druga część artykułu na temat wzorców projektowych. Poznaj Adapter oraz Memento.
W tym artykule dowiecie się o technologiach Infiniband oraz RDMA, które pozwoliły podnieść przepustowości w systemach interconnect w klastrach obliczeniowych, a także obniżyły opóźnienia. Skutkuje to zwiększoną wydajnością superkomputerów i innych systemów i eliminuje wąskie gardła. Zainteresowani? Zapraszamy do lektury!
Infiniband – czym jest?
InfiniBand to szybka technologia sieciowa używana do łączenia serwerów, urządzeń pamięci masowej i innych zasobów sieciowych w centrach danych i środowiskach obliczeń o wysokiej wydajności (HPC). Została zaprojektowana, aby zapewnić łączność o niskim opóźnieniu i dużej przepustowości. Jest stosowana w systemach HPC oraz superkomputerach. Z Infiniband wiążą się inny stos protokolarny, nie jest to jak w przypadku klasycznych sieci TCP/IP. W Infiniband występują takie pojęcia jak:
- LID (identyfikator lokalny) – unikalny identyfikator przypisany każdemu urządzeniu w sieci InfiniBand. LID-y są używane do routingu ruchu między urządzeniami w jednej sieci.
- GID (identyfikator globalny) – globalnie unikalny identyfikator przypisany każdemu urządzeniu w sieci InfiniBand. GID-y służą do identyfikacji urządzeń w różnych sieciach.
- TCA (adapter kanału docelowego) – adapter InfiniBand używany do komunikacji między hostem, a urządzeniem pamięci masowej.
- HCA (adapter kanału hosta) – adapter InfiniBand używany do komunikacji między hostami w sieci InfiniBand.
- Menedżer podsieci – komponent oprogramowania, który zarządza siecią InfiniBand i zajmuje się zadaniami takimi jak routowanie, kontrola przeciążenia i wykrywanie błędów. Menedżer podsieci jest odpowiedzialny za przypisywanie LID-ów do urządzeń i tworzenie tablic routingu używanych przez urządzenia do komunikacji ze sobą. Odpowiada również za konfigurację innych komponentów sieci, takich jak przełączniki i routery.
Rysunek 1: Przykładowa architektura sieci Infiniband wraz z węzłami przetwarzającymi dane i pamięcią masową. Źródło: jcf94.com.
Należy także zwrócić uwagę na to, że ponieważ stosujemy zupełnie inne protokoły, to ramki również wyglądają zupełnie inaczej niż w standardowej sieci Ethernet.
Rysunek 2: mamy zupełnie inne nagłówki niż w Ethernecie, które powiązane są z identyfikatorami wyróżnionymi w sieci Infiniband Źródło: ACM-Study-Group.
Stos protokołów sieciowych można zobrazować w następujący sposób w ramach 4-warstwowego modelu sieci:
Rysunek 3: model sieci Infiniband Źródło: ACM-Study-Group.
Okablowanie Infiniband
Standardy okablowania dla Infiniband są definiowane zarówno dla przewodów miedzianych jak i światłowodów. To co jest najbardziej interesujące, to jak restrykcyjne są normy w przypadku budowy takiej infrastruktury. Dla przewodu światłowodowego maksymalny dystans wynosi 200 m. Dlaczego? Dłuższy światłowód powoduje opóźnienia i staje się wąskim gardłem dla całego systemu.
Rysunek 4: Standardy okablowania dla Infiniband.
Dodatkowo warto wspomnieć, że wiele innych standardów blisko współpracuje z Infiniband i jest w stanie korzystać z takiej sieci w ten czy inny sposób. Na przykład:
- IPoIB – IP over IB (TCP/UDP over InfiniBand)
- EoIB – Ethernet over IB
- RDS – Reliable Datagram Sockets
- MPI – Message Passing Interface
- iSER – iSCSI for InfiniBand
- SRP – SCSI RDMA Protocol
DMA vs RDMA
Jednym z najistotniejszych elementów sieci dla superkomputerów i innych systemów o wielkich prędkościach jest eliminowanie wąskich gardeł wynikających z ograniczeń technologicznych. Jednym z takich elementów był problem z angażowaniem procesora w komunikacji sieciowej oraz problem stosu sieciowego. Dzięki RDMA jesteśmy w stanie uzyskać naprawdę niskie opóźnienia na poziomie mikrosekundy.
DMA (ang. Direct Memory Access) – to technologia umożliwiająca przesyłanie danych między urządzeniem a pamięcią bez interwencji procesora. DMA służy do poprawy wydajności systemu poprzez odciążenie procesora i umożliwienie mu wykonywania innych zadań w trakcie przesyłania danych.
Remote Direct Memory Access (RDMA) to dostęp do pamięci jednego komputera do drugiego w sieci bez angażowania systemu operacyjnego, procesora i pamięci podręcznej. Poprawia przepustowość i wydajność systemów. Operacje takie jak odczyt i zapis mogą być wykonywane na zdalnej maszynie bez przerywania pracy procesora tej maszyny. Ta technologia pomaga w szybszym przesyłaniu danych w sieciach, gdzie kluczowe są niskie opóźnienia.
Integralną częścią RDMA jest koncepcja zero-copy networking, która umożliwia odczytywanie danych bezpośrednio z pamięci głównej jednego komputera i zapisywanie tych danych bezpośrednio w pamięci głównej innego komputera. Transfery danych RDMA omijają stos sieciowy kernela na obu komputerach, poprawiając wydajność sieci. W rezultacie konwersacja między dwoma systemami zakończy się znacznie szybciej niż porównywalne systemy sieciowe inne niż RDMA.
Rysunek 5: Porównanie klasycznych adapterów sieciowych z tymi z funkcją RDMA.
Według badań (WangJangChenYiCui’17) najsłabsza implementacja RDMA w ma 10-krotnie mniejsze opóźnienie niż najlepsza bez RDMA. Dla Infiniband jest to 1.7 mikrosekundy opóźnienia. Dlatego, jak już wcześniej pisaliśmy, przewody światłowodowe mają za zadanie mieć do 200m, ponieważ eliminuje to potencjalne powstanie wąskiego gardła na samym światłowodzie (opóźnienie światłowodu ok. 5 mikrosekund na kilometr).
Kalkulator opóźnienia w światłowodzie: https://www.timbercon.com/resources/calculators/time-delay-of-light-in-fiber-calculator/
Ethernet kontra HPC
Ethernet to powszechnie stosowana technologia sieciowa, która jest również wykorzystywana w niektórych środowiskach wysoce wydajnych obliczeń (HPC). W przeszłości Ethernet nie był uważany za odpowiednią technologię łączenia dla HPC ze względu na wysokie opóźnienia i niższą przepustowość w porównaniu do innych łączy HPC, takich jak InfiniBand. Jednakże, dzięki rozwojowi nowych standardów i technologii Ethernet, takich jak RDMA over Converged Ethernet (RoCE), Ethernet staje się wariantem opłacalnym dla niektórych obciążeń roboczych HPC. RoCE umożliwia transfer danych między serwerami, a urządzeniami pamięci masowej z niskim opóźnieniem i wysoką przepustowością, co czyni go obiecującą opcją dla klastrów HPC, które wymagają łączy o dużej prędkości.
Podsumowanie
Istnieje wiele technologii, które przyczyniają się do sukcesywnego zwiększania przepustowości oraz zmniejszania opóźnienia czy kosztów. Naukowcy starają się prowadzić badania na wielu frontach, a biznes szuka kosztowo optymalnego rozwiązania dla superkomputerów. Warto w tym miejscu przytoczyć statystyki, które pokazują jakie technologie są najczęściej wykorzystywane w systemach wysokowydajnych.
Rysunek 6: Trendy technologiczne dla 500 najlepszych superkomputerów, źródło: Nvidia.
W ostatnich kilku latach widać znaczącą dominację dwóch technologii, które opisaliśmy w tym artykule – Infiniband oraz Ethernet.
Rysunek 7: Procentowy udział poszczególnych technologii interconnect w top10 oraz top 100 systemów, źródło Nvidia.
Pomimo widocznego wzrostu znaczenia Ethernetu w ostatnich latach w systemach HPC nie ma on praktycznie żadnego znaczenia w pierwszej setce rankingu, gdzie dominuje Infiniband. Zachęcamy do zapoznania się z listą, gdzie konkretne superkomputery mają przedstawione swoje parametry i systemy interconnect. https://www.top500.org/lists/top500/list/2022/11/
Mamy nadzieję, że ten artykuł dał Wam pigułkę merytorycznej wiedzy w temacie superkomputerów i połączeń używanych w tych systemach. Jest to szeroki temat, w który ze względu na szeroką gamę zastosowań inwestują wielkie firmy.
Źródła:
- https://jcf94.com/2016/06/27/2016-06-27-rdma/
- https://hackmd.io/@ACM-Study-Group/rkjtCUkkw
- https://indico.cern.ch/event/218156/attachments/351724/490088/Intro_to_InfiniBand.pdf
- https://community.fs.com/blog/roce-vs-infiniband-vs-tcp-ip.html
- https://www.techtarget.com/searchstorage/definition/Remote-Direct-Memory-Access
- https://youtu.be/ZLSV-WiXb-g?t=187
- https://www.naddod.com/blog/why-is-infiniband-used-in-hpc
- https://www.commscope.com/globalassets/digizuite/2398-data-center-best-practices-ebook-co-110101-en.pdf
- https://network.nvidia.com/files/doc-2021/TOP500-JUNE-2021_0.pdf