Verwenden RDMA-fähiger oder GPU-fähiger Instanzen in Batch-PoolsUse RDMA or GPU instances in Batch pools

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.To run certain Batch jobs, you can take advantage of Azure VM sizes designed for large-scale computation. Beispiel:For example:

  • 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.To run multi-instance MPI workloads, choose H-series or other sizes that have a network interface for Remote Direct Memory Access (RDMA). Diese Größen stellen für die knotenübergreifende Kommunikation eine Verbindung mit einem InfiniBand-Netzwerk her, um so MPI-Anwendungen zu beschleunigen.These sizes connect to an InfiniBand network for inter-node communication, which can accelerate MPI applications.

  • Wählen Sie bei Verwendung von CUDA-Anwendungen Größen der N-Serie aus, die NVIDIA Tesla GPU-Karten (Graphics Processing Unit) enthalten.For CUDA applications, choose N-series sizes that include NVIDIA Tesla graphics processing unit (GPU) cards.

Dieser Artikel enthält Anweisungen und Anwendungsbeispiele für einige spezielle Größen in Azure für Batch-Pools.This article provides guidance and examples to use some of Azure's specialized sizes in Batch pools. Technische Daten und Hintergrundinformationen finden Sie unter:For specs and background, see:

Hinweis

Bestimmte VM-Größen sind in den Regionen, in denen Sie Ihre Batch-Konten erstellen, möglicherweise nicht verfügbar.Certain VM sizes might not be available in the regions where you create your Batch accounts. 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.To check that a size is available, see Products available by region and Choose a VM size for a Batch pool.

AbhängigkeitenDependencies

Die RDMA- oder GPU-Funktionen rechenintensiver Größen in Batch werden nur unter bestimmten Betriebssystemen unterstützt.The RDMA or GPU capabilities of compute-intensive sizes in Batch are supported only in certain operating systems. (Die Liste der unterstützten Betriebssysteme stellt eine Teilmenge der Betriebssysteme dar, die für in diesen Größen erstellte virtuelle Computer 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.(The list of supported operating systems is a subset of those supported for virtual machines created in these sizes.) Depending on how you create your Batch pool, you might need to install or configure additional driver or other software on the nodes. In den folgenden Tabellen werden diese Abhängigkeiten zusammengefasst.The following tables summarize these dependencies. Einzelheiten finden Sie in den verlinkten Artikeln.See linked articles for details. Optionen zum Konfigurieren von Batch-Pools finden Sie weiter unten in diesem Artikel.For options to configure Batch pools, see later in this article.

Linux-Pools – Konfiguration „Virtueller Computer“Linux pools - Virtual machine configuration

GrößeSize FunktionCapability BetriebssystemeOperating systems Erforderliche SoftwareRequired software PooleinstellungenPool settings
H16r, H16mr, A8, A9H16r, H16mr, A8, A9
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMARDMA Ubuntu 16.04 LTS oderUbuntu 16.04 LTS, or
CentOS-basierter HPCCentOS-based HPC
(Azure Marketplace)(Azure Marketplace)
Intel MPI 5Intel MPI 5

Linux-RDMA-TreiberLinux RDMA drivers
Knotenübergreifende Kommunikation aktivieren, parallele Taskausführung deaktivierenEnable inter-node communication, disable concurrent task execution
NC-, NCv2-, NCv3-, NDv2-SerieNC, NCv2, NCv3, NDv2 series NVIDIA Tesla GPU (je nach Serie)NVIDIA Tesla GPU (varies by series) Ubuntu 16.04 LTS oderUbuntu 16.04 LTS, or
CentOS 7.3 oder 7.4CentOS 7.3 or 7.4
(Azure Marketplace)(Azure Marketplace)
NVIDIA CUDA- oder CUDA Toolkit-TreiberNVIDIA CUDA or CUDA Toolkit drivers N/A
NV-, NVv2-SerieNV, NVv2 series NVIDIA Tesla M60 GPUNVIDIA Tesla M60 GPU Ubuntu 16.04 LTS oderUbuntu 16.04 LTS, or
CentOS 7.3CentOS 7.3
(Azure Marketplace)(Azure Marketplace)
NVIDIA GRID-TreiberNVIDIA GRID drivers N/A

*RDMA-fähige Größen der N-Serie umfassen auch NVIDIA Tesla GPUs.*RDMA-capable N-series sizes also include NVIDIA Tesla GPUs

Windows-Pools – Konfiguration „Virtueller Computer“Windows pools - Virtual machine configuration

GrößeSize FunktionCapability BetriebssystemeOperating systems Erforderliche SoftwareRequired software PooleinstellungenPool settings
H16r, H16mr, A8, A9H16r, H16mr, A8, A9
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMARDMA Windows Server 2016, 2012 R2 oderWindows Server 2016, 2012 R2, or
2012 (Azure Marketplace)2012 (Azure Marketplace)
Microsoft MPI 2012 R2 oder höher oderMicrosoft MPI 2012 R2 or later, or
Intel MPI 5Intel MPI 5

Windows-RDMA-TreiberWindows RDMA drivers
Knotenübergreifende Kommunikation aktivieren, parallele Taskausführung deaktivierenEnable inter-node communication, disable concurrent task execution
NC-, NCv2-, NCv3-, ND-, NDv2-SerieNC, NCv2, NCv3, ND, NDv2 series NVIDIA Tesla GPU (je nach Serie)NVIDIA Tesla GPU (varies by series) Windows Server 2016 oderWindows Server 2016 or
2012 R2 (Azure Marketplace)2012 R2 (Azure Marketplace)
NVIDIA CUDA- oder CUDA Toolkit-TreiberNVIDIA CUDA or CUDA Toolkit drivers N/A
NV-, NVv2-SerieNV, NVv2 series NVIDIA Tesla M60 GPUNVIDIA Tesla M60 GPU Windows Server 2016 oderWindows Server 2016 or
2012 R2 (Azure Marketplace)2012 R2 (Azure Marketplace)
NVIDIA GRID-TreiberNVIDIA GRID drivers N/A

*RDMA-fähige Größen der N-Serie umfassen auch NVIDIA Tesla GPUs.*RDMA-capable N-series sizes also include NVIDIA Tesla GPUs

Windows-Pools – Konfiguration „Clouddienst“Windows pools - Cloud services configuration

Hinweis

Größen der N-Serie werden in Batch-Pools mit der Clouddienstkonfiguration nicht unterstützt.N-series sizes are not supported in Batch pools with the Cloud Service configuration.

GrößeSize FunktionCapability BetriebssystemeOperating systems Erforderliche SoftwareRequired software PooleinstellungenPool settings
H16r, H16mr, A8, A9H16r, H16mr, A8, A9 RDMARDMA Windows Server 2016, 2012 R2, 2012 oderWindows Server 2016, 2012 R2, 2012, or
2008 R2 (Gastbetriebssystemfamilie)2008 R2 (Guest OS family)
Microsoft MPI 2012 R2 oder höher oderMicrosoft MPI 2012 R2 or later, or
Intel MPI 5Intel MPI 5

Windows-RDMA-TreiberWindows RDMA drivers
Kommunikation zwischen Knoten aktivieren,Enable inter-node communication,
parallele Taskausführung deaktivierendisable concurrent task execution

PoolkonfigurationsoptionenPool configuration options

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:To configure a specialized VM size for your Batch pool, you have several options to install required software or drivers:

  • 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.For pools in the virtual machine configuration, choose a preconfigured Azure Marketplace VM image that has drivers and software preinstalled. Beispiele:Examples:

  • 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.Create a custom Windows or Linux VM image on which you have installed drivers, software, or other settings required for the VM size.

  • 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.Create a Batch application package from a zipped driver or application installer, and configure Batch to deploy the package to pool nodes and install once when each node is created. 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.For example, if the application package is an installer, create a start task command line to silently install the app on all pool nodes. Ziehen Sie die Verwendung eines Anwendungspakets und einer Poolstartaufgabe in Betracht, wenn Ihre Workload von einer bestimmten Treiberversion abhängig ist.Consider using an application package and a pool start task if your workload depends on a particular driver version.

    Hinweis

    Die Startaufgabe muss mit erhöhten Rechten (Administrator) ausgeführt werden und die erfolgreiche Ausführung abwarten.The start task must run with elevated (admin) permissions, and it must wait for success. Bei lang andauernden Aufgaben erhöht sich die zum Bereitstellen eines Batch-Pools benötigte Zeit.Long-running tasks will increase the time to provision a Batch pool.

  • Batch Shipyard konfiguriert automatisch die GPU- und RDMA-Treiber für die transparente Arbeit mit Containerworkloads in Azure Batch.Batch Shipyard automatically configures the GPU and RDMA drivers to work transparently with containerized workloads on Azure Batch. Batch Shipyard wird vollständig über Konfigurationsdateien gesteuert.Batch Shipyard is entirely driven with configuration files. Es gibt eine Vielzahl von Beispielkonfigurationen, die GPU- und RDMA-Workloads ermöglichen, z.B. das CNTK GPU Recipe, das GPU-Treiber auf virtuellen Computern der N-Serie vorkonfiguriert und die Software des Microsoft Cognitive Toolkit als Docker-Image lädt.There are many sample recipe configurations available that enable GPU and RDMA workloads such as the CNTK GPU Recipe which preconfigures GPU drivers on N-series VMs and loads Microsoft Cognitive Toolkit software as a Docker image.

Beispiel: NVIDIA GPU-Treiber in einem Windows-NC-VM-PoolExample: NVIDIA GPU drivers on Windows NC VM pool

Um CUDA-Anwendungen in einem Pool von Windows-NC-Knoten ausführen zu können, müssen Sie NVDIA GPU-Treiber installieren.To run CUDA applications on a pool of Windows NC nodes, you need to install NVDIA GPU drivers. In den folgenden Beispielschritten wird ein Anwendungspaket zum Installieren der NVIDIA GPU-Treiber verwendet.The following sample steps use an application package to install the NVIDIA GPU drivers. Sie können diese Option auswählen, wenn Ihre Workload von einer bestimmten GPU-Treiberversion abhängig ist.You might choose this option if your workload depends on a specific GPU driver version.

  1. Laden Sie ein Setuppaket für die GPU-Treiber unter Windows Server 2016 von der NVIDIA-Website herunter, z. B. Version 411.82.Download a setup package for the GPU drivers on Windows Server 2016 from the NVIDIA website - for example, version 411.82. Speichern Sie die Datei lokal, und verwenden Sie dabei einen Kurznamen wie GPUDriverSetup.exe.Save the file locally using a short name like GPUDriverSetup.exe.
  2. Erstellen Sie eine ZIP-Datei des Pakets.Create a zip file of the package.
  3. Laden Sie das Paket in Ihr Batch-Konto hoch.Upload the package to your Batch account. Anweisungen finden Sie in der Anleitung zum Anwendungspaket.For steps, see the application packages guidance. Geben Sie eine Anwendungs-ID (z. B. GPUDriver) und eine Version (z. B. 411.82) an.Specify an application id such as GPUDriver, and a version such as 411.82.
  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.Using the Batch APIs or Azure portal, create a pool in the virtual machine configuration with the desired number of nodes and scale. In der folgenden Tabelle werden Beispieleinstellungen für die mithilfe einer Startaufgabe im Hintergrund ausgeführte Installation der NVIDIA GPU-Treiber aufgeführt:The following table shows sample settings to install the NVIDIA GPU drivers silently using a start task:
EinstellungSetting WertValue
ImagetypImage Type Marketplace (Linux/Windows)Marketplace (Linux/Windows)
HerausgeberPublisher MicrosoftWindowsServerMicrosoftWindowsServer
AngebotOffer Windows ServerWindowsServer
skuSku 2016-Datacenter2016-Datacenter
KnotengrößeNode size NC6 StandardNC6 Standard
AnwendungspaketverweiseApplication package references GPUDriver, Version 411.82GPUDriver, version 411.82
Startaufgabe aktiviertStart task enabled TrueTrue
Befehlszeile - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"Command line - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"
Benutzeridentität: autouser, admin für den PoolUser identity - Pool autouser, admin
Erfolg abwarten: TRUEWait for success - True

Beispiel: NVIDIA GPU-Treiber in einem Linux-NC-VM-PoolExample: NVIDIA GPU drivers on a Linux NC VM pool

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.To run CUDA applications on a pool of Linux NC nodes, you need to install necessary NVIDIA Tesla GPU drivers from the CUDA Toolkit. Mit den folgenden Beispielschritten wird ein benutzerdefiniertes Ubuntu 16.04 LTS-Image mit GPU-Treibern erstellt und bereitgestellt:The following sample steps create and deploy a custom Ubuntu 16.04 LTS image with the GPU drivers:

  1. Stellen Sie eine Azure-NC-Serien-VM mit Ubuntu 16.04 LTS bereit.Deploy an Azure NC-series VM running Ubuntu 16.04 LTS. Sie können den virtuellen Computer beispielsweise in der Region „USA, Süden-Mitte“ erstellen.For example, create the VM in the US South Central region.
  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.Add the NVIDIA GPU Drivers extension to the VM by using the Azure portal, a client computer that connects to the Azure subscription, or 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.Alternatively, follow the steps to connect to the VM and install CUDA drivers manually.
  3. Führen Sie die Schritte zum Erstellen einer Momentaufnahme und eines benutzerdefinierten Linux-VM-Image für Batch aus.Follow the steps to create a snapshot and custom Linux VM image for Batch.
  4. Erstellen Sie ein Batch-Konto in einer Region, die NC-VMs unterstützt.Create a Batch account in a region that supports NC VMs.
  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.Using the Batch APIs or Azure portal, create a pool using the custom image and with the desired number of nodes and scale. Die folgende Tabelle enthält Beispielpooleinstellungen für das Image:The following table shows sample pool settings for the image:
EinstellungSetting WertValue
ImagetypImage Type Benutzerdefiniertes ImageCustom Image
Benutzerdefiniertes ImageCustom Image Name des ImageName of the image
Knoten-Agent-SKUNode agent SKU batch.node.ubuntu 16.04batch.node.ubuntu 16.04
KnotengrößeNode size NC6 StandardNC6 Standard

Beispiel: Microsoft MPI in einem H16r-VM-Pool unter WindowsExample: Microsoft MPI on a Windows H16r VM pool

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.To run Windows MPI applications on a pool of Azure H16r VM nodes, you need to configure the HpcVmDrivers extension and install Microsoft MPI. Nachfolgend finden Sie Beispielschritte zum Bereitstellen eines benutzerdefinierten Windows Server 2016-Image mit den erforderlichen Treibern und der erforderlichen Software:Here are sample steps to deploy a custom Windows Server 2016 image with the necessary drivers and software:

  1. Stellen Sie einen Azure H16r-VM unter Windows Server 2016 bereit.Deploy an Azure H16r VM running Windows Server 2016. Erstellen Sie den virtuellen Computer beispielsweise in der Region „USA, Westen“.For example, create the VM in the US West region.
  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.Add the HpcVmDrivers extension to the VM by running an Azure PowerShell command from a client computer that connects to your Azure subscription, or using Azure Cloud Shell.
  3. Stellen Sie eine Remotedesktopverbindung mit dem virtuellen Computer her.Make a Remote Desktop connection to the VM.
  4. Laden Sie das Setuppaket („MSMpiSetup.exe“) für die neueste Version von Microsoft MPI herunter, und installieren Sie Microsoft MPI.Download the setup package (MSMpiSetup.exe) for the latest version of Microsoft MPI, and install Microsoft MPI.
  5. Führen Sie die Schritte zum Erstellen einer Momentaufnahme und eines benutzerdefinierten Windows-VM-Image für Batch aus.Follow the steps to create a snapshot and custom Windows VM image for Batch.
  6. 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.Using the Batch APIs or Azure portal, create a pool using the custom image and with the desired number of nodes and scale. Die folgende Tabelle enthält Beispielpooleinstellungen für das Image:The following table shows sample pool settings for the image:
EinstellungSetting WertValue
ImagetypImage Type Benutzerdefiniertes ImageCustom Image
Benutzerdefiniertes ImageCustom Image Name des ImageName of the image
Knoten-Agent-SKUNode agent SKU batch.node.windows amd64batch.node.windows amd64
KnotengrößeNode size H16r StandardH16r Standard
Kommunikation zwischen Knoten aktiviertInternode communication enabled TrueTrue
Max. Aufgaben pro KnotenMax tasks per node 11

Beispiel: Intel MPI in einem H16r-VM-Pool unter LinuxExample: Intel MPI on a Linux H16r VM pool

Eine Möglichkeit zum Ausführen von MPI-Anwendungen in einem Pool von Linux-Knoten der H-Serie besteht darin, das Image CentOS-based 7.4 HPC aus dem Azure Marketplace zu verwenden.To run MPI applications on a pool of Linux H-series nodes, one option is to use the CentOS-based 7.4 HPC image from the Azure Marketplace. Linux-RDMA-Treiber und Intel MPI sind vorinstalliert.Linux RDMA drivers and Intel MPI are preinstalled. Dieses Image unterstützt auch Docker-Containerworkloads.This image also supports Docker container workloads.

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.Using the Batch APIs or Azure portal, create a pool using this image and with the desired number of nodes and scale. In der folgenden Tabelle werden Beispielpooleinstellungen aufgeführt:The following table shows sample pool settings:

EinstellungSetting WertValue
ImagetypImage Type Marketplace (Linux/Windows)Marketplace (Linux/Windows)
HerausgeberPublisher OpenLogicOpenLogic
AngebotOffer CentOS-HPCCentOS-HPC
skuSku 7.47.4
KnotengrößeNode size H16r StandardH16r Standard
Kommunikation zwischen Knoten aktiviertInternode communication enabled TrueTrue
Max. Aufgaben pro KnotenMax tasks per node 11

Nächste SchritteNext steps

  • Beispiele zur Ausführung von MPI-Aufträgen in einem Azure Batch-Pool stehen für Windows und Linux zur Verfügung.To run MPI jobs on an Azure Batch pool, see the Windows or Linux examples.

  • Beispiele für GPU-Workloads in Batch finden Sie in Batch Shipyard.For examples of GPU workloads on Batch, see the Batch Shipyard recipes.