High Performance Computing (HPC) in Azure

Einführung in HPC

High Performance Computing (HPC) wird auch „Big Compute“ genannt und nutzt zahlreiche CPU- oder GPU-basierte Computer, 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

Ein HPC-System basiert auf einer Reihe von Infrastrukturkomponenten. Compute, Speicher und Netzwerk werden immer benötigt – ganz gleich, für welche HPC-Workloadverwaltung Sie sich entscheiden.

HPC-Beispielarchitekturen

Für eine HPC-Architektur in Azure gibt es zahlreiche Gestaltungs- und Implementierungsmöglichkeiten. 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 eine Reihe von Lösungen, um den Geschwindigkeits- und Kapazitätsbedarf von HPC-Anwendungen in Azure zu verwalten.

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 MPI 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, ist aber häufig sehr wartungsintensiv.

  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 eine Reihe von 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. Anschließend können Sie sich mit den folgenden Konnektivitätsoptionen beschäftigen:

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 wird eine Reihe von Workload-Managern angeboten.

Azure Batch

Bei Azure Batch handelt es sich um eine Plattform zur Ausführung umfangreicher paralleler und leistungsstarker Anwendungen (High Performance Computing, HPC) 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.

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.

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-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 Kunden mit großem Erfolg für HPC-Workloads genutzt. 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 hier:

Microsoft Batch-Beispiele

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