Obliczenia o wysokiej wydajności (HPC) na platformie Azure
Artykuł
Wprowadzenie do obliczeń HPC
Obliczenia o wysokiej wydajności (HPC), nazywane również "dużymi obliczeniami", używają dużej liczby komputerów z procesorem CPU lub procesorem GPU do rozwiązywania złożonych zadań matematycznych.
Wiele branży używa obliczeń HPC do rozwiązywania niektórych ze swoich najtrudniejszych problemów. Obejmują one obciążenia, takie jak:
Genomics
Symulacje dotyczące ropy naftowej i gazu
Finance
Projektowanie półprzewodników
Projektowanie
Modelowanie zjawisk pogodowych
Czym różnią się obliczenia HPC w chmurze?
Jedną z podstawowych różnic między lokalnym systemem HPC a jednym w chmurze jest możliwość dynamicznego dodawania i usuwania zasobów w miarę ich potrzeb. Dynamiczne skalowanie usuwa „wąskie gardło” możliwości obliczeniowych i pozwala klientom skalować ich infrastrukturę odpowiednio do wymagań związanych z wykonywanymi zadaniami.
Poniższe artykuły zawierają więcej szczegółów dotyczących tej funkcji dynamicznego skalowania.
Istnieje wiele składników infrastruktury, które są niezbędne do utworzenia systemu HPC. Zasoby obliczeniowe, magazyn i sieć zapewniają podstawowe składniki, bez względu na sposób zarządzania obciążeniami HPC.
Przykładowe architektury obliczeń HPC
Istnieje wiele różnych sposobów projektowania i implementowania architektury HPC na platformie Azure. Aplikacje HPC mogą być skalowane do tysięcy rdzeni obliczeniowych, rozszerzać lokalne klastry lub być uruchamiane jako całkowicie natywne rozwiązanie w chmurze.
W poniższych scenariuszach opisano kilka typowych sposobów tworzenia rozwiązań HPC.
Usługi do komputerowo wspomaganych prac inżynierskich na platformie Azure
Udostępnij platformę w modelu oprogramowanie jako usługa (SaaS, software as a service) na potrzeby komputerowo wspomaganych prac inżynierskich (CAE, computer-aided engineering) na platformie Azure.
Renderowanie wideo 3D na platformie Azure
Uruchamianie natywnych obciążeń HPC na platformie Azure przy użyciu usługi Azure Batch
Compute
Platforma Azure oferuje szeroką gamę rozmiarów zoptymalizowanych pod kątem obciążeń intensywnie korzystających zarówno z procesora CPU, jak i GPU.
Maszyny wirtualne z serii N są wyposażone w procesory GPU NVIDIA zaprojektowane pod kątem aplikacji wymagających dużych obciążeń obliczeniowych lub graficznych, takich jak uczenie sztucznej inteligencji (AI) i wizualizacja.
Duże obciążenia usług Batch i HPC mają wymagania dotyczące magazynu danych i dostępu, które przekraczają możliwości tradycyjnych systemów plików w chmurze. Istnieje wiele rozwiązań, które zarządzają zarówno szybkością, jak i potrzebami pojemności aplikacji HPC na platformie Azure:
Maszyny wirtualne H16r, H16mr, A8 i A9 mogą łączyć się z siecią zaplecza RDMA o wysokiej przepływności. Ta sieć może zwiększyć wydajność ściśle powiązanych aplikacji równoległych działających w ramach interfejsu Microsoft Message Passing Interface lepiej znanego jako MPI lub Intel MPI.
Tworzenie systemu HPC od podstaw na platformie Azure zapewnia znaczną elastyczność, ale często wymaga bardzo intensywnej konserwacji.
Skonfiguruj własne środowisko klastra na maszynach wirtualnych platformy Azure lub w zestawach skalowania maszyn wirtualnych.
Użyj szablonów usługi Azure Resource Manager do wdrażania wiodących menedżerów obciążeń, infrastruktury i aplikacji.
Wybierz rozmiary maszyn wirtualnych GPU i HPC obejmujących wyspecjalizowany sprzęt i połączenia sieciowe dla obciążeń interfejsu MPI lub procesora GPU.
Dodaj magazyn o wysokiej wydajności dla obciążeń intensywnie korzystających z operacji we/wy.
Rozszerzanie możliwości chmury i środowiska hybrydowego
Jeśli masz istniejący lokalny system HPC, który chcesz połączyć się z platformą Azure, istnieje kilka zasobów, które pomogą Ci rozpocząć pracę.
Po bezpiecznym nawiązaniu łączności sieciowej można zacząć korzystać z zasobów obliczeniowych chmury na żądanie przy użyciu możliwości obsługi dużego ruchu istniejącego menedżera obciążeń.
Rozwiązania z witryny Marketplace
W witrynie Azure Marketplace jest dostępnych wiele menedżerów obciążeń.
Azure Batch to usługa platformy do wydajnego uruchamiania aplikacji równoległych i HPC na dużą skalę w chmurze. Usługa Azure Batch umożliwia planowanie pracy wymagającej intensywnych obliczeń do wykonania w zarządzanej puli maszyn wirtualnych oraz automatyczne skalowanie zasobów obliczeniowych w celu spełnienia wymagań związanych z zadaniami.
Deweloperzy lub dostawcy oprogramowania jako usługi mogą używać narzędzi i zestawów SDK usługi Batch do integrowania aplikacji HPC lub obciążeń kontenerów z platformą Azure, przemieszczania danych na platformę Azure i tworzenia potoków wykonywania zadań.
W usłudze Azure Batch wszystkie usługi działają w chmurze, na poniższym obrazie przedstawiono wygląd architektury w usłudze Azure Batch, konfiguracje skalowalności i harmonogramu zadań uruchomione w chmurze, a wyniki i raporty mogą być wysyłane do środowiska lokalnego.
Azure CycleCloud
Azure CycleCloud udostępnia najprostsze rozwiązanie do zarządzania obciążeniami HPC przy użyciu dowolnego harmonogramu (takiego jak Slurm, Grid Engine, HPC Pack, HTCondor, LSF, PBS Pro lub Symphony) na platformie Azure
Narzędzie CycleCloud umożliwia:
Wdrażanie pełnych klastrów i innych zasobów, w tym harmonogramu, obliczeniowych maszyn wirtualnych, magazynu, sieci i pamięci podręcznej
Organizowanie przepływów pracy zadań, danych i chmury
Zapewnianie administratorom pełnej kontroli nad tym, którzy użytkownicy mogą uruchamiać zadania oraz gdzie i jakim kosztem mogą to robić
Dostosowywanie i optymalizowanie klastrów za pomocą zaawansowanych zasad i funkcji zarządzania, w tym kontroli kosztów, integracji z usługą Active Directory, monitorowania i raportowania
Używanie bieżących aplikacji i harmonogramu zadań w niezmienionej formie
Korzystanie z wbudowanego autoskalowania oraz sprawdzonych architektur referencyjnych dla wielu różnych branż i obciążeń HPC
Model skalowania hybrydowego/chmurowego
Na tym przykładzie hybrydowym widać wyraźnie, jak te usługi są dystrybuowane między chmurą a środowiskiem lokalnym. Możliwość uruchamiania zadań w obu obciążeniach.
Model natywny dla chmury
Poniższy przykładowy diagram modelu natywnego w chmurze pokazuje, jak obciążenie w chmurze będzie obsługiwać wszystko, zachowując jednocześnie połączenie ze środowiskiem lokalnym.
Porównanie
Funkcja
Usługa Azure Batch
Azure CycleCloud
Planista
Interfejsy API i narzędzia usługi Batch oraz skrypty wiersza polecenia w witrynie Azure Portal (natywne dla chmury).
Użyj standardowych harmonogramów HPC, takich jak Slurm, PBS Pro, LSF, Grid Engine i HTCondor, lub rozszerz wtyczki autoskalowania CycleCloud, aby pracować z własnym harmonogramem.
Zasoby obliczeniowe
Węzły oprogramowania jako usługi — platforma jako usługa
Oprogramowanie jako usługa platformy jako usługi — platforma jako usługa
Narzędzia monitora
Azure Monitor
Azure Monitor, Grafana
Dostosowanie
Niestandardowe pule obrazów, obrazy innych firm, dostęp do interfejsu API usługi Batch.
Korzystanie z kompleksowego interfejsu API RESTful w celu dostosowywania i rozszerzania funkcjonalności, wdrażania własnego harmonogramu i obsługi istniejących menedżerów obciążeń
Wbudowany interfejs wiersza polecenia dla systemów Windows i Linux
Typ użytkownika
Deweloperzy
Klasyczni administratorzy i użytkownicy HPC
Typ pracy
Batch, Workflows
Ściśle powiązane (Message Passing Interface/MPI).
Obsługa systemu Windows
Tak
Różni się w zależności od wyboru harmonogramu
Menedżerowie obciążeń
Poniżej przedstawiono przykłady menedżerów obciążeń i klastra, którzy mogą być uruchamiani w infrastrukturze platformy Azure. Utwórz klastry autonomiczne na maszynach wirtualnych platformy Azure lub przenieś duży ruch z klastra lokalnego na maszyny wirtualne platformy Azure.
Do zarządzania niektórymi obciążeniami HPC można także używać kontenerów. Usługi, takie jak Azure Kubernetes Service (AKS), ułatwiają wdrażanie zarządzanego klastra Kubernetes na platformie Azure.
Zarządzanie kosztami obliczeń HPC na platformie Azure może odbywać się na kilka różnych sposobów. Przejrzyj opcje zakupu platformy Azure, aby znaleźć metodę, która sprawdza się najlepiej w Twojej organizacji.
Oprócz konfiguracji sieci dostępnych w sekcji Skalowanie w chmurze można zaimplementować konfigurację piasty/szprychy w celu odizolowania zasobów obliczeniowych:
Uruchom niestandardowe lub komercyjne aplikacje HPC na platformie Azure. Kilka przykładów w tej sekcji jest badanych w testach porównawczych pod kątem wydajnego skalowania przy użyciu dodatkowych maszyn wirtualnych lub rdzeni obliczeniowych. Odwiedź portal Azure Marketplace, aby uzyskać rozwiązania gotowe do wdrożenia.
Uwaga
Skontaktuj się z dostawcą aplikacji komercyjnej w celu uzyskania informacji na temat licencjonowania lub innych ograniczeń związanych z uruchamianiem w chmurze. Nie wszyscy dostawcy oferują licencjonowanie oparte na płatności zgodnie z rzeczywistym użyciem. Dla danego rozwiązania może być konieczne posiadanie serwera licencyjnego w chmurze lub połączenie z lokalnym serwerem licencji.
Uruchamianie maszyn wirtualnych opartych na procesorze GPU na platformie Azure w tym samym regionie co dane wyjściowe HPC w celu uzyskania najmniejszego opóźnienia, dostępu i wizualizacji zdalnej za pośrednictwem usługi Azure Virtual Desktop.
Istnieje wielu klientów, którzy odnotowali wielki sukces dzięki użyciu platformy Azure na potrzeby obciążeń HPC. Kilka z analiz przypadków tych klientów zamieszczono poniżej: