Descripción general de la creación de clústeres de HPC


Para crear la infraestructura de aplicaciones estrechamente acopladas que se escalan en varios nodos, puedes crear un clúster de instancias de máquina virtual (VM). En esta guía se ofrece una descripción general de las principales consideraciones y los pasos para configurar un clúster de instancias de máquina virtual (VM) para cargas de trabajo de computación de alto rendimiento (HPC) mediante la asignación de recursos densa.

Compute Engine ofrece varias formas de crear multitud de instancias de VM que están conectadas a la misma red, pero que no requieren una asignación de recursos densa. Por ejemplo, puede usar cualquiera de los siguientes métodos, que se explican en otras secciones de la documentación de Compute Engine:

También puedes crear una secuencia de comandos que incluya los comandos para crear instancias individuales y asociar políticas de colocación compactas con las instancias para reducir la latencia.

Con H4D (vista previa), Compute Engine añade compatibilidad para ejecutar cargas de trabajo de HPC masivas tratando un clúster completo de instancias de VM como un solo ordenador. Si usas la colocación de VMs con reconocimiento de la topología, puedes acceder a muchas instancias dentro de un único superbloque de red y minimizar la latencia de la red. También puedes configurar Cloud RDMA en estas instancias para maximizar el rendimiento de la comunicación entre nodos, lo que es fundamental para las cargas de trabajo de HPC estrechamente acopladas.

Para crear estos clústeres de VMs de HPC con H4D, debes reservar bloques de capacidad en lugar de recursos individuales. Usar bloques de capacidad para tu clúster te ofrece las siguientes funciones adicionales para implementar y gestionar estos entornos a gran escala:

  • Asignación de instancias de VM con reconocimiento de la topología
  • Sistemas de reserva avanzados para asegurar y gestionar la capacidad
  • Grupos de instancias gestionados (MIGs) mejorados diseñados para conjuntos grandes y codependientes de instancias de VM.
  • Programación y controles de mantenimiento avanzados que proporcionan más control sobre cuándo y cómo se realiza el mantenimiento en las instancias de VM, lo cual es crucial para las cargas de trabajo de larga duración y sensibles a las interrupciones. Esto incluye funciones como el mantenimiento activado por el cliente y el mantenimiento agrupado de bloques de recursos.

Terminología de clústeres

Cuando trabajas con bloques de capacidad, se usan los siguientes términos:

Bloques
Varios subbloques se interconectan con una estructura no bloqueante, lo que proporciona una interconexión de gran ancho de banda. Se puede acceder a cualquier CPU del bloque en un máximo de dos saltos de red. El sistema expone los metadatos de bloques y subbloques a los orquestadores para permitir una colocación óptima de los trabajos.
Clústeres
Varios bloques se interconectan para formar un clúster que se adapta a miles de CPUs para ejecutar cargas de trabajo de HPC a gran escala. Cada clúster es único en todo el mundo. La comunicación entre diferentes bloques solo añade un salto adicional, lo que mantiene un rendimiento y una predictibilidad elevados, incluso a gran escala. Los metadatos a nivel de clúster también están disponibles para los orquestadores, lo que permite colocar trabajos de forma inteligente y a gran escala.
Implementación densa
Una solicitud de recursos que asigna los recursos de tu instancia de computación muy cerca entre sí para minimizar los saltos de red y optimizar la latencia más baja.
Tejido de red
Una estructura de red proporciona conectividad de gran ancho de banda y baja latencia en todos los bloques y Google Cloud servicios de un clúster. Jupiter es la arquitectura de red de los centros de datos de Google, que utiliza redes definidas por software e interruptores de circuitos ópticos para desarrollar la red y optimizar su rendimiento.
Nodo u host
Una sola máquina de servidor físico en el centro de datos. Cada host tiene asociados recursos de computación, como CPUs, memoria e interfaces de red. El número y la configuración de estos recursos de computación dependen de la familia de máquinas. Las instancias de VM se aprovisionan sobre un host físico.
Orchestrator
Un orquestador automatiza la gestión de tus clústeres. Con un orquestador, no tienes que gestionar cada instancia de VM del clúster. Un orquestador, como Slurm o Google Kubernetes Engine (GKE), gestiona tareas como la puesta en cola de trabajos, la asignación de recursos, el escalado automático (con GKE) y otras tareas de gestión de clústeres cotidianas.
Subbloques
Se trata de unidades básicas en las que un grupo de hosts se coloca físicamente en un mismo rack. Un switch Top-of-Rack (ToR) conecta estos hosts, lo que permite una comunicación de un solo salto extremadamente eficiente entre dos CPUs cualesquiera del subbloque. Cloud RDMA facilita esta comunicación directa.

Descripción general del proceso de creación de clústeres con VMs H4D

Para crear clústeres de HPC en bloques de capacidad reservados, debes seguir estos pasos:

  1. Elegir una opción de consumo y obtener capacidad
  2. Elegir una opción de implementación y un orquestador
  3. Elige el sistema operativo o la imagen del clúster
  4. Crear un clúster

Elige una opción de consumo y obtén capacidad

Las opciones de consumo determinan cómo se obtienen los recursos de tu clúster. Para crear un clúster con funciones de gestión mejoradas, debes solicitar bloques de capacidad para una implementación densa.

En la siguiente tabla se resumen las principales diferencias entre las opciones de consumo de bloques de capacidad:

Opción de consumo Reservas futuras de bloques de capacidad Inicio flexible (vista previa)
Características de la carga de trabajo Cargas de trabajo distribuidas a gran escala y de larga duración que requieren recursos asignados de forma densa Cargas de trabajo de corta duración que requieren recursos asignados de forma densa
Duración En cualquier momento Hasta 7 días
Interrumpible No No
Cuota Comprueba que tengas suficiente cuota antes de crear instancias. Se aplican cargos por la cuota de instancias interrumpibles.
Precios
Asignación de recursos Denso Denso
Modelo de aprovisionamiento Con reserva Inicio flexible (vista previa)
Método de creación Para crear clústeres y VMs de HPC, debes hacer lo siguiente:
  1. Reserva capacidad poniéndote en contacto con el equipo de tu cuenta.
  2. En la fecha y hora que elijas, podrás usar la capacidad reservada para crear clústeres de HPC. Consulta Elegir una opción de implementación.
Para crear VMs, selecciona una de las siguientes opciones:

Cuando la capacidad solicitada esté disponible, Compute Engine la aprovisionará.

Elegir una opción de implementación

En función del nivel de control que necesites sobre la implementación de tu clúster, elige entre una implementación altamente gestionada o una menos gestionada que te dé más control sobre tu infraestructura. Algunas de las opciones de implementación disponibles incluyen la instalación y configuración de un orquestador para mejorar la gestión del clúster de HPC.

Altamente gestionado

Si quieres que Google despliegue y configure tu infraestructura, usa Cluster Toolkit o Google Kubernetes Engine (GKE).

  • Cluster Toolkit: una herramienta de código abierto que ofrece Google y que simplifica la configuración y el despliegue de clústeres que usan Slurm o GKE. Usas planos predefinidos para crear una carpeta de implementación basada en el plano. Puedes modificar los planos o la carpeta de implementación para personalizar las implementaciones y tu pila de software. A continuación, usa Terraform o Packer para ejecutar los comandos generados por Cluster Toolkit y desplegar el clúster.

    Para ver un tutorial sobre este método de implementación, consulta Crear un clúster de Slurm de HPC con RDMA.

  • GKE un servicio de Kubernetes gestionado y una plataforma de orquestación de contenedores de código abierto. GKE ofrece funciones como el escalado automático y la alta disponibilidad. Estas funciones hacen que GKE sea una buena opción para desplegar y gestionar cargas de trabajo de HPC, incluida su capacidad para orquestar aplicaciones contenerizadas, la compatibilidad con hardware especializado y la compatibilidad con el ecosistema de Google Cloud. Puedes desplegar clústeres de GKE directamente o con Cluster Toolkit. Puedes elegir entre la edición Estándar de Google Kubernetes Engine (GKE) o Autopilot.

    Para obtener más información sobre este método de implementación, consulta Ejecutar cargas de trabajo de HPC con H4D.

Menos gestión y más control

Para tener un control más granular sobre tus clústeres y el software instalado en ellos, crea un clúster de Compute Engine con uno de los siguientes métodos:

Puedes usar estos métodos si quieres usar un orquestador que no sea Slurm ni GKE. Una vez creadas las VMs, debes instalar manualmente en ellas el software de claves que necesite tu carga de trabajo de HPC. También puedes usar una secuencia de comandos de inicio para comprobar automáticamente la instalación del software e instalarlo si es necesario cuando se inicie la VM.

Elige la imagen del sistema operativo

La imagen del sistema operativo (SO) que elijas dependerá del servicio que utilices para implementar tu clúster.

  • En el caso de los clústeres de GKE: usa una imagen de nodo de GKE, como Container-Optimized OS. Si usas Cluster Toolkit para desplegar tu clúster de GKE, se usará una imagen de Container-Optimized OS de forma predeterminada. Para obtener más información sobre las imágenes de nodos, consulta Imágenes de nodos en la documentación de GKE.

  • En el caso de los clústeres de Compute Engine: puedes usar una de las siguientes imágenes:

  • Para clústeres de Slurm: Cluster Toolkit despliega el clúster de Slurm con una imagen de máquina virtual de HPC basada en Rocky Linux 8 que está optimizada para cargas de trabajo de HPC estrechamente acopladas.

Crear un clúster de HPC

Después de revisar el proceso de creación de clústeres y tomar decisiones preliminares sobre tu carga de trabajo, crea el clúster con una de las siguientes opciones:

Siguientes pasos