Verwenden RDMA-fähiger oder GPU-fähiger Instanzen in Batch-Pools

Achtung

Dieser Artikel bezieht sich auf CentOS, eine Linux-Distribution, die sich dem End-of-Life-Status (EOL) nähert. Sie sollten Ihre Nutzung entsprechend planen. Weitere Informationen finden Sie im CentOS End-of-Life-Leitfaden.

Für die Ausführung bestimmter Batch-Aufträge können Sie die Vorteile von Azure-VM-Größen nutzen, die speziell für umfangreiche Berechnungen entwickelt wurden. Beispiel:

  • Wenn Sie MPI-Workloads mit mehreren Instanzen ausführen, wählen Sie die H-Serie oder andere Größen aus, die über eine Netzwerkschnittstelle für Remote Direct Memory Access (RDMA) verfügen. Diese Größen stellen für die knotenübergreifende Kommunikation eine Verbindung mit einem InfiniBand-Netzwerk her, um so MPI-Anwendungen zu beschleunigen.

  • Wählen Sie bei Verwendung von CUDA-Anwendungen Größen der N-Serie aus, die NVIDIA Tesla GPU-Karten (Graphics Processing Unit) enthalten.

Dieser Artikel enthält Anweisungen und Anwendungsbeispiele für einige spezielle Größen in Azure für Batch-Pools. Technische Daten und Hintergrundinformationen finden Sie unter:

  • Größen von virtuellen HPC-Computern (High Performance Computing) – Linux, Windows

  • GPU-fähige VM-Größen (Linux, Windows)

Hinweis

Bestimmte VM-Größen sind in den Regionen, in denen Sie Ihre Batch-Konten erstellen, möglicherweise nicht verfügbar. Informationen zu den verfügbaren Größen finden Sie unter Verfügbare Produkte nach Region und Auswählen einer VM-Größe für einen Batch-Pool.

Abhängigkeiten

Die RDMA- oder GPU-Funktionen rechenintensiver Größen in Batch werden nur unter bestimmten Betriebssystemen unterstützt. (Die Liste der unterstützten Betriebssysteme ist eine Teilmenge derjenigen, die für in diesen Größen erstellte virtuelle Maschinen unterstützt werden). Je nachdem, wie Sie Ihren Batch-Pool erstellen, müssen Sie möglicherweise zusätzliche Treiber oder andere Software auf den Knoten installieren oder konfigurieren. In den folgenden Tabellen werden diese Abhängigkeiten zusammengefasst. Einzelheiten finden Sie in den verlinkten Artikeln. Optionen zum Konfigurieren von Batch-Pools finden Sie weiter unten in diesem Artikel.

Linux-Pools – Konfiguration „Virtueller Computer“

Size Funktion Betriebssysteme Erforderliche Software Pooleinstellungen
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Ubuntu 22.04 LTS oder
CentOS-basierter HPC
(Azure Marketplace)
Intel MPI 5

Linux-RDMA-Treiber
Knotenübergreifende Kommunikation aktivieren, parallele Taskausführung deaktivieren
NC-, NCv2-, NCv3-, NDv2-Serie NVIDIA Tesla GPU (je nach Serie) Ubuntu 22.04 LTS oder
CentOS 8.1
(Azure Marketplace)
NVIDIA CUDA- oder CUDA Toolkit-Treiber
NV, NVv2, NVv4-Serie NVIDIA Tesla M60 GPU Ubuntu 22.04 LTS oder
CentOS 8.1
(Azure Marketplace)
NVIDIA GRID-Treiber

*RDMA-fähige Größen der N-Serie umfassen auch NVIDIA Tesla GPUs.

Wichtig

Dieses Dokument verweist auf eine Releaseversion von Linux, die sich dem Ende des Lebenszyklus (End of Life, EOL) nähert oder es erreicht hat. Erwägen Sie ein Update auf eine aktuellere Version.

Windows-Pools: VM-Konfiguration

Size Funktion Betriebssysteme Erforderliche Software Pooleinstellungen
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Windows Server 2016, 2012 R2 oder
2012 (Azure Marketplace)
Microsoft MPI 2012 R2 oder höher oder
Intel MPI 5

Windows-RDMA-Treiber
Knotenübergreifende Kommunikation aktivieren, parallele Taskausführung deaktivieren
NC-, NCv2-, NCv3-, ND-, NDv2-Serie NVIDIA Tesla GPU (je nach Serie) Windows Server 2016 oder
2012 R2 (Azure Marketplace)
NVIDIA CUDA- oder CUDA Toolkit-Treiber
NV, NVv2, NVv4-Serie NVIDIA Tesla M60 GPU Windows Server 2016 oder
2012 R2 (Azure Marketplace)
NVIDIA GRID-Treiber

*RDMA-fähige Größen der N-Serie umfassen auch NVIDIA Tesla GPUs.

Windows-Pools: Cloud Services-Konfiguration

Warnung

Cloud Services-Konfigurationspools sind veraltet. Verwenden Sie stattdessen VM-Konfigurationspools.

Size Funktion Betriebssysteme Erforderliche Software Pooleinstellungen
H16r, H16mr RDMA Windows Server 2016, 2012 R2, 2012 oder
2008 R2 (Gastbetriebssystemfamilie)
Microsoft MPI 2012 R2 oder höher oder
Intel MPI 5

Windows-RDMA-Treiber
Kommunikation zwischen Knoten aktivieren,
parallele Taskausführung deaktivieren

Hinweis

Größen der N-Serie werden in Cloud Services-Konfigurationspools nicht unterstützt.

Poolkonfigurationsoptionen

Für das Konfigurieren einer speziellen VM-Größe für Ihren Batch-Pool stehen Ihnen mehrere Optionen zum Installieren der erforderlichen Software oder Treiber zur Verfügung:

  • Wählen Sie für Pools in der Konfiguration „Virtueller Computer“ ein vorkonfiguriertes Azure Marketplace-VM-Image aus, auf dem Treiber und Software vorinstalliert sind. Beispiele:

  • Erstellen Sie ein benutzerdefiniertes Windows- oder Linux-VM-Image, auf dem Sie Treiber, Software oder andere erforderliche Einstellungen für die Größe des virtuellen Computers installiert haben.

  • Erstellen Sie ein Batch-Anwendungspaket aus einem gezippten Treiber oder Anwendungsinstallationsprogramm, und konfigurieren Sie Azure Batch für die Bereitstellung des Pakets auf Poolknoten und für die Installation nach der Erstellung der einzelnen Knoten. Wenn das Anwendungspaket beispielsweise ein Installationsprogramm ist, erstellen Sie eine Befehlszeile für die Startaufgabe, mit der die App auf allen Poolknoten im Hintergrund installiert wird. Ziehen Sie die Verwendung eines Anwendungspakets und einer Poolstartaufgabe in Betracht, wenn Ihre Workload von einer bestimmten Treiberversion abhängig ist.

    Hinweis

    Die Startaufgabe muss mit erhöhten Rechten (Administrator) ausgeführt werden und die erfolgreiche Ausführung abwarten. Bei lang andauernden Aufgaben erhöht sich die zum Bereitstellen eines Batch-Pools benötigte Zeit.

Beispiel: NVIDIA-GPU-Treiber in einem NC-VM-Pool unter Windows

Um CUDA-Anwendungen in einem Pool von Windows-NC-Knoten ausführen zu können, müssen Sie NVDIA GPU-Treiber installieren. In den folgenden Beispielschritten wird ein Anwendungspaket zum Installieren der NVIDIA GPU-Treiber verwendet. Sie können diese Option auswählen, wenn Ihre Workload von einer bestimmten GPU-Treiberversion abhängig ist.

  1. Laden Sie ein Setuppaket für die GPU-Treiber unter Windows Server 2016 von der NVIDIA-Website herunter, z. B. Version 411.82. Speichern Sie die Datei lokal, und verwenden Sie dabei einen Kurznamen wie GPUDriverSetup.exe.
  2. Erstellen Sie eine ZIP-Datei des Pakets.
  3. Laden Sie das Paket in Ihr Batch-Konto hoch. Anweisungen finden Sie in der Anleitung zum Anwendungspaket. Geben Sie eine Anwendungs-ID (z. B. GPUDriver) und eine Version (z. B. 411.82) an.
  4. Erstellen Sie mit den Batch-APIs oder im Azure-Portal einen Pool in der Konfiguration „Virtueller Computer“ mit der gewünschten Anzahl von Knoten und der gewünschten Skalierung. In der folgenden Tabelle werden Beispieleinstellungen für die mithilfe einer Startaufgabe im Hintergrund ausgeführte Installation der NVIDIA GPU-Treiber aufgeführt:
Einstellung Value
Imagetyp Marketplace (Linux/Windows)
Publisher MicrosoftWindowsServer
Angebot Windows Server
sku 2016-Datacenter
Knotengröße NC6 Standard
Anwendungspaketverweise GPUDriver, Version 411.82
Startaufgabe aktiviert Richtig
Befehlszeile - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"
Benutzeridentität: autouser, admin für den Pool
Erfolg abwarten: TRUE

Beispiel: NVIDIA-GPU-Treiber in einem NC-VM-Pool unter Linux

Um CUDA-Anwendungen in einem Pool von Linux-NC-Knoten ausführen zu können, müssen Sie die erforderlichen NVIDIA Tesla GPU-Treiber aus dem CUDA Toolkit installieren. Mit den folgenden Beispielschritten erstellen Sie ein benutzerdefiniertes Ubuntu 22.04 LTS-Image mit den GPU-Treibern und stellen es bereit:

  1. Stellen Sie eine Azure-NC-Serien-VM mit Ubuntu 22.04 LTS bereit. Sie können den virtuellen Computer beispielsweise in der Region „USA, Süden-Mitte“ erstellen.
  2. Fügen Sie dem VM die Erweiterung für NVIDIA GPU-Treiber hinzu. Verwenden Sie dazu das Azure-Portal, einen mit dem Azure-Abonnement verknüpften Clientcomputer oder Azure Cloud Shell. Alternativ können Sie auch die Schritte zum Herstellen einer Verbindung mit dem virtuellen Computer und zum manuellen Installieren der CUDA-Treiber ausführen.
  3. Befolgen Sie die Schritte zum Erstellen eines Shared Image Gallery-Images für das Batch.
  4. Erstellen Sie ein Batch-Konto in einer Region, die NC-VMs unterstützt.
  5. Erstellen Sie mit den Batch-APIs oder dem Azure-Portal einen Pool mit dem benutzerdefinierten Image sowie der gewünschten Anzahl von Knoten und der gewünschten Skalierung. Die folgende Tabelle enthält Beispielpooleinstellungen für das Image:
Einstellung Value
Imagetyp Benutzerdefiniertes Image
Benutzerdefiniertes Image Name des Image
Knoten-Agent-SKU batch.node.ubuntu 22.04
Knotengröße NC6 Standard

Beispiel: Microsoft MPI in einem H16r-VM-Pool unter Windows

Um Windows-MPI-Anwendungen in einem Pool von Azure H16r-VM-Knoten ausführen zu können, müssen Sie die Erweiterung „HpcVmDrivers“ konfigurieren und Microsoft MPI installieren. Nachfolgend finden Sie Beispielschritte zum Bereitstellen eines benutzerdefinierten Windows Server 2016-Image mit den erforderlichen Treibern und der erforderlichen Software:

  1. Stellen Sie einen Azure H16r-VM unter Windows Server 2016 bereit. Erstellen Sie den virtuellen Computer beispielsweise in der Region „USA, Westen“.
  2. Fügen Sie dem VM die Erweiterung „HpcVmDrivers“ hinzu, indem Sie auf einem mit dem Azure-Abonnement verknüpften Clientcomputer einen Azure PowerShell-Befehl ausführen oder Azure Cloud Shell verwenden.
  3. Stellen Sie eine Remotedesktopverbindung mit dem virtuellen Computer her.
  4. Laden Sie das Setuppaket („MSMpiSetup.exe“) für die neueste Version von Microsoft MPI herunter, und installieren Sie Microsoft MPI.
  5. Befolgen Sie die Schritte zum Erstellen eines Shared Image Gallery-Images für das Batch.
  6. Erstellen Sie mit den Batch-APIs oder dem Azure-Portal einen Pool mit der Azure Compute Gallery sowie der gewünschten Anzahl von Knoten und der gewünschten Skalierung. Die folgende Tabelle enthält Beispielpooleinstellungen für das Image:
Einstellung Value
Imagetyp Benutzerdefiniertes Image
Benutzerdefiniertes Image Name des Image
Knoten-Agent-SKU batch.node.windows amd64
Knotengröße H16r Standard
Kommunikation zwischen Knoten aktiviert Richtig
Max. Aufgaben pro Knoten 1

Beispiel: Intel MPI in einem H16r-VM-Pool unter Linux

Um MPI-Anwendungen auf einem Pool von Linux-Knoten der HB-Serie auszuführen, können Sie beispielsweise das CentOS-basierte 8.1 HPC-Image aus dem Azure Marketplace verwenden. Linux-RDMA-Treiber und Intel MPI sind vorinstalliert. Dieses Image unterstützt auch Docker-Containerworkloads.

Erstellen Sie mit den Batch-APIs oder im Azure-Portal einen Pool mit diesem Image sowie der gewünschten Anzahl von Knoten und der gewünschten Skalierung. In der folgenden Tabelle werden Beispielpooleinstellungen aufgeführt:

Einstellung Value
Imagetyp Marketplace (Linux/Windows)
Publisher OpenLogic
Angebot CentOS-HPC
sku 8.1
Knotengröße H16r Standard
Kommunikation zwischen Knoten aktiviert Richtig
Max. Aufgaben pro Knoten 1

Nächste Schritte

  • Beispiele zur Ausführung von MPI-Aufträgen in einem Azure Batch-Pool stehen für Windows und Linux zur Verfügung.