Uso de instancias RDMA o GPU en grupos de BatchUse RDMA or GPU instances in Batch pools

Para ejecutar determinados trabajos de Batch, puede aprovechar los tamaños de máquina virtual de Azure diseñados para el cálculo a gran escala.To run certain Batch jobs, you can take advantage of Azure VM sizes designed for large-scale computation. Por ejemplo: For example:

  • para ejecutar cargas de trabajo de MPI de varias instancias, puede elegir la serie H u otros tamaños que tengan una interfaz de red para acceso directo a memoria remota (RDMA).To run multi-instance MPI workloads, choose H-series or other sizes that have a network interface for Remote Direct Memory Access (RDMA). Estos tamaños se conectan a una red de InfiniBand para la comunicación entre nodos, lo que puede acelerar las aplicaciones MPI.These sizes connect to an InfiniBand network for inter-node communication, which can accelerate MPI applications.

  • Para aplicaciones CUDA, puede elegir tamaños de la serie N que incluyen tarjetas de unidad de procesamiento gráfico (GPU) de NVIDIA Tesla.For CUDA applications, choose N-series sizes that include NVIDIA Tesla graphics processing unit (GPU) cards.

En este artículo se proporcionan instrucciones y ejemplos para usar algunos de los tamaños especializados de Azure en grupos de Batch.This article provides guidance and examples to use some of Azure's specialized sizes in Batch pools. Para especificaciones e información preliminar, consulte:For specs and background, see:

Nota

Algunos tamaños de máquina virtual podrían no estar disponibles en las regiones en las que cree las cuentas de Batch.Certain VM sizes might not be available in the regions where you create your Batch accounts. Para comprobar que un tamaño está disponible, consulte Productos disponibles por región y Elección de un tamaño de máquina virtual para un grupo de Batch.To check that a size is available, see Products available by region and Choose a VM size for a Batch pool.

DependenciasDependencies

Las funcionalidades RDMA y GPU de los tamaños de proceso intensivos solo se admiten en determinados sistemas operativos.The RDMA or GPU capabilities of compute-intensive sizes in Batch are supported only in certain operating systems. (La lista de sistemas operativos admitidos es un subconjunto de los admitidos para las máquinas virtuales creadas en estos tamaños). En función de cómo cree el grupo de Batch, puede que tenga que instalar o configurar un controlador adicional u otro software en los nodos.(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. En las tablas siguientes se resumen estas dependencias.The following tables summarize these dependencies. Consulte los artículos vinculados para más información.See linked articles for details. Para conocer las opciones para configurar grupos de Batch, consulte la información restante de este artículo.For options to configure Batch pools, see later in this article.

Grupos de Linux: configuración de la máquina virtualLinux pools - Virtual machine configuration

TamañoSize CapacidadCapability Sistemas operativosOperating systems Requisitos de softwareRequired software Configuración del grupoPool settings
H16r, H16mr, A8 y A9H16r, H16mr, A8, A9
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMARDMA Ubuntu 16.04 LTS oUbuntu 16.04 LTS, or
HPC basado en CentOSCentOS-based HPC
(Azure Marketplace)(Azure Marketplace)
Intel MPI 5Intel MPI 5

Controladores RDMA en LinuxLinux RDMA drivers
Habilitar la comunicación entre nodos y deshabilitar la ejecución de tareas simultáneasEnable inter-node communication, disable concurrent task execution
Series NC, NCv2, NCv3, NDv2NC, NCv2, NCv3, NDv2 series NVIDIA Tesla GPU (varía por serie)NVIDIA Tesla GPU (varies by series) Ubuntu 16.04 LTS oUbuntu 16.04 LTS, or
CentOS 7.3 o 7.4CentOS 7.3 or 7.4
(Azure Marketplace)(Azure Marketplace)
Controladores de NVIDIA CUDA o de CUDA ToolkitNVIDIA CUDA or CUDA Toolkit drivers N/DN/A
Series NV, NVv2NV, NVv2 series GPU NVIDIA Tesla M60NVIDIA Tesla M60 GPU Ubuntu 16.04 LTS oUbuntu 16.04 LTS, or
CentOS 7.3CentOS 7.3
(Azure Marketplace)(Azure Marketplace)
Controladores de NVIDIA GRIDNVIDIA GRID drivers N/DN/A

*Los tamaños de la serie N compatibles con RDMA también incluyen las GPU de NVIDIA Tesla*RDMA-capable N-series sizes also include NVIDIA Tesla GPUs

Grupos de Windows: configuración de la máquina virtualWindows pools - Virtual machine configuration

TamañoSize CapacidadCapability Sistemas operativosOperating systems Requisitos de softwareRequired software Configuración del grupoPool settings
H16r, H16mr, A8 y A9H16r, H16mr, A8, A9
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMARDMA Windows Server 2016, 2012 R2 oWindows Server 2016, 2012 R2, or
2012 (Azure Marketplace)2012 (Azure Marketplace)
Microsoft MPI 2012 R2 o posterior, oMicrosoft MPI 2012 R2 or later, or
Intel MPI 5Intel MPI 5

Controladores RDMA en WindowsWindows RDMA drivers
Habilitar la comunicación entre nodos y deshabilitar la ejecución de tareas simultáneasEnable inter-node communication, disable concurrent task execution
Series NC, NCv2, NCv3, ND, NDv2NC, NCv2, NCv3, ND, NDv2 series NVIDIA Tesla GPU (varía por serie)NVIDIA Tesla GPU (varies by series) Windows Server 2016 oWindows Server 2016 or
2012 R2 (Azure Marketplace)2012 R2 (Azure Marketplace)
Controladores de NVIDIA CUDA o de CUDA ToolkitNVIDIA CUDA or CUDA Toolkit drivers N/DN/A
Series NV, NVv2NV, NVv2 series GPU NVIDIA Tesla M60NVIDIA Tesla M60 GPU Windows Server 2016 oWindows Server 2016 or
2012 R2 (Azure Marketplace)2012 R2 (Azure Marketplace)
Controladores de NVIDIA GRIDNVIDIA GRID drivers N/DN/A

*Los tamaños de la serie N compatibles con RDMA también incluyen las GPU de NVIDIA Tesla*RDMA-capable N-series sizes also include NVIDIA Tesla GPUs

Grupos de Windows: configuración de servicios en la nubeWindows pools - Cloud services configuration

Nota

Los tamaños de la serie N no se admiten en grupos de Batch con la configuración de servicios en la nube.N-series sizes are not supported in Batch pools with the Cloud Service configuration.

TamañoSize CapacidadCapability Sistemas operativosOperating systems Requisitos de softwareRequired software Configuración del grupoPool settings
H16r, H16mr, A8 y A9H16r, H16mr, A8, A9 RDMARDMA Windows Server 2016, 2012 R2, 2012 oWindows Server 2016, 2012 R2, 2012, or
2008 R2 (familia de sistemas operativos invitados)2008 R2 (Guest OS family)
Microsoft MPI 2012 R2 o posterior, oMicrosoft MPI 2012 R2 or later, or
Intel MPI 5Intel MPI 5

Controladores RDMA en WindowsWindows RDMA drivers
Habilitar la comunicación entre nodos yEnable inter-node communication,
deshabilitar la ejecución de tareas simultáneasdisable concurrent task execution

Opciones de configuración de gruposPool configuration options

Dispone de varias opciones para instalar el software o los controladores necesarios para configurar un tamaño de máquina virtual especializado para el grupo de Batch:To configure a specialized VM size for your Batch pool, you have several options to install required software or drivers:

  • Para grupos de la configuración de máquina virtual, elija una imagen de máquina virtual de Azure Marketplace preconfigurada que tenga los controladores y el software preinstalados.For pools in the virtual machine configuration, choose a preconfigured Azure Marketplace VM image that has drivers and software preinstalled. Ejemplos:Examples:

  • Cree una imagen de máquina virtual Windows o Linux personalizada en la que haya instalado los controladores, software u otras configuraciones necesarias para el tamaño de máquina virtual.Create a custom Windows or Linux VM image on which you have installed drivers, software, or other settings required for the VM size.

  • Cree un paquete de aplicación de Batch desde un controlador comprimido o el instalador de la aplicación y configure Batch para implementar el paquete en los nodos del grupo e instalarlo una vez cuando se crea cada nodo.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. Por ejemplo, si el paquete de aplicación es un instalador, cree una línea de comandos de la tarea de inicio para instalar de forma silenciosa la aplicación en todos los nodos del grupo.For example, if the application package is an installer, create a start task command line to silently install the app on all pool nodes. Considere el uso de un paquete de aplicación y una tarea de inicio de grupo si la carga de trabajo depende de una versión determinada del controlador.Consider using an application package and a pool start task if your workload depends on a particular driver version.

    Nota

    La tarea de inicio se debe ejecutar con permisos elevados (administrador) y debe esperar a que se realice correctamente.The start task must run with elevated (admin) permissions, and it must wait for success. Las tareas de larga ejecución aumentan el tiempo necesario para aprovisionar un grupo de Batch.Long-running tasks will increase the time to provision a Batch pool.

  • Batch Shipyard configura automáticamente los controladores de GPU y RDMA para trabajar de forma transparente con cargas de trabajo en contenedores en Azure Batch.Batch Shipyard automatically configures the GPU and RDMA drivers to work transparently with containerized workloads on Azure Batch. Batch Shipyard se controla por completo con archivos de configuración.Batch Shipyard is entirely driven with configuration files. Hay muchas configuraciones de recetas de ejemplo disponibles que habilitan las cargas de trabajo de GPU y RDMA, como la receta CNTK GPU, que preconfigura los controladores de GPU en máquinas virtuales de la serie N y carga el software Microsoft Cognitive Toolkit como una imagen de Docker.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.

Ejemplo: Controladores de GPU de NVIDIA en un grupo de máquinas virtuales NC WindowsExample: NVIDIA GPU drivers on Windows NC VM pool

Para ejecutar aplicaciones CUDA en un grupo de nodos NC Windows, debe instalar los controladores de GPU de NVIDIA.To run CUDA applications on a pool of Windows NC nodes, you need to install NVDIA GPU drivers. Los siguientes pasos de ejemplo usan un paquete de aplicación para instalar los controladores de GPU de NVIDIA.The following sample steps use an application package to install the NVIDIA GPU drivers. Puede elegir esta opción si la carga de trabajo depende de una versión específica del controlador de GPU.You might choose this option if your workload depends on a specific GPU driver version.

  1. Descargue un paquete de instalación para los controladores de GPU en Windows Server 2016 desde el sitio web de NVIDIA: por ejemplo, la versión 411.82.Download a setup package for the GPU drivers on Windows Server 2016 from the NVIDIA website - for example, version 411.82. Guarde el archivo localmente con un nombre corto como GPUDriverSetup.exe.Save the file locally using a short name like GPUDriverSetup.exe.
  2. Cree un archivo ZIP del paquete.Create a zip file of the package.
  3. Cargue el paquete en su cuenta de Batch.Upload the package to your Batch account. Para conocer los pasos, consulte las instrucciones de los paquetes de aplicación.For steps, see the application packages guidance. Especifique un identificador de aplicación, como GPUDriver y una versión, como 411.82.Specify an application id such as GPUDriver, and a version such as 411.82.
  4. Mediante las API de Batch o Azure Portal, cree un grupo en la configuración de máquina virtual con el número de nodos y la escala deseados.Using the Batch APIs or Azure portal, create a pool in the virtual machine configuration with the desired number of nodes and scale. En la tabla siguiente se muestra la configuración de ejemplo para instalar los controladores de GPU de NVIDIA en modo silencioso mediante una tarea de inicio:The following table shows sample settings to install the NVIDIA GPU drivers silently using a start task:
ConfiguraciónSetting ValorValue
Tipo de imagenImage Type Marketplace (Linux/Windows)Marketplace (Linux/Windows)
PublicadorPublisher Microsoft Windows ServerMicrosoftWindowsServer
OfertaOffer Windows ServerWindowsServer
SkuSku 2016-Datacenter2016-Datacenter
Tamaño del nodoNode size Estándar NC6NC6 Standard
Referencias de paquetes de aplicaciónApplication package references GPUDriver, versión 411.82GPUDriver, version 411.82
Tarea de inicio habilitadaStart task enabled TrueTrue
Línea de comandos - 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"
Identidad del usuario: Usuario automático de grupo, administradorUser identity - Pool autouser, admin
Esperar operación correcta: TrueWait for success - True

Ejemplo: Controladores de GPU de NVIDIA en un grupo de máquinas virtuales NC LinuxExample: NVIDIA GPU drivers on a Linux NC VM pool

Para ejecutar aplicaciones CUDA en un grupo de nodos NC Linux, debe instalar los controladores de GPU de NVIDIA Tesla desde el Kit de herramientas de CUDA.To run CUDA applications on a pool of Linux NC nodes, you need to install necessary NVIDIA Tesla GPU drivers from the CUDA Toolkit. Los siguientes pasos de ejemplo crean e implementan una imagen personalizada de Ubuntu 16.04 LTS con los controladores de GPU:The following sample steps create and deploy a custom Ubuntu 16.04 LTS image with the GPU drivers:

  1. Implemente una VM de la serie NC de Azure en la que se ejecute Ubuntu 16.04 LTS.Deploy an Azure NC-series VM running Ubuntu 16.04 LTS. Por ejemplo, puede crear la VM en la región Centro y Sur de EE. UU.For example, create the VM in the US South Central region.
  2. Agregue la extensión de controladores de GPU de NVIDIA a la máquina virtual mediante Azure Portal, un equipo cliente que se conecte a la suscripción de Azure o 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. Como alternativa, siga los pasos para conectarse a la máquina virtual e instale los controladores de CUDA de forma manual.Alternatively, follow the steps to connect to the VM and install CUDA drivers manually.
  3. Siga los pasos para crear una instantánea y una imagen de máquina virtual Linux personalizada para Batch.Follow the steps to create a snapshot and custom Linux VM image for Batch.
  4. Cree una cuenta de Batch en una región que admite las máquinas virtuales de NC.Create a Batch account in a region that supports NC VMs.
  5. Mediante las API de Batch o Azure Portal , cree un grupo mediante la imagen personalizada y con el número de nodos y la escala deseados.Using the Batch APIs or Azure portal, create a pool using the custom image and with the desired number of nodes and scale. En la siguiente tabla se muestra la configuración de grupo de ejemplo de la imagen:The following table shows sample pool settings for the image:
ConfiguraciónSetting ValorValue
Tipo de imagenImage Type Imagen personalizadaCustom Image
Imagen personalizadaCustom Image Nombre de la imagenName of the image
SKU de agente del nodoNode agent SKU batch.node.ubuntu 16.04batch.node.ubuntu 16.04
Tamaño del nodoNode size Estándar NC6NC6 Standard

Ejemplo: Microsoft MPI en un grupo de máquinas virtuales H16r WindowsExample: Microsoft MPI on a Windows H16r VM pool

Para ejecutar aplicaciones MPI de Windows en un grupo de nodos de máquinas virtuales H16r de Azure, debe configurar la extensión HpcVmDrivers e instalar Microsoft MPI.To run Windows MPI applications on a pool of Azure H16r VM nodes, you need to configure the HpcVmDrivers extension and install Microsoft MPI. Estos son los pasos de ejemplo para implementar una imagen personalizada de Windows Server 2016 con los controladores y el software necesarios:Here are sample steps to deploy a custom Windows Server 2016 image with the necessary drivers and software:

  1. Implemente una máquina virtual H16r de Azure que ejecute Windows Server 2016.Deploy an Azure H16r VM running Windows Server 2016. Por ejemplo, puede crear la máquina virtual en la región Oeste de EE. UU.For example, create the VM in the US West region.
  2. Agregue la extensión HpcVmDrivers a la máquina virtual mediante la ejecución de un comando de Azure PowerShell desde un equipo cliente que se conecte a la suscripción de Azure o mediante Azure Cloud Shell.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. Abra una conexión de Escritorio remoto a la máquina virtual.Make a Remote Desktop connection to the VM.
  4. Descargue el paquete de instalación (MSMpiSetup.exe) correspondiente a la versión más reciente de Microsoft MPI e instale Microsoft MPI.Download the setup package (MSMpiSetup.exe) for the latest version of Microsoft MPI, and install Microsoft MPI.
  5. Siga los pasos para crear una instantánea y una imagen de máquina virtual Windows personalizada para Batch.Follow the steps to create a snapshot and custom Windows VM image for Batch.
  6. Mediante las API de Batch o Azure Portal , cree un grupo mediante la imagen personalizada y con el número de nodos y la escala deseados.Using the Batch APIs or Azure portal, create a pool using the custom image and with the desired number of nodes and scale. En la siguiente tabla se muestra la configuración de grupo de ejemplo de la imagen:The following table shows sample pool settings for the image:
ConfiguraciónSetting ValorValue
Tipo de imagenImage Type Imagen personalizadaCustom Image
Imagen personalizadaCustom Image Nombre de la imagenName of the image
SKU de agente del nodoNode agent SKU batch.node.windows amd64batch.node.windows amd64
Tamaño del nodoNode size H16r EstándarH16r Standard
Comunicación entre nodos habilitadaInternode communication enabled TrueTrue
Número máximo de tareas por nodoMax tasks per node 11

Ejemplo: Intel MPI en un grupo de máquinas virtuales H16r LinuxExample: Intel MPI on a Linux H16r VM pool

Para ejecutar aplicaciones MPI en un grupo de nodos Linux de la serie H, una opción consiste en usar la imagen HPC basada en CentOS 7.4 desde Azure Marketplace.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. Los controladores de RDMA de Linux e Intel MPI están preinstalados.Linux RDMA drivers and Intel MPI are preinstalled. Esta imagen también admite cargas de trabajo de contenedor de Docker.This image also supports Docker container workloads.

Mediante las API de Batch o Azure Portal, cree un grupo con esta imagen y con el número de nodos y la escala deseados.Using the Batch APIs or Azure portal, create a pool using this image and with the desired number of nodes and scale. En la siguiente tabla se muestra la configuración del grupo de ejemplo:The following table shows sample pool settings:

ConfiguraciónSetting ValorValue
Tipo de imagenImage Type Marketplace (Linux/Windows)Marketplace (Linux/Windows)
PublicadorPublisher OpenLogicOpenLogic
OfertaOffer CentOS-HPCCentOS-HPC
SkuSku 7.47.4
Tamaño del nodoNode size H16r EstándarH16r Standard
Comunicación entre nodos habilitadaInternode communication enabled TrueTrue
Número máximo de tareas por nodoMax tasks per node 11

Pasos siguientesNext steps

  • Para ejecutar trabajos MPI en un grupo de Azure Batch, consulte los ejemplos Windows o Linux.To run MPI jobs on an Azure Batch pool, see the Windows or Linux examples.

  • Para ejemplos de las cargas de trabajo de GPU en Batch, consulte las recetas de Batch Shipyard.For examples of GPU workloads on Batch, see the Batch Shipyard recipes.