Obliczenia o wysokiej wydajności (HPC) na Azure

Wprowadzenie do wysokowydajnych obliczeń (HPC)

Obliczenia o wysokiej wydajności (HPC), nazywane również dużymi obliczeniami, używają dużej liczby komputerów opartych na procesorze CPU lub procesorze 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

Jak obliczenia HPC różnią się 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 dopasować rozmiar infrastruktury odpowiednio do wymagań ich zadań.

Poniższe artykuły zawierają więcej szczegółów dotyczących tej funkcji dynamicznego skalowania.

Lista kontrolna wdrażania

Jeśli chcesz zaimplementować własne rozwiązanie HPC w Azure, upewnij się, że zapoznano się z następującymi tematami:

  • Wybieranie odpowiedniej architektury na podstawie wymagań
  • Dowiedz się, które opcje obliczeniowe są odpowiednie 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

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.

Compute

Azure oferuje szereg rozmiarów zoptymalizowanych pod kątem obciążeń intensywnie korzystających zarówno z procesora CPU, jak i 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.

Magazyn

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 w Azure:

Aby uzyskać więcej informacji na temat porównywania systemów Lustre, GlusterFS i BeeGFS w Azure, zapoznaj się z artykułem Parallel Files Systems on Azure e-book and the Lustre on Azure blog.

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ść silnie sprzężonych aplikacji równoległych działających w ramach Microsoft Message Passing Interface (lepiej znanego jako MPI) oraz Intel MPI.

Zarządzanie

Zrób to sam

Tworzenie systemu HPC od podstaw na Azure zapewnia znaczną elastyczność, ale często jest bardzo intensywnie konserwacyjne.

  1. Skonfiguruj własne środowisko klastra na maszynach wirtualnych Azure lub Virtual Machine Scale Sets.
  2. Szablony Azure Resource Manager umożliwiają wdrażanie wiodących menedżerów workload, infrastruktury i aplikacje.
  3. Wybierz rozmiary maszyn wirtualnych HPC i GPU, które obejmują wyspecjalizowany sprzęt i połączenia sieciowe dla obciążeń MPI lub GPU.
  4. Dodaj pamięć masową o wysokiej wydajności dla obciążeń intensywnie wykorzystujących I/O.

Chmura hybrydowa i rozprzestrzenianie chmury

Jeśli masz istniejący lokalny system HPC, z którym chcesz nawiązać połączenie z Azure, istnieje kilka zasobów ułatwiających rozpoczęcie pracy.

Najpierw zapoznaj się z artykułem Opcje łączenia sieci lokalnej z Azure w dokumentacji. W tym miejscu możesz znaleźć dodatkowe informacje na temat tych opcji łączności:

Po bezpiecznym nawiązaniu łączności sieciowej można zacząć korzystać z zasobów obliczeniowych chmury na żądanie, wykorzystując możliwości skalowania istniejącego menedżera obciążeń.

Rozwiązania z witryny Marketplace

W Microsoft Marketplace dostępnych jest wiele menedżerów obciążeń.

Azure Batch

Azure Batch to usługa platformy do wydajnego uruchamiania aplikacji równoległych i HPC na dużą skalę w chmurze. Azure Batch planuje wykonywanie prac intensywnie korzystających z obliczeń w zarządzanej puli maszyn wirtualnych i może automatycznie skalować zasoby obliczeniowe zgodnie z potrzebami zadań.

Dostawcy SaaS lub deweloperzy mogą korzystać z zestawów SDK i narzędzi Batch do integrowania aplikacji HPC lub obciążeń kontenerowych z usługą Azure, przesyłać dane do Azure oraz budować potoki wykonawcze zadań.

W Azure Batch wszystkie usługi są uruchomione w chmurze. Na poniższej ilustracji pokazano, jak wygląda architektura z Azure Batch, mając konfiguracje skalowalności i harmonogramu zadań uruchomione w chmurze, podczas gdy wyniki i raporty mogą być wysyłane do środowiska lokalnego.

Diagram przedstawia przykład architektury HPC dla Azure Batch.

Azure CycleCloud

Azure CycleCloud Zapewnia najprostszy sposób zarządzania obciążeniami HPC przy użyciu dowolnego harmonogramu (na przykład Slurm, Grid Engine, HPC Pack, HTCondor, LSF, PBS Pro lub Symphony) na Azure

Narzędzie CycleCloud umożliwia:

  • Wdrożyć pełne klastry i inne zasoby, w tym harmonizator, maszyny wirtualne do obliczeń, magazynowanie, sieć i pamięć podręczną.
  • Koordynowanie przepływów pracy, danych i przepływów chmurowych.
  • 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 funkcji zasad i zarządzania, w tym mechanizmów kontroli kosztów, integracji z Active Directory, monitorowania i raportowania.
  • Użyj swoich bieżących aplikacji i harmonogramu zadań bez modyfikacji.
  • Wykorzystaj wbudowane autoskalowanie oraz sprawdzone architektury referencyjne dla szerokiego zakresu obciążeń HPC i branż.
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ść przeprowadzania zadań w obu typach obciążeń. Diagram przedstawia przykładową architekturę HPC dla CycleCloud na Azure w środowisku hybrydowym.

Model natywny dla chmury

Poniższy przykładowy przykładowy model chmury pokazuje, jak obciążenie w chmurze będzie obsługiwać wszystko, zachowując jednocześnie połączenie ze środowiskiem lokalnym.

Diagram przedstawia przykład architektury HPC dla CycleCloud na platformie Azure w modelu natywnym chmurowym.

Tabela porównawcza

Funkcja Azure Batch Azure CycleCloud
Harmonogram Interfejsy API usługi Batch oraz narzędzia i skrypty wiersza polecenia w portalu Azure (Cloud Native). 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 Platforma jako usługa – Platforma jako usługa
Narzędzia do monitorowania Azure Monitor Azure Monitor, Grafana
Dostosowywanie Zwyczajowe pule obrazów, obrazy stron trzecich, dostęp do interfejsu API 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ń
Integracja Usługa Data Factory w ramach Microsoft Fabric, Azure Data Factory, Azure CLI wbudowany interfejs wiersza polecenia dla Windows i systemu Linux
Typ użytkownika Deweloperzy Klasyczni administratorzy i użytkownicy HPC
Typ pracy Partia, Przepływy pracy Ściśle powiązane (Message Passing Interface/MPI).
Obsługa Windows Yes Różni się w zależności od wyboru harmonogramu

Menedżerowie obciążeń

Poniżej przedstawiono przykłady menedżerów klastrów i obciążeń, które mogą działać w infrastrukturze Azure. Twórz autonomiczne klastry na maszynach wirtualnych Azure lub zwiększaj zasoby z klastra lokalnego do maszyn wirtualnych Azure.

Containers

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 w Azure.

Zarządzanie kosztami

Zarządzanie kosztami HPC na Azure można wykonać na kilka różnych sposobów. Upewnij się, że sprawdzono opcje zakupu Azure aby znaleźć metodę, która działa najlepiej dla twojej organizacji.

Zabezpieczenia

Aby zapoznać się z omówieniem najlepszych rozwiązań dotyczących zabezpieczeń Azure, zapoznaj się z dokumentacją zabezpieczeń Azure.

Oprócz konfiguracji sieci dostępnych w sekcji Skalowanie w chmurze można zaimplementować konfigurację piasty/szprychy w celu odizolowania zasobów obliczeniowych:

Aplikacje HPC

Uruchamianie niestandardowych lub komercyjnych aplikacji HPC w 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ź witrynę Microsoft Marketplace aby zapoznać się z gotowymi do wdrożenia rozwiązaniami.

Uwaga / Notatka

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 w modelu pay-as-you-go. 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

Uruchom maszyny wirtualne oparte na procesorze GPU w Azure w tym samym regionie co dane wyjściowe HPC w celu uzyskania najmniejszego opóźnienia, dostępu i wizualizacji zdalnej za pośrednictwem Azure Virtual Desktop.

Testy porównawcze wydajności

Inne istotne informacje

Następne kroki

Najnowsze ogłoszenia można znaleźć w następujących zasobach:

przykłady usługi Microsoft Batch

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