High Performance Computing (HPC) in Azure

Einführung in HPC

High Performance Computing (HPC) wird auch als „Big Compute“ bezeichnet und nutzt eine große Anzahl von CPU- oder GPU-basierte Computern, um komplexe mathematische Aufgaben zu lösen.

HPC wird in vielen Branchen zur Lösung besonders anspruchsvoller Aufgabenstellungen eingesetzt. Beispiele für Workloads wären etwa:

  • Genomics
  • Simulationen für Öl- und Gasunternehmen
  • Finanzen
  • Halbleiterdesign
  • Entwicklung
  • Wettermodelle

Was zeichnet HPC in der Cloud aus?

Einer der Hauptunterschiede zwischen einem lokalen HPC-System und einem HPC-System in der Cloud besteht darin, dass Ressourcen dynamisch nach Bedarf hinzugefügt und entfernt werden können. Dank der dynamischen Skalierung ist die Computekapazität kein Engpass mehr, und Kunden können ihre Infrastruktur optimal auf die Anforderungen ihrer jeweiligen Aufgaben abstimmen.

Weitere Informationen zur dynamischen Skalierung finden Sie in den folgenden Artikeln:

Checkliste für die Implementierung

Beschäftigen Sie sich zunächst mit folgenden Aspekten, bevor Sie Ihre eigene HPC-Lösung in Azure implementieren:

  • Wählen Sie eine geeignete Architektur für Ihre Anforderungen.
  • Informieren Sie sich darüber, welche Computeoptionen für Ihre Workload geeignet sind.
  • Ermitteln Sie die passende Speicherlösung für Ihre Anforderungen.
  • Entscheiden Sie, wie Sie alle Ihre Ressourcen verwalten möchten.
  • Optimieren Sie Ihre Anwendung für die Cloud.
  • Schützen Sie Ihre Infrastruktur.

Infrastruktur

Es gibt viele Infrastrukturkomponenten, die zum Erstellen eines HPC-Systems erforderlich sind. Compute, Speicher und Netzwerk werden immer benötigt – ganz gleich, wie Sie Ihre HPC-Workloads verwalten möchten.

HPC-Beispielarchitekturen

Es gibt zahlreiche Gestaltungs- und Implementierungsmöglichkeiten für Ihre HPC-Architektur in Azure. HPC-Anwendungen können auf tausende von Computekernen skaliert werden, lokale Cluster erweitern oder als vollständig cloudbasierte Lösung ausgeführt werden.

In den folgenden Szenarien werden einige gängige Ansätze für HPC-Lösungen beschrieben.

  • Diagramm: HPC-Beispielarchitektur für CAE-Dienste (Computer-Aided Engineering, computergestützte Entwicklung) in Azure

    CAE-Dienste (Computer-Aided Engineering; computergestützte Entwicklung) in Azure

    Stellen Sie eine SaaS-Plattform (Software-as-a-Service) für computergestützte Entwicklung (Computer-Aided Engineering) in Azure bereit.

  • Diagramm: HPC-Beispielarchitektur für Simulationen numerischer Strömungsmechaniken in Azure

    CFD-Simulationen (Computational Fluid Dynamics; numerische Strömungsmechanik) in Azure

    Führen Sie Simulationen numerischer Strömungsmechaniken (Computational Fluid Dynamics, CFD) in Azure aus.

  • Diagramm: HPC-Beispielarchitektur für 3D-Videorendering in Azure

    3D-Videorendering in Azure

    Ausführen nativer HPC-Workloads in Azure mithilfe des Azure Batch-Diensts

Compute

Azure bietet eine Reihe von Größen, die sowohl für CPU- als auch für GPU-intensive Workloads optimiert sind.

CPU-basierte virtuelle Computer

GPU-fähige virtuelle Computer

Virtuelle Computer der N-Serie verfügen über NVIDIA-GPUs für rechen- oder grafikintensive Anwendungen wie KI-Lernen und Visualisierung.

Storage

Herkömmliche Clouddateisysteme sind den Anforderungen, die umfangreiche Batch- und HPC-Workloads in puncto Datenspeicherung und -zugriff haben, nicht gewachsen. Es gibt viele Lösungen, die sowohl die Geschwindigkeits- als auch die Kapazitätsanforderungen von HPC-Anwendungen in Azure erfüllen:

Weitere Informationen sowie einen Vergleich von Lustre, GlusterFS und BeeGFS in Azure finden Sie im E-Book Parallele Dateisysteme in Azure und im Blog Lustre in Azure.

Netzwerk

Virtuelle Computer vom Typ „H16r“, „H16mr“, „A8“ und „A9“ können beispielsweise eine Verbindung mit einem Back-End-RDMA-Netzwerk mit hohem Durchsatz herstellen. Dieses Netzwerk kann die Leistung eng gekoppelter paralleler Anwendungen unter Microsoft Message Passing Interface (auch als MPI bekannt) oder Intel MPI verbessern.

Verwaltung

Eigenständig

Ein von Grund auf neu erstelltes HPC-System in Azure bietet zwar ein hohes Maß an Flexibilität, bringt aber häufig einen hohen Wartungsaufwand mit sich.

  1. Richten Sie auf virtuellen Azure-Computern oder in VM-Skalierungsgruppen Ihre eigene Clusterumgebung ein.
  2. Verwenden Sie Azure Resource Manager-Vorlagen, um führende Workload-Manager, Infrastruktur und Anwendungen bereitzustellen.
  3. Wählen Sie HPC- und GPU-VM-Größen aus, die spezielle Hardware und Netzwerkverbindungen für MPI- oder GPU-Workloads enthalten.
  4. Fügen Sie Hochleistungsspeicher für Workloads mit hoher E/A-Intensität hinzu.

Hybridlösung und Cloudbursting

Falls Sie bereits über ein lokales HPC-System verfügen, das Sie mit Azure verknüpfen möchten, steht Ihnen mehrere Ressourcen zur Verfügung, die Sie bei den ersten Schritten unterstützen.

Lesen Sie zunächst den Artikel Auswählen einer Lösung zum Herstellen einer Verbindung zwischen einem lokalen Netzwerk und Azure in der Dokumentation. Von dort aus finden Sie weitere Informationen zu diesen Konnektivitätsoptionen:

Nachdem Sie eine zuverlässige Netzwerkverbindung hergestellt haben, können Sie mit den Burstfunktionen Ihres bereits vorhandenen Workload-Managers mit der bedarfsabhängigen Nutzung von Cloud Computing-Ressourcen beginnen.

Marketplace-Lösungen

Im Azure Marketplace sind viele Workload-Manager erhältlich.

Azure Batch

Bei Azure Batch handelt es sich um einen Plattformdienst zur effizienten Ausführung umfangreicher paralleler und HPC-Anwendungen in der Cloud. Azure Batch plant die Ausführung rechenintensiver Aufgaben mit einem verwalteten Pool virtueller Computer und kann Computeressourcen automatisch skalieren, um den Anforderungen Ihrer Aufträge gerecht zu werden.

SaaS-Anbieter oder Entwickler können die Batch-SDKs und -Tools verwenden, um HPC-Anwendungen oder Containerworkloads in Azure zu integrieren, Daten in Azure bereitzustellen und Pipelines für die Auftragsausführung zu erstellen.

In Azure Batch werden alle Dienste in der Cloud ausgeführt werden. Die folgende Abbildung zeigt, wie die Architektur mit Azure Batch aussieht. Die Konfigurationen für Skalierbarkeit und Auftragszeitpläne werden in der Cloud ausgeführt, während die Ergebnisse und Berichte an Ihre lokale Umgebung gesendet werden können.

Diagramm: HPC-Architektur für Azure Batch.

Azure CycleCloud

Azure CycleCloud ist die einfachste Möglichkeit, HPC-Workloads mit einem beliebigen Planer (etwa Slurm, Grid Engine, HPC Pack, HTCondor, LSF, PBS Pro oder Symphony) in Azure zu verwalten.

CycleCloud ermöglicht Folgendes:

  • Stellen Sie vollständige Cluster und andere Ressourcen bereit (einschließlich Planer, Compute-VMs, Speicher, Netzwerk und Cache).
  • Orchestrieren Sie Workflows für Aufträge, Daten und die Cloud.
  • Geben Sie Administratoren die vollständige Kontrolle darüber, wer wann und zu welchem Preis Aufträge ausführen darf.
  • Nutzen Sie erweiterte Richtlinien- und Governancefeatures (einschließlich Kostenkontrolle, Active Directory-Integration, Überwachung und Berichterstellung), um Cluster anzupassen und zu optimieren.
  • Verwenden Sie Ihren aktuellen Aufgabenplaner und Ihre vertrauten Anwendungen, ohne diese anpassen zu müssen.
  • Profitieren Sie von der integrierten automatischen Skalierung sowie von bewährten Referenzarchitekturen für unterschiedlichste HPC-Workloads und Branchen.
Hybrid-/Cloudbursting-Modell

In diesem Beispieldiagramm für eine Hybridlösung können wir genau sehen, wie diese Dienste zwischen der Cloud und der lokalen Umgebung verteilt sind. Es besteht die Möglichkeit, Aufträge in beiden Workloads auszuführen. Diagramm: HPC-Beispielarchitektur für CycleCloud in Azure in einer Hybridlösung.

Cloudnatives Modell

Das folgende Beispieldiagramm des cloudnativen Modells zeigt, wie die Workload in der Cloud die gesamte Verarbeitung übernimmt, während die Verbindung mit der lokalen Umgebung beibehalten wird.

Diagramm: HPC-Beispielarchitektur für CycleCloud in Azure in einem cloudnativen Modell.

Vergleichsdiagramm

Funktion Azure Batch Azure CycleCloud
Scheduler Batch-APIs und -Tools sowie Befehlszeilenskripts im Azure-Portal (cloudnativ). Verwenden Sie HPC-Standardplaner wie Slurm, PBS Pro, LSF, Grid Engine und HTCondor, oder erweitern Sie CycleCloud-Plug-Ins für die automatische Skalierung, um mit Ihrem eigenen Planer zu arbeiten.
Computeressourcen Software-as-a-Service-Knoten – Platform-as-a-Service Platform-as-a-Service-Software – Platform-as-a-Service
Überwachungstools Azure Monitor Azure Monitor, Grafana
Anpassung Benutzerdefinierte Imagepools, Images von Drittanbietern, Batch-API-Zugriff. Verwenden Sie die umfassende RESTful-API zum Anpassen und Erweitern der Funktionalität, stellen Sie einen eigenen Planer bereit, und unterstützen Sie vorhandene Workload-Manager.
Integration Synapse-Pipelines, Azure Data Factory, Azure CLI Integrierte CLI für Windows und Linux
Benutzertyp Entwickler Klassische HPC-Administrator*innen und -Benutzer*innen
Arbeitstyp Batch, Workflows Eng gekoppelt (Message Passing Interface/MPI).
Windows-Unterstützung Ja Variiert je nach Planerauswahl

Workload-Manager

Unten sind Beispiele für Cluster- und Workload-Manager angegeben, die in der Azure-Infrastruktur ausgeführt werden können. Erstellen Sie eigenständige Cluster auf Azure-VMs, oder führen Sie aus einem lokalen Cluster einen Burst-Vorgang auf Azure-VMs durch.

Container

Einige HPC-Workloads können auch mithilfe von Containern verwaltet werden. Mit Diensten wie Azure Kubernetes Service (AKS) können Sie ganz einfach einen verwalteten Kubernetes-Cluster in Azure bereitstellen.

Kostenverwaltung

Für die Verwaltung Ihrer HPC-Kosten in Azure gibt es mehrere Möglichkeiten. Ermitteln Sie anhand der Azure-Kaufoptionen die Methode, die am besten für Ihre Organisation geeignet ist.

Sicherheit

Eine Übersicht über bewährte Sicherheitsmethoden in Azure finden Sie in der Dokumentation zur Azure-Sicherheit.

Neben den im Cloudbursting-Abschnitt verfügbaren Netzwerkkonfigurationen können Sie bei Bedarf auch eine Hub-and-Spoke-Konfiguration implementieren, um Ihre Computeressourcen zu isolieren:

HPC-Anwendungen

Führen Sie benutzerdefinierte oder kommerzielle HPC-Anwendungen in Azure aus. Für mehrere Beispiele in diesem Abschnitt wurden Benchmarks erstellt, um eine effiziente Skalierung mit zusätzlichen virtuellen Computern oder Computekernen zu ermöglichen. Besuchen Sie den Azure Marketplace, um auf Lösungen zuzugreifen, die sofort bereitgestellt werden können.

Hinweis

Informieren Sie sich bei Verwendung kommerzieller Anwendungen beim jeweiligen Hersteller über lizenzbedingte oder anderweitige Einschränkungen für die Ausführung in der Cloud. Nicht alle Hersteller bieten ein nutzungsbasiertes Lizenzmodell an. Unter Umständen benötigen Sie für Ihre Lösung einen Lizenzserver in der Cloud oder eine Verbindung mit einem lokalen Lizenzserver.

Technische Anwendungen

Grafik und Rendering

KI und Deep Learning

MPI-Anbieter

Remotevisualisierung

Führen Sie GPU-basierte virtuelle Computer in Azure in der gleichen Region aus wie die HPC-Ausgabe, um eine möglichst geringe Wartezeit sowie Zugriff zu erhalten und die Remotevisualisierung über Azure Virtual Desktop, Citrix oder VMware Horizon zu ermöglichen.

Leistungsbenchmarks

Kundenstimmen

Azure wird bereits von zahlreichen Kund*innen mit großem Erfolg für HPC-Workloads verwendet. Im Anschluss finden Sie einige Kundenreferenzen:

Weitere wichtige Informationen

  • Achten Sie vor dem Ausführen umfangreicher Workloads darauf, dass Ihr vCPU-Kontingent erhöht wurde.

Nächste Schritte

Die neuesten Ankündigungen finden Sie in den folgenden Ressourcen:

Microsoft Batch-Beispiele

Die folgenden Tutorials enthalten ausführliche Informationen zum Ausführen von Anwendungen in Microsoft-Batch: