Compartir a través de


Configuración de un clúster de RDMA de Windows con HPC Pack para ejecutar aplicaciones MPI

Importante

Las máquinas virtuales clásicas se retirarán el 1 de marzo de 2023.

Si usa recursos de IaaS desde ASM, complete la migración antes del 1 de marzo de 2023. Le recomendamos que realice el cambio antes, para aprovechar las diversas mejoras de las características de Azure Resource Manager.

Para más información, consulte Migración de los recursos de IaaS a Azure Resource Manager antes del 1 de marzo de 2023.

Configura un clúster RDMA de Windows en Azure con Microsoft HPC Pack y tamaños de máquina virtual de HPC compatibles con RDMA para ejecutar aplicaciones de interfaz de paso de mensajes (MPI) paralelas. Al configurar nodos basados en RDMA en un clúster de HPC Pack, las aplicaciones de MPI se comunican de forma eficaz a través de una red de baja latencia y alto rendimiento en Azure que se basa en la tecnología de acceso directo a memoria remota (RDMA).

Opciones de implementación del clúster de HPC Pack

Microsoft HPC Pack es una herramienta que no supone ningún costo adicional para crear clústeres de HPC locales o en Azure para ejecutar aplicaciones HPC de Windows o Linux. HPC Pack incluye un entorno de tiempo de ejecución para la implementación de Microsoft de la interfaz de paso de mensajes para Windows (MS-MPI). Cuando se usa con instancias compatibles con RDMA que ejecutan un sistema operativo Windows Server compatible, HPC Pack proporciona una opción eficaz para ejecutar aplicaciones MPI de Windows que acceden a la red RDMA de Azure.

En este artículo se presentan dos escenarios y vínculos a instrucciones detalladas para configurar un clúster rdMA de Windows con Microsoft HPC Pack 2012 R2.

  • Escenario 1. Despliegue instancias de rol de trabajo intensivo en computación (PaaS)
  • Escenario 2. Implementación de nodos de proceso en máquinas virtuales de proceso intensivo (IaaS)

Escenario 1: Despliegue de instancias de rol de trabajo de cómputo intensivo (PaaS)

Desde un clúster de HPC Pack existente, agregue recursos de proceso adicionales en instancias de rol de trabajo de Azure (nodos de Azure) que se ejecutan en un servicio en la nube (PaaS). Esta característica, también denominada "ampliación a Azure" de HPC Pack, admite una variedad de tamaños para las instancias del rol de trabajo. Al agregar los nodos de Azure, especifique uno de los tamaños compatibles con RDMA.

A continuación se muestran consideraciones y pasos para expandir a instancias de Azure compatibles con RDMA desde un clúster existente (normalmente local). Use procedimientos similares para agregar instancias de rol de trabajo a un nodo principal de HPC Pack que se implementa en una máquina virtual de Azure.

Nota:

Para ver un tutorial sobre la expansión a Azure con HPC Pack, consulte Configuración de un clúster híbrido con HPC Pack. Tenga en cuenta las consideraciones de los pasos siguientes que se aplican específicamente a los nodos de Azure compatibles con RDMA.

Expansión a Azure

Pasos

  1. Implementación y configuración de un nodo principal de HPC Pack 2012 R2

    Descargue el paquete de instalación de HPC Pack desde el Centro de descarga de Microsoft. Para conocer los requisitos y las instrucciones para una implementación de ráfaga de Azure, consulte Despliegue en instancias de trabajo de Azure con Microsoft HPC Pack.

  2. Configuración de un certificado de administración en la suscripción de Azure

    Configure un certificado para proteger la conexión entre el nodo principal y Azure. Para obtener opciones y procedimientos, consulte Escenarios para configurar el certificado de administración de Azure para HPC Pack. Para las implementaciones de prueba, HPC Pack instala un certificado de administración predeterminado de Microsoft HPC Azure que puede cargar rápidamente en su suscripción de Azure.

  3. Creación de un nuevo servicio en la nube y una cuenta de almacenamiento

    Use Azure Portal para crear un servicio en la nube (clásico) y una cuenta de almacenamiento (clásico) para la implementación. Cree estos recursos en una región en la que el tamaño de la serie H, A8 o A9 que quiera usar esté disponible. Consulte Productos de Azure por región.

  4. Creación de una plantilla de nodo de Azure

    Use el Asistente para crear plantillas de nodo en el Administrador de clústeres de HPC. Para ver los pasos, consulte Creación de una plantilla de nodo de Azure en "Pasos para implementar nodos de Azure con Microsoft HPC Pack".

    En el caso de las pruebas iniciales, se recomienda configurar una directiva de disponibilidad manual en la plantilla.

  5. Adición de nodos al clúster

    Use el Asistente para agregar nodos en el Administrador de clústeres de HPC. Para más información, consulte Incorporación de nodos de Azure al clúster de HPC de Windows.

    Al especificar el tamaño de los nodos, seleccione uno de los tamaños de instancia compatibles con RDMA.

    Nota:

    En cada ráfaga en la implementación de Azure con las instancias de proceso intensivo, HPC Pack implementa automáticamente un mínimo de dos instancias compatibles con RDMA (como A8) como nodos proxy, además de las instancias de rol de trabajo de Azure que especifique. Los nodos proxy utilizan núcleos asignados a la suscripción y generan gastos junto con las instancias del rol de trabajo de Azure.

  6. Iniciar (aprovisionar) los nodos y ponerlos en línea para ejecutar trabajos

    Seleccione los nodos y use la acción Iniciar en el Administrador de clústeres de HPC. Cuando se complete el aprovisionamiento, seleccione los nodos y use la acción Bring Online (Poner en línea ) en el Administrador de clústeres de HPC. Los nodos están listos para ejecutar trabajos.

  7. Envío de trabajos al clúster

    Use las herramientas de envío de trabajos de HPC Pack para ejecutar trabajos de clúster. Consulte Microsoft HPC Pack: Administración de trabajos.

  8. Detener (desaprovisionar) los nodos

    Cuando haya terminado de ejecutar trabajos, desconecte los nodos y use la acción Detener en el Administrador de clústeres de HPC.

Escenario 2: Implementación de nodos de proceso en máquinas virtuales de proceso intensivo (IaaS)

En este escenario, implementará el nodo principal de HPC Pack y los nodos de proceso del clúster en máquinas virtuales de una red virtual de Azure. HPC Pack proporciona varias opciones de implementación en máquinas virtuales de Azure, incluidos scripts de implementación automatizados y plantillas de inicio rápido de Azure. Por ejemplo, las siguientes consideraciones y pasos le guían para usar el script de implementación de IaaS de HPC Pack para automatizar la implementación de un clúster de HPC Pack 2012 R2 en Azure.

Clúster en máquinas virtuales de Azure

Pasos

  1. Creación de un nodo principal de clúster y máquinas virtuales de nodo de proceso mediante la ejecución del script de implementación de IaaS de HPC Pack en un equipo cliente

    Descargue el paquete de script de implementación de IaaS de HPC Pack desde el Centro de descarga de Microsoft.

    Para preparar el equipo cliente, cree el archivo de configuración del script y ejecute el script, consulte Creación de un clúster de HPC con el script de implementación de IaaS de HPC Pack.

    Para conocer las consideraciones para implementar nodos de proceso compatibles con RDMA, consulte Tamaños de máquina virtual de proceso de alto rendimiento y tenga en cuenta lo siguiente:

    • Red virtual: especifique una nueva red virtual en una región en la que esté disponible el tamaño de la serie H, A8 o A9 que desea usar. Consulte Productos de Azure por región.

    • Sistema operativo Windows Server: para admitir la conectividad RDMA, especifique un sistema operativo Windows Server compatible, como Windows Server 2012 R2 para las máquinas virtuales del nodo de proceso.

    • Servicios en la nube: dado que el script usa el modelo de implementación clásica, las máquinas virtuales del clúster se implementan mediante servicios en la nube de Azure (ServiceName configuración en el archivo de configuración). Se recomienda implementar el nodo principal en un servicio en la nube y los nodos de proceso en un servicio en la nube diferente.

    • Tamaño del nodo principal: en este escenario, considere un tamaño de al menos A4 (extra grande) para el nodo principal.

    • Extensión HpcVmDrivers: el script de implementación instala el agente de máquina virtual de Azure y la extensión HpcVmDrivers automáticamente al implementar el tamaño de los nodos de proceso A8 o A9 con un sistema operativo Windows Server. HpcVmDrivers instala controladores en las máquinas virtuales del nodo de proceso para que puedan conectarse a la red RDMA. En las máquinas virtuales de la serie H compatibles con RDMA, debe instalar manualmente la extensión HpcVmDrivers. Consulte Tamaños de máquina virtual de alto rendimiento.

    • Configuración de red de clúster: el script de implementación configura automáticamente el clúster de HPC Pack en la topología 5 (todos los nodos de la red Enterprise). Esta topología es necesaria para todas las implementaciones de clústeres de HPC Pack en máquinas virtuales. No cambie la topología de red del clúster más adelante.

  2. Poner los nodos de cómputo en línea para correr tareas

    Seleccione los nodos y use la acción Traer en línea en el Administrador de clústeres de HPC. Los nodos están listos para ejecutar trabajos.

  3. Envío de trabajos al clúster

    Conéctese al nodo principal para enviar trabajos o configure un equipo local para hacerlo. Para más información, consulte Envío de trabajos a un clúster de HPC en Azure.

  4. Desconectar los nodos y detenerlos (desasignarlos)

    Cuando haya terminado de ejecutar trabajos, desconecte los nodos en el Administrador de clústeres de HPC. A continuación, use las herramientas de administración de Azure para apagarlas.

Ejecución de aplicaciones MPI en el clúster

Ejemplo: Ejecución de mpipingpong en un clúster de HPC Pack

Para comprobar una implementación de HPC Pack de las instancias compatibles con RDMA, ejecute el comando mpipingpong de HPC Pack en el clúster. mpipingpong envía paquetes de datos entre nodos emparejados repetidamente para calcular las medidas y estadísticas de latencia y rendimiento de la red de aplicaciones habilitada para RDMA. En este ejemplo se muestra un patrón típico para ejecutar un trabajo de MPI (en este caso, mpipingpong) mediante el comando mpiexec del clúster.

En este ejemplo se supone que ha agregado nodos de Azure en una configuración de "ráfaga a Azure" ([Escenario 1](#scenario-1.-deploy-compute-intensive-worker-role-instances-(PaaS) en este artículo). Si ha implementado HPC Pack en un clúster de máquinas virtuales de Azure, deberá modificar la sintaxis del comando para especificar un grupo de nodos diferente y establecer variables de entorno adicionales para dirigir el tráfico de red a la red RDMA.

Para ejecutar mpipingpong en el clúster:

  1. En el nodo principal o en un equipo cliente bien configurado, abra una ventana de comandos.

  2. Para calcular la latencia entre pares de nodos en una implementación de ráfaga de Azure de cuatro nodos, escriba el siguiente comando para enviar un trabajo para ejecutar mpipingpong con un tamaño de paquete pequeño y muchas iteraciones:

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 1:100000 -op -s nul
    

    El comando devuelve el identificador del trabajo que se envía.

    Si ha implementado el clúster de HPC Pack implementado en máquinas virtuales de Azure, especifique un grupo de nodos que contenga máquinas virtuales de nodo de proceso implementadas en un único servicio en la nube y modifique el comando mpiexec de la siguiente manera:

    job submit /nodegroup:vmcomputenodes /numnodes:4 mpiexec -c 1 -affinity -env MSMPI_DISABLE_SOCK 1 -env MSMPI_PRECONNECT all -env MPICH_NETMASK 172.16.0.0/255.255.0.0 mpipingpong -p 1:100000 -op -s nul
    
  3. Cuando se complete el trabajo, para ver la salida (en este caso, la salida de la tarea 1 del trabajo), escriba lo siguiente:

    task view <JobID>.1
    

    donde <JobID> es el identificador del trabajo que se envió.

    La salida incluye resultados de latencia similares a los siguientes.

    Latencia de ping pong

  4. Para calcular el rendimiento entre pares de nodos de ráfaga de Azure, escriba el siguiente comando para enviar un trabajo para ejecutar mpipingpong con un tamaño de paquete grande y algunas iteraciones:

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 4000000:1000 -op -s nul
    

    El comando devuelve el identificador del trabajo que se envía.

    En un clúster de HPC Pack implementado en máquinas virtuales de Azure, modifique el comando como se indica en el paso 2.

  5. Cuando se complete el trabajo, para ver la salida (en este caso, la salida de la tarea 1 del trabajo), escriba lo siguiente:

    task view <JobID>.1
    

    La salida incluye resultados de rendimiento similares a los siguientes.

    Capacidad de procesamiento de ping pong

Consideraciones sobre la aplicación MPI

A continuación se indican las consideraciones para ejecutar aplicaciones MPI con HPC Pack en Azure. Algunos solo se aplican a las implementaciones de nodos de Azure (instancias de rol de trabajo agregadas en una configuración de "ráfaga a Azure").

  • Las instancias de rol de trabajo en un servicio en la nube se vuelven a aprovisionar periódicamente sin previo aviso por Azure (por ejemplo, para el mantenimiento del sistema o, en caso de que se produzca un error en una instancia). Si se vuelve a aprovisionar una instancia mientras se ejecuta un trabajo de MPI, la instancia pierde sus datos y vuelve al estado cuando se implementó por primera vez, lo que puede provocar un error en el trabajo de MPI. Cuantos más nodos use para un único trabajo de MPI y cuanto más tiempo se ejecute el trabajo, más probable es que se vuelva a aprovisionar una de las instancias mientras se ejecuta un trabajo. Tenga en cuenta también esto si designa un único nodo en la implementación como servidor de archivos.

  • Para ejecutar trabajos de MPI en Azure, no es necesario usar las instancias compatibles con RDMA. Puede usar cualquier tamaño de instancia compatible con HPC Pack. Sin embargo, se recomiendan las instancias compatibles con RDMA para ejecutar trabajos de MPI a gran escala que son sensibles a la latencia y el ancho de banda de la red que conecta los nodos. Si usa otros tamaños para ejecutar trabajos MPI sensibles al ancho de banda y latencia, se recomienda ejecutar trabajos pequeños, en los que una sola tarea se ejecuta en solo unos pocos nodos.

  • Las aplicaciones implementadas en instancias de Azure están sujetas a los términos de licencia asociados a la aplicación. Póngase en contacto con el proveedor de cualquier aplicación comercial para obtener información acerca de las licencias u otras restricciones para la ejecución en la nube. No todos los proveedores ofrecen licencias de pago por uso.

  • Las instancias de Azure necesitan una configuración adicional para acceder a los nodos locales, los recursos compartidos y los servidores de licencias. Por ejemplo, para permitir que los nodos de Azure accedan a un servidor de licencias local, puede configurar una red virtual de Azure de sitio a sitio.

  • Para ejecutar aplicaciones MPI en instancias de Azure, registre cada aplicación de MPI con Firewall de Windows en las instancias mediante la ejecución del comando hpcfwutil . Esto permite que las comunicaciones de MPI se realicen en un puerto asignado dinámicamente por el firewall.

    Nota:

    Para las implementaciones de ráfaga en Azure, también puede configurar un comando de excepción de firewall para que se ejecute automáticamente en todos los nodos de Azure nuevos que se agregan al clúster. Después de ejecutar el comando hpcfwutil y comprobar que la aplicación funciona, agregue el comando a un script de inicio para los nodos de Azure. Para más información, consulte Uso de un script de inicio para nodos de Azure.

  • HPC Pack usa la variable de entorno de clúster de CCP_MPI_NETMASK para especificar un intervalo de direcciones aceptables para la comunicación de MPI. A partir de HPC Pack 2012 R2, la variable de entorno de clúster de CCP_MPI_NETMASK solo afecta a la comunicación de MPI entre nodos de proceso de clúster unidos a un dominio (ya sea local o en máquinas virtuales de Azure). Los nodos agregados en una ráfaga a la configuración de Azure omiten la variable.

  • Los trabajos de MPI no se pueden ejecutar en instancias de Azure que se implementan en diferentes servicios en la nube (por ejemplo, en implementaciones de ráfaga en Azure con plantillas de nodo diferentes o nodos de proceso de máquina virtual de Azure implementados en varios servicios en la nube). Si tiene varias implementaciones de nodo de Azure que se inician con distintas plantillas de nodo, el trabajo de MPI solo se debe ejecutar en un conjunto de nodos de Azure.

  • Al agregar nodos de Azure al clúster y ponerlos en línea, el servicio programador de trabajos de HPC intenta iniciar inmediatamente trabajos en los nodos. Si solo una parte de la carga de trabajo se puede ejecutar en Azure, asegúrese de actualizar o crear plantillas de trabajo para definir qué tipos de trabajo se pueden ejecutar en Azure. Por ejemplo, para asegurarse de que los trabajos enviados con una plantilla de trabajo solo se ejecutan en nodos de Azure, agregue la propiedad Grupos de nodos a la plantilla de trabajo y seleccione AzureNodes como valor necesario. Para crear grupos personalizados para sus nodos de Azure, use el cmdlet de HPC PowerShell de Add-HpcGroup.

Pasos siguientes