Obliczenia o wysokiej wydajności (HPC) na platformie Azure

Wprowadzenie do obliczeń HPC

Obliczenia o wysokiej wydajności (HPC), nazywane również „dużymi wystąpieniami obliczeniowymi”, używają dużej liczby komputerów opartych na procesorze CPU lub 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
  • Inżynieria
  • Modelowanie zjawisk pogodowych

Czym różnią się obliczenia HPC w chmurze?

Jedną z podstawowych różnic między lokalnym systemem HPC i jednym z nich w chmurze jest możliwość dynamicznego dodaniu i usunięcia zasobów zgodnie z potrzebami. 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.

Lista kontrolna wdrażania

Gdy chcesz zaimplementować własne rozwiązanie HPC na platformie Azure, pamiętaj o sprawdzeniu następujących kwestii:

  • Wybieranie odpowiedniej architektury na podstawie wymagań
  • Dowiadywanie się, które opcje obliczeniowe są odpowiednia dla Twojego obciążenia
  • Identyfikowanie odpowiedniego rozwiązania do magazynowania zaspokajającego Twoje potrzeby
  • Decydowanie o sposobie, w jaki zamierzasz zarządzać wszystkimi swoimi zasobami
  • Optymalizowanie swojej aplikacji pod kątem chmury
  • Zabezpieczanie infrastruktury

Infrastruktura

Wyróżnia się kilka składników infrastruktury niezbędnych do utworzenia systemu HPC. Obliczanie, magazyn i sieć dostarczają składników podstawowych, niezależnie od tego, jak chcesz zarządzać obciążeniami HPC.

Przykładowe architektury obliczeń HPC

Istnieje kilka 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.

  • Diagram przedstawiający przykładową architekturę HPC dla usług inżynieryjnych wspomaganych komputerowo na platformie Azure.

    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.

  • Diagram przedstawiający przykładową architekturę HPC dla obliczeniowych symulacji dynamiki płynów na platformie Azure.

    Symulacje obliczeniowej mechaniki płynów na platformie Azure

    Wykonuj symulacje obliczeniowej mechaniki płynów na platformie Azure.

  • Diagram przedstawiający przykładową architekturę HPC dla renderowania wideo 3D 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 szereg rozmiarów, które są zoptymalizowane pod kątem obu obciążeń intensywnie obciążanych & procesorem GPU.

Maszyny wirtualne oparte na procesorze CPU

Maszyny wirtualne z obsługą procesorów 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.

Storage

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 kilka rozwiązań do zarządzania potrzebami dotyczącymi wydajności i szybkości aplikacji HPC na platformie Azure

Aby uzyskać więcej informacji na temat porównywania rozwiązań Tore, GlusterFS i BeeGFS na platformie Azure, zapoznaj się z książką e-book Parallel Files Systems on Azure (Równoległe systemy plików na platformie Azure)i blogiem Rozwiązaniare na platformie Azure.

Sieć

Maszyny wirtualne H16r, H16mr, A8 i A9 mogą łączyć się z siecią zaplecza RDMA o wysokiej przepływności. Ta sieć może poprawić wydajność ściśle sprzężonych aplikacji równoległych działających w ramach interfejsu Microsoft MPI lub Intel MPI.

Zarządzanie

Zrób to sam

Tworzenie od podstaw systemu HPC na platformie Azure zapewnia znaczną elastyczność, ale często wymaga intensywnej konserwacji.

  1. Skonfiguruj własne środowisko klastra na maszynach wirtualnych platformy Azure lub w zestawach skalowania maszyn wirtualnych.
  2. Użyj szablonów usługi Azure Resource Manager do wdrażania wiodących menedżerów obciążeń, infrastruktury i aplikacji.
  3. Wybierz rozmiary maszyn wirtualnych GPU i HPC obejmujących wyspecjalizowany sprzęt i połączenia sieciowe dla obciążeń interfejsu MPI lub procesora GPU.
  4. Dodaj magazyn o wysokiej wydajności dla obciążeń intensywnie korzystających z operacji wejścia/wyjścia.

Rozszerzanie możliwości chmury i środowiska hybrydowego

Jeśli masz istniejący system HPC, który chcesz połączyć z platformą Azure, istnieje wiele zasobów, które pomogą Ci rozpocząć pracę.

Najpierw przejrzyj artykuł Opcje łączenia sieci lokalnej z platformą Azure w dokumentacji. Następnie możesz potrzebować informacji na temat tych opcji łączności:

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 oferowany szereg menedżerów obciążeń.

Usługa Azure Batch

Azure Batch to usługa platformy do wydajnego uruchamiania na dużą skalę aplikacji równoległych i aplikacji do obliczeń o wysokiej wydajności (HPC) 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ń.

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

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.

Kontenery

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

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.

Zabezpieczenia

Aby poznać omówienie najlepszych rozwiązań dotyczących zabezpieczeń na platformie Azure, przejrzyj dokumentację zabezpieczeń platformy Azure.

Poza konfiguracjami sieci dostępnymi w sekcji Rozszerzanie możliwości chmury możesz zechcieć zaimplementować konfigurację piasta/szprychy, aby odizolować zasoby obliczeniowe:

Aplikacje HPC

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.

Aplikacje inżynieryjne

Oprogramowanie graficzne i renderujące

Sztuczna inteligencja i uczenie głębokie

Dostawcy interfejsu MPI

Wizualizacja zdalna

Uruchamiaj maszyny wirtualne oparte na procesorach GPU na platformie Azure w tym samym regionie co dane wyjściowe HPC, aby uzyskać najmniejsze opóźnienie, dostęp i wizualizować zdalnie za pośrednictwem usługi Azure Virtual Desktop, Citrix lub VMware Horizon.

Testy porównawcze wydajności

Historie klientów

Jest wielu klientów, którzy odnieśli duży sukces dzięki używaniu platformy Azure do obsługi swoich obciążeń HPC. Kilka z analiz przypadków tych klientów zamieszczono poniżej:

Inne istotne informacje

Następne kroki

Aby zapoznać się z najnowszymi ogłoszeniami, zobacz:

Przykłady usługi Microsoft Batch

Te samouczki zapewnią szczegółowe informacje na temat uruchamiania aplikacji w usłudze Microsoft Batch