Informática de alto rendimiento (HPC) en Azure

Introducción a HPC

La informática de alto rendimiento (HPC), también llamada Big Compute, usa un gran número de equipos basados en CPU o GPU para solucionar tareas matemáticas complejas.

En muchos sectores se usa HPC para solucionar algunos de sus problemas más difíciles. Estos incluyen cargas de trabajo como las siguientes:

  • Genomics
  • Simulaciones de petróleo y gas
  • Finance
  • Diseño de semiconductores
  • Engineering
  • Modelos meteorológicos

¿En qué se diferencia HPC en la nube?

Una de las principales diferencias entre un sistema de HPC local y otro en la nube es la capacidad para agregar o eliminar recursos de forma dinámica según sea necesario. El escalado dinámico elimina el cuello de botella que supone la capacidad de proceso y, en su lugar, permite a los clientes adaptar el tamaño de su infraestructura a los requisitos de sus trabajos.

Los artículos siguientes proporcionan más detalles sobre esta funcionalidad de escalado dinámico.

Lista de comprobación de implementación

Cuando vaya a implementar su propia solución de HPC en Azure, asegúrese de que ha revisado los temas siguientes:

  • Elija la arquitectura adecuada según sus requisitos
  • Sepa qué opciones de proceso son las adecuadas para la carga de trabajo
  • Identifique la solución de almacenamiento correcta que satisfaga sus necesidades
  • Decida cómo va a administrar todos los recursos
  • Optimice la aplicación para la nube
  • Proteja la infraestructura

Infraestructura

Hay numerosos componentes de infraestructura que son necesarios para compilar un sistema de HPC. Proceso, almacenamiento y red proporcionan los componentes subyacentes sin importar como decide administrar las cargas de trabajo de HPC.

Arquitecturas de HPC de ejemplo

Hay varias formas diferentes de diseñar e implementar la arquitectura de HPC en Azure. Las aplicaciones de informática de alto rendimiento se pueden escalar a miles de núcleos de proceso, ampliar el número de clústeres locales o ejecutarse como una solución de nube totalmente nativa.

Los escenarios siguientes describen algunas de las formas habituales en que se compilan las soluciones de HPC.

  • Diagrama que muestra una arquitectura HPC de ejemplo para servicios de ingeniería asistida por PC en Azure.

    Servicios de ingeniería asistida por PC en Azure

    Proporcione una plataforma de software como servicio (SaaS) de ingeniería asistida por PC (CAE) en Azure.

  • Diagrama que muestra una arquitectura HPC de ejemplo para representación tridimensional en vídeo en Azure.

    Representación de vídeo en 3D en Azure

    Ejecute cargas de trabajo de HPC nativas en Azure mediante el servicio Azure Batch.

Proceso

Azure ofrece una gama de tamaños optimizados para cargas de trabajo intensivas de CPU y GPU.

Máquinas virtuales basadas en CPU

Máquinas virtuales habilitadas para GPU

Las máquinas virtuales de la serie N ofrecen GPU de NVIDIA diseñadas para aplicaciones de proceso intensivo o de uso intensivo de gráficos, como las de aprendizaje y visualización de inteligencia artificial (AI).

Storage

Las cargas de trabajo a gran escala de Batch y HPC presentan una demanda de almacenamiento y acceso de datos que superan las capacidades de los sistemas de archivos en la nube tradicionales. Hay una serie de soluciones para administrar las necesidades de velocidad y capacidad de las aplicaciones de HPC en Azure:

Para más información sobre la comparación de Lustre, GlusterFS y BeeGFS en Azure, consulte el libro electrónico sobre sistemas de archivos paralelos en Azure y el blog sobre Lustre en Azure.

Redes

Las máquinas virtuales H16r, H16mr, A8 y A9 pueden conectarse a una red RDMA de back-end de alto rendimiento. Esta red puede mejorar el rendimiento de las aplicaciones paralelas estrechamente vinculadas que se ejecutan en la interfaz de paso de mensajes de Microsoft, más conocida como MPI o Intel MPI.

Administración

Hágalo usted mismo

La creación de un sistema de HPC desde cero en Azure ofrece una cantidad significativa de flexibilidad pero, a menudo, requiere un mantenimiento intensivo.

  1. Configure su propio entorno de clúster en máquinas virtuales de Azure o en Virtual Machine Scale Sets.
  2. Use las plantillas de Azure Resource Manager para implementar los administradores de carga de trabajo principales, la infraestructura y las aplicaciones.
  3. Elija los tamaños de las máquinas virtuales de HPC y GPU que incluyan hardware especializado y conexiones de red para cargas de trabajo MPI o GPU.
  4. Agregue almacenamiento de alto rendimiento para cargas de trabajo intensivas de E/S.

Ampliación híbrida y en la nube

Si tiene un sistema de HPC local y desea conectarlo a Azure, hay numerosos recursos que le ayudarán a empezar.

Primero, repase el artículo Opciones de conexión de una red local a Azure de la documentación. Una vez allí, puede encontrar información adicional sobre estas opciones de conectividad:

Una vez que la conectividad de red se establece de forma segura, puede empezar a usar los recursos de proceso en la nube a petición con las funcionalidades de ampliación del administrador de cargas de trabajo existente.

Soluciones de Marketplace

En Azure Marketplace se ofrece una serie de administradores de cargas de trabajo.

Azure Batch

Azure Batch es un servicio de plataforma para ejecutar aplicaciones en paralelo a gran escala y de HPC de manera eficaz en la nube. Azure Batch programa el trabajo de proceso intensivo para que se ejecute en un grupo administrado de máquinas virtuales y puede escalar automáticamente los recursos de proceso para satisfacer las necesidades de sus trabajos.

Los proveedores o desarrolladores SaaS pueden usar los SDK y las herramientas de Batch para integrar las aplicaciones de HPC o las cargas de trabajo de los contenedores con Azure, almacenar provisionalmente datos en Azure y crear canalizaciones de ejecución de trabajos.

En Azure Batch todos los servicios se ejecutan en la nube, la siguiente imagen muestra cómo se ve la arquitectura con Azure Batch, teniendo las configuraciones de escalabilidad y programación de trabajos ejecutándose en la nube mientras que los resultados e informes se pueden enviar a su entorno local.

Diagrama que muestra un ejemplo de arquitectura HPC para Azure Batch.

Azure CycleCloud

Azure CycleCloud La forma más sencilla para administrar cargas de trabajo de HPC mediante cualquier programador (como Slurm, Grid Engine, HPC Pack, HTCondor, LSF, PBS Pro o Symphony) en Azure.

CycleCloud le permite:

  • Implementar clústeres completos y otros recursos, incluidos el programador, máquinas virtuales de procesos, almacenamiento, redes y caché
  • Organizar trabajos, datos y flujos de trabajo en la nube
  • Otorgar control total a los administradores sobre qué usuarios pueden ejecutar trabajos, así como dónde y con qué costo
  • Personalizar y optimizar clústeres mediante características de gobernanza y política avanzadas, incluidos controles de costos, integración de Azure Directory, supervisión y creación de informes
  • Usar su programador actual de trabajos y aplicaciones sin modificarlos
  • Aprovechar el escalado automático integrado y las arquitecturas de referencia probadas para una gran variedad de cargas de trabajo de HPC e industrias
Modelo híbrido o de expansión en la nube

En este diagrama de ejemplo híbrido, podemos ver claramente cómo se distribuyen estos servicios entre la nube y el entorno local. Tener la oportunidad de ejecutar trabajos en ambas cargas de trabajo. Diagrama que muestra un ejemplo de arquitectura HPC para CycleCloud en Azure en un modelo híbrido.

Modelo nativo de nube

En el diagrama de ejemplo del modelo nativo de nube siguiente se muestra cómo la carga de trabajo de la nube controlará todo mientras se conserva la conexión al entorno local.

Diagrama que muestra un ejemplo de arquitectura HPC para CycleCloud en Azure en un modelo nativo de nube.

Gráfico de comparación

Característica Azure Batch Azure CycleCloud
Scheduler API y herramientas Batch y scripts de línea de comandos en Azure Portal (nativo en la nube). Use programadores HPC estándar, como Slurm, PBS Pro, LSF, Grid Engine y HTCondor, o amplíe los complementos de escalado automático de CycleCloud para trabajar con su propio programador.
Recursos de proceso Nodos de software como servicio: Plataforma como servicio Software de plataforma como servicio: Plataforma como servicio
Herramientas de supervisión Azure Monitor Azure Monitor, Grafana
Personalización Grupos de imágenes personalizadas, imágenes de terceros, acceso a la API Batch. Use la API de RESTful completa para personalizar y ampliar la funcionalidad, implementar su propio programador y dar soporte técnico a los administradores de carga de trabajo existentes
Integración Canalizaciones de Synapse, Azure Data Factory, CLI de Azure CLI integrada para Windows y Linux
Tipo de usuario Desarrolladores Administradores y usuarios HPC clásicos
Tipo de trabajo Batch, Workflows Estrechamente acoplado (interfaz de paso de mensajes/MPI).
Compatibilidad con Windows Varía, según la elección del programador

Administradores de cargas de trabajo

Los siguientes son ejemplos de administradores de clústeres y cargas de trabajo que se pueden ejecutar en la infraestructura de Azure. Cree clústeres independientes en máquinas virtuales de Azure o dé el salto a máquinas virtuales de Azure desde un clúster local.

Contenedores

Los contenedores también pueden usarse para administrar algunas cargas de trabajo de HPC. Servicios como Azure Kubernetes Service (AKS) simplifican la implementación de los clústeres de Kubernetes administrados en Azure.

Administración de costos

La administración del costo de HPC en Azure se puede realizar de diferentes maneras. Asegúrese de que ha revisado las opciones de compra de Azure hasta encontrar el método que mejor se adapta a su organización.

Seguridad

Para más información sobre los procedimientos recomendados de seguridad en Azure, repase la documentación de Azure Security.

Además de las configuraciones de red disponibles en la sección Expansión en la nube, puede implementar una configuración de topología en estrella tipo hub-and-spoke para aislar los recursos de proceso:

Aplicaciones HPC

Ejecute aplicaciones HPC personalizadas o comerciales en Azure. Se realizan pruebas comparativas en varios ejemplos de esta sección para realizar un escalado eficaz con máquinas virtuales o nodos de proceso adicionales. Visite Azure Marketplace en busca de soluciones que estén listas para su implementación.

Nota

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. Es posible que necesite un servidor de licencias en la nube para su solución o conectarse a un servidor de licencias local.

Aplicaciones de ingeniería

Gráficos y representación

Inteligencia artificial y aprendizaje profundo

Proveedores de MPI

Visualización remota

Ejecute máquinas virtuales con tecnología GPU en Azure en la misma región que la salida de HPC para obtener la menor latencia, acceso y visualizar de forma remota mediante Azure Virtual Desktop.

Banco de pruebas de rendimiento

Testimonios de clientes

Hay numerosos clientes que han obtenido grandes resultados con el uso de Azure para sus cargas de trabajo de HPC. A continuación puede ver algunos casos prácticos de estos clientes:

Información importante adicional

  • Asegúrese de que la cuota de vCPU ha aumentado antes de intentar ejecutar cargas de trabajo a gran escala.

Pasos siguientes

Para obtener los anuncios más recientes, consulte los siguientes recursos:

Ejemplos de Microsoft Azure Batch

Estos tutoriales le proporcionarán más información sobre la ejecución de aplicaciones en Microsoft Azure Batch: