Crea una instancia de VM lista para HPC


Introducción

Las cargas de trabajo de computación de alto rendimiento (HPC) con acoplamiento alto a menudo usan la interfaz de envío de mensajes (MPI) para comunicarse entre instancias de máquinas virtuales (VM) y procesos. Sin embargo, compilar tu propia imagen de VM que se ajusta para un rendimiento óptimo de la MPI requiere experiencia en sistemas, conocimiento de Google Cloud y tiempo adicional de mantenimiento. A fin de crear instancias de VM con rapidez para las cargas de trabajo de HPC, puedes usar la imagen de VM de HPC. Como alternativa, puedes crear VMs mediante la serie de máquinas H3.

La imagen de VM de HPC es una imagen de VM basada en CentOS 7.9 o Rocky Linux 8 que está optimizada para cargas de trabajo HPC con acoplamiento alto. Incluye los parámetros de ajuste de red y kernel preconfigurados para crear instancias de VM que alcancen un rendimiento MPI óptimo en Google Cloud.

Puedes crear una VM lista para HPC con las siguientes opciones:

Ventajas

La imagen de VM de HPC brinda los siguientes beneficios:

  1. VM listas para usar HPC. No es necesario ajustar el rendimiento de forma manual, administrar los reinicios de VM ni mantenerse actualizado con las últimas actualizaciones de Google Cloud para cargas de trabajo de HPC con acoplamiento alto.
  2. Optimizaciones de red para cargas de trabajo estrechamente vinculadas Se incluyen optimizaciones que reducen la latencia de mensajes pequeños, lo que beneficia a las aplicaciones que dependen en gran medida de comunicaciones punto a punto y colectivas.
  3. Optimizaciones para procesamiento de las cargas de trabajo de HPC. Se incluyen optimizaciones que reducen el Jitter del sistema, lo que hace que el alto rendimiento de un solo nodo sea más predecible.
  4. Rendimiento coherente y reproducible. La estandarización de imágenes de VM te brinda un rendimiento en el nivel de aplicación coherente y reproducible.
  5. Compatibilidad mejorada con las aplicaciones. La alineación con los requisitos a nivel de nodo de la especificación de la plataforma Intel HPC habilita un alto grado de interoperabilidad entre los sistemas.

Funciones

Ajustes colectivos de Intel MPI

La imagen de VM de HPC incluye los ajustes colectivos de Intel MPI que se realizan en instancias c2-standard-60 y c2d-standard-112 mediante políticas de colocación compacta.

RPM preinstalados

La imagen de VM de HPC incluye los siguientes paquetes de RPM preinstalados:

  • Lmod
  • dkms
  • htop
  • hwloc
  • hwloc-devel
  • kernel-devel
  • ltrace
  • libXt
  • nfs-utils
  • numactl
  • numactl-devel
  • papi
  • pciutils
  • pdsh
  • perf
  • redhat-lsb-core
  • redhat-lsb-cxx
  • rsh
  • screen
  • strace
  • wget
  • zsh
  • Grupo de paquetes "Herramientas de desarrollo"

Guías de inicio rápido

Antes de comenzar

  1. Si deseas usar Google Cloud CLI para esta guía de inicio rápido, primero debes instalar y, luego, inicializar Google Cloud CLI:
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

Crea una instancia de VM de HPC

Crea la VM

Recomendamos elegir un tipo de máquina optimizado para procesamiento, como C2, C2D o H3. Estas VMs tienen una asignación fija de núcleo virtual a físico y exponen la arquitectura de celdas de NUMA al SO invitado. Esto es fundamental para el rendimiento de las aplicaciones de HPC estrechamente vinculadas.

Console

  1. En la consola de Google Cloud, ve a la página de VM de HPC de Cloud Marketplace. Ir a la página de VM de HPC de Cloud Marketplace

  2. Haz clic en Iniciar.

  3. En la página de implementación de VM de HPC, ingresa un Nombre de implementación. Este nombre se convierte en la raíz del nombre de tu VM. Compute Engine agrega -vm al nombre cuando se le asigna un nombre a la instancia.

  4. Elige una Zona y un Tipo de máquina. Para esta guía de inicio rápido, puedes dejar toda la configuración como está o cambiarla. Recomendamos elegir un tipo de máquina optimizado para procesamiento, como C2, C2D o H3.

  5. Deja el Tipo de disco de arranque, el Tamaño de disco de arranque y la Interfaz de red en su configuración predeterminada.

  6. Haz clic en Implementar.

Una vez que se complete la creación de la instancia de VM, se abre Cloud Deployment Manager, en el que puedes administrar la VM de HPC y otras implementaciones.

gcloud

Crea una VM de HPC mediante el comando instances create. Te recomendamos que crees VMs de HPC mediante políticas de posición de compactación para lograr una latencia de red baja. Si necesitas más de las VMs que pueden caber en una sola política de posición de compactación, divide las VMs en varias políticas de posición. Recomendamos usar la cantidad mínima de políticas de posición que se puedan ajustar a tus VMs.

gcloud compute instances create VM_NAME \
        --zone=ZONE \
        --image-family=IMAGE_FAMILY \
        --image-project=cloud-hpc-image-public \
        --maintenance-policy=TERMINATE \
        --machine-type=MACHINE_TYPE

Reemplaza lo siguiente:

  • VM_NAME: Es el nombre de la VM de HPC que se creará.
  • ZONE: La zona en la que se creará la VM.
  • IMAGE_FAMILY: Es la familia de imágenes de la imagen con la que se crearán instancias de VM. Usa hpc-centos-7 para una imagen basada en CentOS o hpc-rocky-linux-8 para una imagen basada en Rocky Linux 8.
  • MACHINE_TYPE: Es el tipo de máquina para la nueva VM.

Después de un tiempo, se completará la creación de la instancia de VM. Para verificar la VM y ver su estado, ejecuta el siguiente comando:

gcloud compute instances describe VM_NAME

Accede a la VM

Console

Después de crear tu instancia de VM de HPC, se inicia de forma automática. Para acceder a ella, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en el nombre de la instancia de VM.

  3. En la sección Remote Access (Acceso remoto), haz clic en la primera lista desplegable y elige cómo deseas acceder a la instancia.

Compute Engine propaga tus claves SSH y crea tu usuario. Para obtener más información, consulta Conéctate a VM de Linux.

gcloud

Después de crear tu instancia de VM de HPC, se inicia de forma automática. Para acceder a ella mediante SSH, usa el comando compute ssh:

gcloud compute ssh VM_NAME

Compute Engine propaga tus claves SSH y crea tu usuario. Para obtener más información, consulta Conéctate a instancias de Windows.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta guía de inicio rápido, borra la instancia de VM de HPC que creaste.

Console

  1. En la consola de Google Cloud, ve a la página Cuotas.

    Ir a Implementaciones

  2. Selecciona la casilla de verificación junto a la implementación de VM de HPC.

  3. Haz clic en Borrar.

gcloud

Usa el comando instances delete:

gcloud compute instances delete VM_NAME

Crea VM de HPC con políticas de colocación compactas

Para reducir la latencia entre las VM, crea una política de colocación compacta. Una política de colocación compacta garantiza que las VM que se encuentren en la misma zona de disponibilidad estén cerca unas de otras.

Para crear VMs de HPC que especifiquen una política de posición de compactación, sigue estos pasos:

  1. Crea una política de posición de compactación

  2. Realice una de las siguientes acciones:

Configura la VM de HPC de acuerdo con las prácticas recomendadas

A fin de obtener un rendimiento mejor y más predecible para tu VM de HPC, te recomendamos que uses las siguientes prácticas recomendadas.

Inhabilita los subprocesos múltiples de forma simultánea

La imagen de VM de HPC habilita el multiprocesamiento simultáneo (SMT), también conocido como hipersubproceso en procesadores Intel de forma predeterminada. Inhabilitar SMT puede hacer que tu rendimiento sea más predecible y puede reducir los tiempos de trabajo.

Puedes usar los siguientes métodos para inhabilitar SMT:

  • Para inhabilitar SMT mientras creas una VM de HPC nueva, sigue los pasos en Crea una VM de HPC y, luego, incluye la marca --threads-per-core=1.

  • Para inhabilitar SMT en una VM de HPC existente, conéctate a la VM y ejecuta el siguiente comando desde la VM:

    sudo google_mpi_tuning --nosmt
    

Para obtener más información, consulta Configura una cantidad de subprocesos por núcleo.

Usa gVNIC como interfaz de la red virtual

La imagen de VM de HPC es compatible con Virtio-net y NIC virtual de Google (gVNIC) como interfaces de red virtuales. Usar gVNIC en lugar de Virtio-net puede mejorar la escalabilidad de las aplicaciones de la MPI, ya que proporciona un mejor rendimiento de la comunicación y una capacidad de procesamiento más alta. Además, gVNIC es un requisito para las herramientas de redes avanzadas, que proporciona un mayor ancho de banda y permite una mayor capacidad de procesamiento.

Cuando creas una VM nueva, se usa Virtio-net como interfaz de red virtual de forma predeterminada. Para usar gVNIC, sigue los pasos a fin de crear una VM de HPC y, luego, incluye la marca --network-interface=nic-type=GVNIC. La imagen de VM de HPC incluye el controlador de gVNIC como compatibilidad con un módulo de kernel dinámico (DKMS).Para obtener más información, consulta Usa una NIC virtual de Google.

Desactiva las mitigaciones de Meltdown y Spectre

La imagen de VM de HPC habilita las mitigaciones de Meltdown y Spectre de forma predeterminada. En algunos casos, estas mitigaciones pueden provocar una degradación del rendimiento específica de la carga de trabajo. Para inhabilitar estas mitigaciones y, luego, incurrir en riesgos de seguridad asociados, haz lo siguiente:

  1. Ejecuta el siguiente comando en tu VM de HPC:

    sudo google_mpi_tuning --nomitigation
    
  2. Reinicia la VM.

Mejora el rendimiento de la red

Para mejorar el rendimiento de la red de tu VM, establece uno o más de los siguientes parámetros de configuración:

  • Configura un ancho de banda mayor. Para configurar el rendimiento de las herramientas de redes de nivel de VM 1, usa el comando gcloud compute instances create para crear la VM y especifica la marca --network-performance-configs. Para obtener más información, consulta Crea una VM con una configuración de ancho de banda alto.

  • Usa marcos jumbo A fin de ayudar a minimizar la sobrecarga de procesamiento para los paquetes de red, recomendamos usar un tamaño de paquete más grande. Debes validar los tamaños de paquetes más grandes para los detalles de tu aplicación. Para obtener información sobre el uso de marcos jumbo y los tamaños de paquetes, consulta la Guía de unidades de transmisión máxima.

  • Aumenta los límites de memoria de TCP. Un mayor ancho de banda requiere una memoria TCP mayor. Sigue los pasos para aumentar la configuración de tcp_*mem.

  • Usa el perfil de latencia de red. Evalúa la latencia de la aplicación y habilita el sondeo de disponibilidad que reduce la latencia en la ruta de recepción de la red. Ajusta la configuración de net.core.busy_poll y net.core.busy_read en /etc/sysctl.conf o usa tuned-adm.

Usa Intel MPI 2021

Google recomienda usar la biblioteca de MPI Intel 2021 para ejecutar trabajos de la MPI en Google Cloud.

Las implementaciones de MPI tienen muchos parámetros de configuración internos que pueden afectar el rendimiento de la comunicación. Estos parámetros son relevantes en especial para la comunicación colectiva de la MPI, que te permite especificar algoritmos y parámetros de configuración que pueden tener un rendimiento muy diferente en el entorno de Google Cloud.

La imagen de VM de HPC incluye una utilidad, Google-hpc-compute, para instalar de manera conveniente las bibliotecas MPI recomendadas y usar los proveedores de libfabric personalizados de Google Cloud a través del transporte TCP.

Usa la utilidad google-hpc-compute para la compatibilidad con IntelMPI 2021

La secuencia de comandos google_install_intelmpi es la herramienta relacionada con la MPI en la utilidad Google-hpc-compute. Ayuda a instalar y configurar IntelMPI 2021.11.

La utilidad Google-hpc-compute se incluye en la imagen de VM de HPC.

Instala IntelMPI 2021

Para instalar la biblioteca IntelMPI mientras creas una VM de HPC nueva, sigue los pasos en Crea una VM de HPC y, luego, incluye lo siguiente cuando crees la instancia de VM:

--metadata=google_install_intelmpi="--impi_2021"

Para instalar la biblioteca en una VM de HPC existente, ejecuta el comando siguiente en esa VM:

sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI

La ubicación predeterminada para install_dir se establece en /opt/intel.

Imagen de Intel MPI 2018 en HPC de CentOS 7

La compatibilidad con Intel MPI 2018 está disponible en la imagen HPC de CentOS 7 en Google Cloud. Consulta la guía del usuario de utilidad de google_install_mpi para obtener más información.

Para casos de uso adicionales relacionados con Intel MPI 2018, como la ejecución de aplicaciones MPI compiladas con Intel Parallel Studio XE, usa el entorno de ejecución de Intel Parallel Studio XE (PSXE) completo y reemplaza intel_mpi por intel_psxe_runtime en los comandos anteriores. El entorno de ejecución de PSXE incluye varias bibliotecas que son importantes para ejecutar aplicaciones MPI, como la biblioteca de matemáticas (MKL) de Intel.

Crea una imagen personalizada con la imagen de VM de HPC

  1. Crea una VM personalizada que use la imagen de VM de HPC.

  2. Personaliza la VM con ajustes de la MPI.

  3. Crea una imagen personalizada con el disco de arranque de la imagen de VM de HPC como el disco de origen. Puedes hacerlo mediante la consola de Google Cloud o Google Cloud CLI.

Console

  1. En la consola de Google Cloud, ve a la página Imágenes.

    Ir a Imágenes

  2. Haga clic en Crear imagen.

  3. Especifica un Nombre para tu imagen.

  4. En Disco de origen, selecciona el nombre del disco de arranque en la VM de HPC.

  5. Elige otras propiedades restantes para tu imagen.

  6. Haga clic en Crear.

gcloud

Crea la imagen personalizada con el comando images create.

gcloud compute images create IMAGE_NAME \
         --source-disk=VM_NAME \
         --source-disk-zone=VM_ZONE \
         --family=IMAGE_FAMILY \
         --storage-location=LOCATION

Reemplaza lo siguiente:

  • IMAGE_NAME: Es el nombre de la imagen personalizada.
  • VM_NAME: Es el nombre de tu VM de HPC.
  • INSTANCE_ZONE: Es la zona en la que se encuentra tu VM de HPC.
  • IMAGE_FAMILY: es opcional. Es la familia de imágenes a la que pertenece esta imagen nueva (opcional).
  • LOCATION: es opcional. Región en la que se almacena la imagen personalizada. La ubicación predeterminada es la multirregión más cercana a la ubicación del disco de origen.

Precios

La imagen de VM de HPC está disponible sin costo adicional. Debido a que la imagen de VM de HPC se ejecuta en Compute Engine, es posible que se generen cargos por los recursos de Compute Engine, como las CPU virtuales y la memoria de C2. Para obtener más información, consulta los precios de Compute Engine.

Limitaciones

Los beneficios del ajuste varían entre las aplicaciones. En algunos casos, un ajuste en particular puede tener un efecto negativo en el rendimiento. Considera comparar tus aplicaciones para encontrar la configuración más eficiente o rentable.

¿Qué sigue?