Crear una instancia de VM lista para HPC


Introducción

Las cargas de trabajo de computación de alto rendimiento (HPC) estrechamente acopladas a menudo utilizan la interfaz de paso de mensajes (MPI) para comunicarse entre procesos e instancias de máquinas virtuales (VM). Pero crear su propia imagen de VM optimizada para un rendimiento MPI óptimo requiere experiencia en sistemas, Google Cloud conocimientos y tiempo extra para el mantenimiento. Para crear rápidamente instancias de VM para sus cargas de trabajo de HPC, puede utilizar la imagen de VM de HPC . Alternativamente, puede crear máquinas virtuales utilizando la serie de máquinas H3 .

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

Puede crear una máquina virtual lista para HPC utilizando las siguientes opciones:

Beneficios

La imagen de HPC VM proporciona los siguientes beneficios:

  1. Máquinas virtuales listas para HPC listas para usar . No es necesario ajustar manualmente el rendimiento, administrar los reinicios de la máquina virtual ni mantenerse actualizado con las últimas novedades.Google Cloud actualizaciones para cargas de trabajo HPC estrechamente acopladas.
  2. Optimizaciones de redes para cargas de trabajo estrechamente acopladas . Se incluyen optimizaciones que reducen la latencia para mensajes pequeños, lo que beneficia a las aplicaciones que dependen en gran medida de las comunicaciones colectivas y punto a punto.
  3. Optimizaciones informáticas para cargas de trabajo HPC . Se incluyen optimizaciones que reducen la fluctuación del sistema, lo que hace que el alto rendimiento de un solo nodo sea más predecible.
  4. Rendimiento consistente y reproducible . La estandarización de imágenes de VM le brinda un rendimiento consistente y reproducible a nivel de aplicación.
  5. Compatibilidad de aplicaciones mejorada . La alineación con los requisitos a nivel de nodo de la especificación de la plataforma Intel HPC permite un alto grado de interoperabilidad entre sistemas.

Características

Desactivar actualizaciones automáticas

Las actualizaciones automáticas pueden tener un impacto negativo en el rendimiento de las aplicaciones HPC. Las actualizaciones automáticas se pueden desactivar cuando se utilizan imágenes de VM HPC configurando la entrada de metadatos google_disable_automatic_updates en TRUE al crear una VM. La forma en que se deben configurar los metadatos durante la creación de la VM depende de la herramienta que utilice para crear la VM.

Por ejemplo, cuando utilices el comando gcloud compute instances create para crear una máquina virtual, proporciona el argumento --metadata . Para obtener más información, consulte Acerca de los metadatos de VM .

Ajustes colectivos de Intel MPI

La imagen de HPC VM incluye ajustes colectivos de Intel MPI realizados en instancias c2-standard-60 y c2d-standard-112 mediante políticas de ubicación compacta .

RPM preinstalados

La imagen de HPC VM viene con los siguientes paquetes RPM preinstalados:

  • daos-client
  • gcc-gfortran
  • gcc-toolset-12
  • Lmod
  • dkms
  • htop
  • hwloc
  • hwloc-devel
  • infiniband-diags
  • kernel-devel
  • kmod-idpf-irdma
  • libfabric
  • librdmacm-utils
  • libibverbs-utils
  • libXt
  • ltrace
  • nfs-utils
  • numactl
  • numactl-devel
  • papi
  • pciutils
  • pdsh
  • perf
  • perftest
  • rdma-core
  • redhat-lsb-core
  • redhat-lsb-cxx
  • rsh
  • screen
  • strace
  • wget
  • zsh
  • Grupo de paquetes "Herramientas de desarrollo"

Inicios rápidos

Antes de comenzar

  1. Para usar la CLI de Google Cloud para este inicio rápido, primero debes instalar e inicializar la CLI de Google Cloud :
  2. En la consola de Google Cloud, en la página de selección de proyectos, seleccione o cree unGoogle Cloud proyecto.

Crear una instancia de VM HPC

Crear la máquina virtual

Recomendamos encarecidamente elegir un tipo de máquina optimizada para computación, como C2 , C2D o H3 . Estas máquinas virtuales han arreglado el mapeo de núcleos virtuales a físicos y exponen la arquitectura de celda NUMA al sistema operativo invitado, los cuales son críticos para el rendimiento de aplicaciones HPC estrechamente acopladas.

Consola

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

  2. Haga clic en Iniciar .

  3. En la página de implementación de HPC VM, ingrese un nombre de implementación . Este nombre se convierte en la raíz del nombre de su VM. Compute Engine agrega -vm a este nombre al nombrar tu instancia.

  4. Elija una zona y un tipo de máquina . Para este inicio rápido, puede dejar todas las configuraciones como están o cambiarlas. Recomendamos encarecidamente elegir un tipo de máquina optimizada para computación, como C2 , C2D o H3 .

  5. Deje el tipo de disco de arranque , el tamaño del disco de arranque y la interfaz de red en sus configuraciones predeterminadas.

  6. Haga clic en Implementar .

Una vez completada la creación de la instancia de VM, se abre Cloud Deployment Manager, donde puede administrar su VM HPC y otras implementaciones.

nube de gcloud

Cree una máquina virtual HPC mediante el comando instances create . Le recomendamos encarecidamente que cree máquinas virtuales HPC utilizando políticas de ubicación compactas para lograr una baja latencia de red. Si necesita más máquinas virtuales de las que caben en una única política de ubicación compacta, divida sus máquinas virtuales en varias políticas de ubicación. Recomendamos utilizar la cantidad mínima de políticas de ubicación que puedan adaptarse a sus máquinas virtuales.

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

Reemplace lo siguiente:

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

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

gcloud compute instances describe VM_NAME

Acceder a la máquina virtual

Consola

Después de crear su instancia de HPC VM, se inicia automáticamente. Para acceder a él, haga lo siguiente:

  1. En la consola de Google Cloud, vaya a la página de instancias de VM .

    Ir a instancias de VM

  2. Haga clic en el nombre de su instancia de VM.

  3. En la sección Acceso remoto , haga clic en la primera lista desplegable y elija cómo desea acceder a la instancia.

Compute Engine propaga tus claves SSH y crea tu usuario. Para obtener más información, consulte Conexión a máquinas virtuales Linux .

nube de gcloud

Después de crear su instancia de HPC VM, se inicia automáticamente. Para acceder a él usando SSH, use 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, consulte Conexión a instancias .

Limpiar

Para evitar incurrir en cargos a su Google Cloud Para obtener una cuenta de los recursos utilizados en este inicio rápido, elimine la instancia de HPC VM que creó.

Consola

  1. En la consola de Google Cloud, vaya a la página Implementaciones .

    Ir a Implementaciones

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

  3. Haga clic en Eliminar .

nube de gcloud

Utilice el comando instances delete :

gcloud compute instances delete VM_NAME

Cree máquinas virtuales HPC con políticas de ubicación compactas

Puede reducir la latencia entre máquinas virtuales creando una política de ubicación compacta. Una política de ubicación compacta garantiza que las máquinas virtuales en la misma zona de disponibilidad estén ubicadas cerca unas de otras.

Para crear máquinas virtuales HPC que especifiquen una política de ubicación compacta, siga estos pasos:

  1. Cree una política de ubicación compacta .

  2. Haga una de las siguientes cosas:

Configure su VM HPC según las mejores prácticas

Para obtener un rendimiento mejor y más predecible para su máquina virtual HPC, le recomendamos que utilice las siguientes mejores prácticas.

Deshabilitar el subproceso múltiple simultáneo

La imagen de HPC VM habilita el multiproceso simultáneo (SMT), también conocido como Hyper-Threading en los procesadores Intel , de forma predeterminada. Deshabilitar SMT puede hacer que su desempeño sea más predecible y puede disminuir los tiempos de trabajo.

Puede utilizar los siguientes métodos para desactivar SMT:

  • Para deshabilitar SMT mientras crea una nueva máquina virtual HPC, siga los pasos para crear una máquina virtual HPC e incluya la marca --threads-per-core=1 .

  • Para deshabilitar SMT en una máquina virtual HPC existente, conéctese a la máquina virtual y ejecute el siguiente comando desde la máquina virtual:

    sudo google_mpi_tuning --nosmt
    

Para obtener más información, consulte Establecer el número de subprocesos por núcleo .

Utilice gVNIC como interfaz de red virtual

La imagen de HPC VM admite Virtio-net y Google Virtual NIC (gVNIC) como interfaces de red virtual. El uso de gVNIC en lugar de Virtio-net puede mejorar la escalabilidad de las aplicaciones MPI al proporcionar un mejor rendimiento de comunicación y un mayor rendimiento. Además, gVNIC es un requisito previo para las redes avanzadas , que proporciona un mayor ancho de banda y permite un mayor rendimiento.

Cuando crea una nueva máquina virtual, Virtio-net se utiliza como interfaz de red virtual de forma predeterminada. Para usar gVNIC, siga los pasos para crear una máquina virtual HPC e incluya el indicador --network-interface=nic-type=GVNIC . La imagen de HPC VM incluye el controlador gVNIC como soporte de módulo de kernel dinámico (DKMS) . Para obtener más información, consulte Uso de la NIC virtual de Google .

Desactivar las mitigaciones de Meltdown y Spectre

La imagen de HPC VM 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 deshabilitar estas mitigaciones e incurrir en los riesgos de seguridad asociados, haga lo siguiente:

  1. Ejecute el siguiente comando en su máquina virtual HPC:

    sudo google_mpi_tuning --nomitigation
    
  2. Reinicie la máquina virtual.

Mejorar el rendimiento de la red

Para mejorar el rendimiento de la red de su VM, configure una o más de las siguientes configuraciones:

  • Configure un ancho de banda mayor . Para configurar el rendimiento de red por VM Tier_1, use el comando gcloud compute instances create para crear la VM y especifique la marca --network-performance-configs . Para obtener más información, consulte Creación de una máquina virtual con configuración de gran ancho de banda .

  • Utilice marcos gigantes . Para ayudar a minimizar la sobrecarga de procesamiento de los paquetes de red, recomendamos utilizar un tamaño de paquete mayor. Debe validar tamaños de paquetes más grandes para las características específicas de su aplicación. Para obtener información sobre el uso de tramas gigantes y tamaños de paquetes, consulte la guía de unidades de transmisión máxima .

  • Aumente los límites de memoria TCP . Un ancho de banda mayor requiere una memoria TCP más grande. Siga los pasos para aumentar la configuración de tcp_*mem .

  • Utilice el perfil de latencia de red . Evalúe la latencia de su aplicación y habilite el sondeo de ocupado que reduce la latencia en la ruta de recepción de la red. Ajuste la configuración de net.core.busy_poll y net.core.busy_read en /etc/sysctl.conf o utilice tuned-adm .

Utilice Intel MPI 2021

Google recomienda utilizar la biblioteca Intel MPI 2021 para ejecutar trabajos 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 especialmente relevantes para la comunicación colectiva MPI, que le permite especificar algoritmos y parámetros de configuración que pueden funcionar de manera muy diferente en el Google Cloud ambiente.

La imagen de HPC VM incluye una utilidad, Google-hpc-compute , para instalar cómodamente las bibliotecas MPI recomendadas y utilizarlas. Google Cloud Proveedores libfabric personalizados a través del transporte TCP.

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

El script google_install_intelmpi es la herramienta relacionada con MPI en la utilidad Google-hpc-compute . Ayuda a instalar y configurar IntelMPI.

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

Instalar IntelMPI 2021

Para instalar la biblioteca IntelMPI mientras crea una nueva máquina virtual HPC, siga los pasos para crear una máquina virtual HPC e incluya lo siguiente al crear la instancia de máquina virtual:

--metadata=google_install_intelmpi="--impi_2021"

Para instalar la biblioteca en una máquina virtual HPC existente, ejecute el siguiente comando en esa máquina virtual:

sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI

La ubicación predeterminada para install_dir está configurada en /opt/intel .

Intel MPI 2018 en HPC CentOS 7 imagen

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

Para casos de uso adicionales relacionados con Intel MPI 2018, como ejecutar aplicaciones MPI creadas con Intel Parallel Studio XE, utilice el tiempo de ejecución completo de Intel Parallel Studio XE (PSXE) reemplazando intel_mpi con intel_psxe_runtime en los comandos anteriores. El tiempo de ejecución de PSXE incluye varias bibliotecas que son importantes para ejecutar aplicaciones MPI, como la biblioteca Intel Math Kernel (MKL).

Cree una imagen personalizada utilizando la imagen de HPC VM

  1. Cree una máquina virtual personalizada que utilice la imagen de máquina virtual HPC .

  2. Personalice la VM con ajustes MPI .

  3. Cree una imagen personalizada utilizando el disco de arranque de su imagen de HPC VM como disco de origen. Puedes hacerlo usando la consola de Google Cloud o la CLI de Google Cloud .

Consola

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

    Ir a Imágenes

  2. Haz clic en Crear imagen .

  3. Especifique un nombre para su imagen.

  4. En Disco de origen , seleccione el nombre del disco de arranque en su máquina virtual HPC.

  5. Elija otras propiedades restantes para su imagen.

  6. Haga clic en Crear .

nube de gcloud

Cree la imagen personalizada utilizando 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

Reemplace lo siguiente:

  • IMAGE_NAME : nombre de la imagen personalizada.
  • VM_NAME : nombre de su máquina virtual HPC.
  • INSTANCE_ZONE : zona donde se encuentra su VM HPC.
  • IMAGE_FAMILY : opcional. La familia de imágenes a la que pertenece esta imagen.
  • LOCATION : opcional. Región en la que almacenar la imagen personalizada. La ubicación predeterminada es la región múltiple más cercana a la ubicación del disco de origen.

Precios

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

Limitaciones

Los beneficios del ajuste varían de una aplicación a otra. En algunos casos, un ajuste concreto puede tener un efecto negativo en el rendimiento. Considere comparar sus aplicaciones para encontrar la configuración más eficiente o rentable.

¿Qué sigue?