Introducción
Las cargas de trabajo de computación de alto rendimiento (HPC) estrechamente acopladas suelen usar la interfaz de transferencia de mensajes (MPI) para comunicarse entre procesos e instancias de máquina virtual (VM). Sin embargo,crear tu propia imagen de VM optimizada para obtener el mejor rendimiento de MPI requiere experiencia en sistemas, Google Cloud conocimientos y tiempo adicional para el mantenimiento. Para crear rápidamente instancias de máquina virtual para tus cargas de trabajo de HPC, puedes usar la imagen de máquina virtual de HPC. También puedes crear VMs con la serie de máquinas H3.
La imagen de máquina virtual de HPC es una imagen de máquina virtual basada en CentOS 7.9 o Rocky Linux 8 que se ha optimizado para cargas de trabajo de HPC con alto acoplamiento. Incluye parámetros de ajuste de red y kernel preconfigurados necesarios para crear instancias de VM que logren un rendimiento óptimo de MPI en Google Cloud.
Puedes crear una VM lista para HPC con las siguientes opciones:
- Google Cloud CLI
- Google Cloud console. En la consola, la imagen está disponible en Cloud Marketplace.
- Gestor de cargas de trabajo Slurm de SchedMD, que usa la imagen de VM de HPC de forma predeterminada.
- Omnibond CloudyCluster, que usa la imagen de VM de HPC de forma predeterminada.
Ventajas
La imagen de máquina virtual de HPC ofrece las siguientes ventajas:
- Máquinas virtuales listas para HPC de inmediato. No es necesario ajustar manualmente el rendimiento, gestionar los reinicios de las máquinas virtuales ni estar al día de las últimas actualizaciones deGoogle Cloud para las cargas de trabajo de HPC estrechamente acopladas.
- Optimizaciones de redes para cargas de trabajo estrechamente acopladas. Se incluyen optimizaciones que reducen la latencia de los mensajes pequeños, lo que beneficia a las aplicaciones que dependen en gran medida de las comunicaciones punto a punto y colectivas.
- Optimizaciones de computación para cargas de trabajo de HPC. Se incluyen optimizaciones que reducen las fluctuaciones del sistema, lo que hace que el alto rendimiento de un solo nodo sea más predecible.
- Rendimiento constante y reproducible. La estandarización de las imágenes de VM te ofrece un rendimiento a nivel de aplicación coherente y reproducible.
- Compatibilidad mejorada de las aplicaciones. La alineación con los requisitos a nivel de nodo de la especificación de la plataforma de HPC de Intel permite un alto grado de interoperabilidad entre los sistemas.
Funciones
Inhabilitar las actualizaciones automáticas
Las actualizaciones automáticas pueden afectar negativamente al rendimiento de las aplicaciones de HPC. Las actualizaciones automáticas se pueden inhabilitar al usar las imágenes de máquinas virtuales de HPC. Para ello, asigna el valor TRUE
a la entrada de metadatos google_disable_automatic_updates
al crear una máquina virtual. La forma de definir los metadatos durante la creación de la VM depende de la herramienta que uses para crearla.
Por ejemplo, cuando uses el comando
gcloud compute instances create
para crear una VM, proporciona el argumento
--metadata
. Para obtener más información, consulta Acerca de los metadatos de las VMs.
Ajustes colectivos de Intel MPI
La imagen de máquina virtual de HPC incluye ajustes colectivos de Intel MPI realizados en instancias c2-standard-60
y c2d-standard-112
mediante políticas de emplazamiento compactas.
RPMs preinstalados
La imagen de máquina virtual de HPC incluye 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"
Guías de inicio rápido
Antes de empezar
- Para usar Google Cloud CLI en esta guía de inicio rápido, primero debes instalar e inicializar Google Cloud CLI:
- En la Google Cloud consolaGoogle Cloud , en la página del selector de proyectos, selecciona o crea un proyecto.
Crear una instancia de VM de HPC
Crea la máquina virtual
Te recomendamos que elijas un tipo de máquina optimizado para la computación, como C2, C2D o H3. Estas máquinas virtuales tienen una asignación de núcleos virtuales a físicos fija y exponen la arquitectura de celdas NUMA al SO invitado, lo que es fundamental para el rendimiento de las aplicaciones de HPC estrechamente acopladas.
Consola
En la Google Cloud consola, ve a la página de Cloud Marketplace de VMs de HPC. Ir a la página de Cloud Marketplace de la VM de HPC
Haz clic en Lanzar.
En la página de implementación de la VM de HPC, introduce un nombre de implementación. Este nombre se convierte en la raíz del nombre de tu VM. Compute Engine añade
-vm
a este nombre al asignar un nombre a la instancia.Elige una zona y un tipo de máquina. En esta guía de inicio rápido, puedes dejar todos los ajustes tal cual o cambiarlos. Te recomendamos que elijas un tipo de máquina optimizado para la computación, como C2, C2D o H3.
Conserva los ajustes predeterminados de Tipo de disco de arranque, Tamaño del disco de arranque y Interfaz de red.
Haz clic en Desplegar.
Una vez que se haya creado la instancia de VM, se abrirá Cloud Deployment Manager, donde podrás gestionar tu VM de HPC y otras implementaciones.
gcloud
Crea una VM de HPC con el comando instances create
.
Te recomendamos que crees VMs de HPC con políticas de emplazamiento compactas para conseguir una latencia de red baja. Si necesitas más VMs de las que caben en una sola política de colocación compacta, divide tus VMs en varias políticas de colocación. Te recomendamos que uses el número mínimo de políticas de colocación que se adapten 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
Haz los cambios siguientes:
VM_NAME
: nombre de la VM de HPC que se va a crear.ZONE
: zona en la que se creará la VM.IMAGE_FAMILY
: la familia de imágenes de la imagen con la que se crearán las instancias de máquina virtual. Usahpc-centos-7
para una imagen basada en CentOS ohpc-rocky-linux-8
para una imagen basada en Rocky Linux 8.MACHINE_TYPE
: tipo de máquina de la nueva VM.
Al cabo de un tiempo, se habrá creado la instancia de VM. Para verificar la VM y ver su estado, ejecuta el siguiente comando:
gcloud compute instances describe VM_NAME
Acceder a la VM
Consola
Después de crear la instancia de máquina virtual de HPC, se inicia automáticamente. Para acceder a ella, sigue estos pasos:
En la consola de Google Cloud , ve a la página Instancias de VM.
Haz clic en el nombre de tu instancia de VM.
En la sección Acceso remoto, haz clic en la primera lista desplegable y elige cómo quieres acceder a la instancia.
Compute Engine propaga tus claves SSH y crea tu usuario. Para obtener más información, consulta el artículo Conectarse a máquinas virtuales de Linux.
gcloud
Después de crear la instancia de máquina virtual de HPC, se inicia automáticamente. Para acceder a él 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 Conectarse a instancias.
Limpieza
Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta guía de inicio rápido, elimina la instancia de VM de HPC que has creado.
Consola
En la Google Cloud consola, ve a la página Implementaciones.
Seleccione la casilla situada junto a la implementación de la VM de HPC.
Haz clic en Eliminar.
gcloud
Usa el comando instances delete
:
gcloud compute instances delete VM_NAME
Crear VMs de HPC con políticas de colocación compacta
Puedes reducir la latencia entre las máquinas virtuales creando una política de emplazamiento compacta. Una política de emplazamiento compacta asegura que las VMs de la misma zona de disponibilidad estén cerca unas de otras.
Para crear VMs de HPC que especifiquen una política de colocación compacta, sigue estos pasos:
Elige una de estas opciones:
Configurar una VM de HPC según las prácticas recomendadas
Para obtener un rendimiento mejor y más predecible de tu VM de HPC, te recomendamos que sigas las prácticas recomendadas que se indican a continuación.
Inhabilitar varios hilos simultáneos
La imagen de máquina virtual de HPC habilita de forma predeterminada la multihilo simultánea (SMT), también conocida como Hyper-Threading en procesadores Intel. Si inhabilitas SMT, tu rendimiento será más predecible y los tiempos de trabajo se reducirán.
Puedes usar los siguientes métodos para inhabilitar SMT:
Para inhabilitar SMT al crear una VM de HPC, sigue los pasos para crear una VM de HPC e incluye la marca
--threads-per-core=1
.Para inhabilitar SMT en una VM de HPC, 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 Definir el número de hilos por núcleo.
Usar gVNIC como interfaz de red virtual
La imagen de máquina virtual de HPC admite tanto Virtio-net como la NIC virtual de Google (gVNIC) como interfaces de red virtuales. Usar gVNIC en lugar de Virtio-net puede mejorar la escalabilidad de las aplicaciones MPI, ya que proporciona un mejor rendimiento de la comunicación y un mayor rendimiento. Además, gVNIC es un requisito previo para la red avanzada, que proporciona un mayor ancho de banda y permite un mayor rendimiento.
Cuando creas una VM, Virtio-net se usa como interfaz de red virtual de forma predeterminada. Para usar gVNIC, sigue los pasos para crear una VM de HPC
e incluye la marca --network-interface=nic-type=GVNIC
. La imagen de máquina virtual de HPC incluye el controlador gVNIC como compatibilidad con módulos de kernel dinámicos (DKMS).Para obtener más información, consulta el artículo Usar la NIC virtual de Google.
Desactivar las mitigaciones de Meltdown y Spectre
La imagen de máquina virtual de HPC habilita las mitigaciones de Meltdown y Spectre de forma predeterminada. En algunos casos, estas medidas de mitigación pueden provocar una degradación del rendimiento específica de la carga de trabajo. Para inhabilitar estas medidas de mitigación y asumir los riesgos de seguridad asociados, haz lo siguiente:
Ejecuta el siguiente comando en tu VM de HPC:
sudo google_mpi_tuning --nomitigation
Reinicia la VM.
Mejorar el rendimiento de la red
Para mejorar el rendimiento de la red de tu VM, configura una o varias de las siguientes opciones:
Configura un ancho de banda mayor. Para configurar el rendimiento de red Tier_1 por VM, 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 Crear una VM con una configuración de ancho de banda alto.Usar tramas jumbo. Para minimizar la sobrecarga de procesamiento de los paquetes de red, te recomendamos que uses un tamaño de paquete mayor. Debes validar tamaños de paquetes más grandes para las especificaciones de tu aplicación. Para obtener información sobre el uso de tramas jumbo y tamaños de paquetes, consulta la guía de la unidad de transmisión máxima.
Aumenta los límites de memoria de TCP. Para un mayor ancho de banda, se necesita más memoria TCP. Sigue los pasos para aumentar
tcp_*mem
los ajustes.Usa el perfil de latencia de la red. Evalúa la latencia de tu aplicación y habilita el sondeo ocupado, que reduce la latencia en la ruta de recepción de la red. Ajusta la configuración de
net.core.busy_poll
ynet.core.busy_read
en/etc/sysctl.conf
o usatuned-adm
.
Usar Intel MPI 2021
Google recomienda usar la biblioteca Intel MPI 2021 para ejecutar trabajos de MPI en Google Cloud.
Las implementaciones de MPI tienen muchos parámetros de configuración internos que pueden afectar al rendimiento de la comunicación. Estos parámetros son especialmente relevantes para la comunicación colectiva de MPI, que te permite especificar algoritmos y parámetros de configuración que pueden funcionar de forma muy diferente en el entorno de Google Cloud .
La imagen de máquina virtual de HPC incluye una utilidad, Google-hpc-compute
, para instalar fácilmente las bibliotecas MPI recomendadas y usar proveedores de libfabric adaptados a través del transporte TCP. Google Cloud
Usar la utilidad google-hpc-compute
para la compatibilidad con IntelMPI 2021
La secuencia de comandos 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 máquina virtual de HPC.
Instalar IntelMPI 2021
Para instalar la biblioteca IntelMPI al crear una VM de HPC, sigue los pasos para crear una VM de HPC e incluye lo siguiente al crear la instancia de VM:
--metadata=google_install_intelmpi="--impi_2021"
Para instalar la biblioteca en una VM de HPC, ejecuta el siguiente comando en esa VM:
sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI
La ubicación predeterminada de install_dir
es /opt/intel
.
Intel MPI 2018 en la imagen de HPC CentOS 7
La compatibilidad con Intel MPI 2018 está disponible en la imagen de HPC CentOS 7 en Google Cloud.
Consulta la guía de usuario de la utilidad google_install_mpi
para obtener más información.
Para ver otros casos prácticos relacionados con Intel MPI 2018, como ejecutar aplicaciones MPI creadas con Intel Parallel Studio XE, usa el tiempo de ejecución completo de Intel Parallel Studio XE (PSXE). Para ello, sustituye intel_mpi
por 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 Library (MKL).
Crear una imagen personalizada con la imagen de VM de HPC
Crea una imagen personalizada usando el disco de arranque de tu imagen de VM de HPC como disco de origen. Puede hacerlo mediante la Google Cloud consola o Google Cloud CLI.
Consola
En la Google Cloud consola, ve a la página Imágenes.
Haz clic en Crear imagen.
Especifica un nombre para la imagen.
En Disco de origen, selecciona el nombre del disco de arranque de tu VM de HPC.
Elige las propiedades restantes de la imagen.
Haz 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
Haz los cambios siguientes:
IMAGE_NAME
: nombre de la imagen personalizada.VM_NAME
: nombre de tu VM de HPC.INSTANCE_ZONE
: zona en la que se encuentra tu máquina virtual de HPC.IMAGE_FAMILY
: opcional. La familia de imágenes a la que pertenece esta imagen.LOCATION
: opcional. Región en la que se almacenará 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 coste adicional. Como la imagen de VM de HPC se ejecuta en Compute Engine, es posible que se te cobren recursos de Compute Engine, como vCPUs C2 y memoria. Para obtener más información, consulta los precios de Compute Engine.
Limitaciones
Las ventajas de la optimización varían de una aplicación a otra. En algunos casos, un ajuste concreto puede tener un efecto negativo en el rendimiento. Te recomendamos que hagas pruebas comparativas de tus aplicaciones para encontrar la configuración más eficiente o rentable.
Siguientes pasos
- Consulta más información sobre la computación de alto rendimiento enGoogle Cloud.
- Más información sobre la serie de máquinas H3
- Consulta cómo usar la API de instancias en bloque.
- Si tienes alguna sugerencia o necesitas ayuda, envía un correo a hpc-image-feedback@google.com.