Prácticas recomendadas para ejecutar cargas de trabajo de HPC en GKE

Google Kubernetes Engine (GKE) proporciona una plataforma escalable y de alto rendimiento para cargas de trabajo de computación de alto rendimiento (HPC). Para lograr un alto rendimiento y eficiencia operativa, puedes usar infraestructura optimizada para cargas de trabajo, como las familias de VM específicas para HPC que proporciona GKE. En este documento, se describen las prácticas recomendadas para administrar tu infraestructura y tus cargas de trabajo con el objetivo de optimizar la ejecución de tus aplicaciones de HPC en GKE.

Para obtener una descripción general consolidada de todas las prácticas recomendadas de GKE, consulta Prácticas recomendadas para GKE.

Configuración de la infraestructura y los nodos

En esta sección, se describen las prácticas recomendadas para configurar tu infraestructura subyacente y los nodos de GKE para las cargas de trabajo de HPC.

Elige VMs H4D para cargas de trabajo de procesamiento intensivo

Selecciona el hardware adecuado para tu aplicación. Las VMs H4D están diseñadas para maximizar la capacidad de procesamiento de las aplicaciones de HPC que requieren un uso intensivo de la CPU. Las VMs H4D ofrecen alto rendimiento, bajo costo y escalabilidad para cargas de trabajo de varios nodos. H4D forma parte de la familia de máquinas optimizadas para procesamiento, que ofrece instancias optimizadas para procesamiento ideales para cargas de trabajo de procesamiento intensivo y HPC.

Para obtener más información sobre la serie de máquinas H4D, consulta Familia de máquinas optimizadas para procesamiento: serie de máquinas H4D.

Para obtener instrucciones sobre cómo crear clústeres de GKE optimizados para HPC, consulta Ejecuta cargas de trabajo de computación de alto rendimiento con H4D.

Ten en cuenta los recursos asignables del nodo

Comprende la diferencia entre la capacidad total de recursos de un nodo y los recursos que se pueden asignar a tus cargas de trabajo. Los nodos de GKE ejecutan componentes del sistema, como kubelet y el entorno de ejecución de contenedores, que requieren recursos para funcionar. GKE reserva una cantidad predefinida de recursos para la funcionalidad del sistema y la confiabilidad del nodo. Comprender la cantidad de asignación de recursos reales que tienes para tu carga de trabajo (el tamaño de la VM menos la capacidad que reserva GKE) puede ayudarte a dimensionar correctamente las solicitudes de recursos para tus cargas de trabajo de HPC.

Para obtener más información, consulta los siguientes recursos:

Reserva núcleos para mitigar las interrupciones

Si una carga de trabajo usa todos los núcleos físicos disponibles en un nodo, puede competir con los daemons del sistema sensibles a la latencia. Esta contención puede provocar interrupciones frecuentes en las que el programador del SO interrumpe la carga de trabajo de HPC para realizar tareas del sistema, lo que puede degradar el rendimiento.

Para mantener el rendimiento, evita asignar todas las CPU disponibles a tu carga de trabajo. Los procesos esenciales del sistema requieren una pequeña cantidad de sobrecarga de CPU para funcionar correctamente. Asignar el 100% de la capacidad de procesamiento a tu carga de trabajo genera contención de recursos con estos componentes del sistema, lo que puede degradar el rendimiento. Por ejemplo, para los tipos de máquinas H4D, para mantener el rendimiento, configura tu carga de trabajo para que use menos de 192 CPUs.

Configuración del clúster y la carga de trabajo

En esta sección, se describen las prácticas recomendadas para configurar tus clústeres de GKE y, luego, implementar tus cargas de trabajo de HPC.

Usa Cluster Toolkit para crear clústeres

Usa el Cluster Toolkit para simplificar la implementación y administración de cargas de trabajo de HPC en GKE. El kit de herramientas proporciona planos de diseño de referencia que incorporan las prácticas recomendadas para configurar recursos de procesamiento, almacenamiento y redes en un entorno de alto rendimiento.

Para obtener instrucciones sobre cómo usar Cluster Toolkit para crear un clúster H4D, consulta Ejecuta cargas de trabajo de computación de alto rendimiento con H4D.

Usa el inicio flexible para la administración de capacidad

Para las cargas de trabajo de HPC dinámicas o no sensibles al tiempo, usa el inicio flexible para mejorar la administración de la capacidad cuando no haya capacidad reservada o a pedido de H4D disponible. El inicio flexible administra el ciclo de vida de los nodos H4D y ayuda a abordar las necesidades de recursos urgentes o sensibles al tiempo.

Para obtener más información, consulta Crea un clúster de H4D con inicio flexible.

Usa una política de posición compacta para cargas de trabajo con acoplamiento alto

Implementa una política de posición compacta para las cargas de trabajo de HPC con acoplamiento alto y sensibles a la latencia. Esta política ayuda a garantizar que todos los Pods se aprovisionen cerca unos de otros en las máquinas host. Esta configuración minimiza la latencia de red entre los nodos, lo que es fundamental para las aplicaciones que dependen de la comunicación entre nodos.

Si creas un clúster H4D con gcloud CLI, como se describe en Ejecuta cargas de trabajo de procesamiento de alto rendimiento con H4D, GKE configura automáticamente una política de posición compacta. Si usas Cluster Toolkit, esta política también se configura automáticamente. Si deseas configurar manualmente la posición compacta para otros tipos de nodos, consulta Define la posición compacta para los nodos de GKE.

Establece solicitudes de recursos adecuadas

Inspecciona la CPU real asignable en tus nodos antes de determinar el tamaño de tus trabajos de HPC. Usa el comando kubectl get node para ver los recursos asignables. Asegúrate de que los requisitos de CPU de tu trabajo no superen lo que GKE tiene disponible después de las reservas del sistema de GKE.

GKE tiene varias funciones para ayudarte a analizar y ajustar automáticamente tus solicitudes de recursos. Para obtener más información, comienza con Cómo identificar las cargas de trabajo con aprovisionamiento insuficiente y excesivo.

Dedica nodos completos a cargas de trabajo individuales

Configura tus trabajos de MPI para que ocupen un nodo H4D completo. Las instancias H4D se aprovisionan como VMs de host completo. Esta estrategia reserva la mayor parte de la capacidad del nodo, lo que garantiza que tu carga de trabajo esté aislada. Usa solicitudes de recursos de contenedores o antiafinidad de Pods para garantizar que las réplicas no se ejecuten en el mismo nodo físico.

Habilita Cloud RDMA para redes de alta velocidad con VMs H4D

Si usas VMs H4D, configura tu manifiesto de implementación para habilitar Cloud RDMA para tus Pods. Esta configuración ayuda a garantizar que las interfaces de red RDMA de alta velocidad se expongan correctamente a tu carga de trabajo en contenedores. Para obtener instrucciones, consulta Cómo configurar manifiestos para RDMA.

Resumen de prácticas recomendadas

En la siguiente tabla, se resumen las prácticas recomendadas de este documento.

Tema Tarea
Configuración de la infraestructura y los nodos Elige VMs H4D para cargas de trabajo de procesamiento intensivo
Configuración de la infraestructura y los nodos Ten en cuenta los recursos asignables del nodo
Configuración de la infraestructura y los nodos Reserva núcleos para mitigar las interrupciones
Configuración del clúster y la carga de trabajo Usa Cluster Toolkit para crear clústeres
Configuración del clúster y la carga de trabajo Usa el inicio flexible para la administración de capacidad
Configuración del clúster y la carga de trabajo Usa una política de posición compacta para cargas de trabajo con acoplamiento alto
Configuración del clúster y la carga de trabajo Establece solicitudes de recursos adecuadas
Configuración del clúster y la carga de trabajo Dedica nodos completos a cargas de trabajo individuales
Configuración del clúster y la carga de trabajo Habilita Cloud RDMA para redes de alta velocidad con VMs H4D

¿Qué sigue?