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, Trusted Cloud by S3NS conocimientos y tiempo adicional para el mantenimiento. Para configurar rápidamente un entorno optimizado para tus cargas de trabajo de HPC, usa la imagen de máquina virtual de HPC.
La imagen de máquina virtual de HPC es una imagen de máquina virtual basada en 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 Trusted Cloud by S3NS.
Para obtener los mejores resultados, implementa la imagen de máquina virtual de HPC en un tipo de máquina de una serie de máquinas optimizadas para HPC, como la serie H4D o H3, o en una serie de máquinas optimizadas para la computación, como C2 o C2D. Estos tipos de máquina se han diseñado para aplicaciones de HPC con alto acoplamiento. Para usar RDMA con H4D, debes usar la versión 20241125 o una posterior de la imagen de VM de HPC.
Puedes crear una instancia de máquina virtual lista para HPC con las siguientes opciones:
- Google Cloud CLI
- Trusted 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.
Ventajas
La imagen de máquina virtual de HPC ofrece las siguientes ventajas:
- Instancias de VM listas para cargas de trabajo de HPC de forma predeterminada. No es necesario ajustar manualmente el rendimiento, gestionar los reinicios de las instancias de VM ni estar al día de las últimas actualizaciones de las cargas de trabajo de HPC estrechamente acopladas. Trusted Cloud
- 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. Si usas la serie de máquinas H4D, la imagen de VM de HPC contiene los controladores de Cloud RDMA necesarios.
- 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.
Características de las imágenes de máquinas virtuales de HPC
La imagen de máquina virtual de HPC ofrece varias funciones diseñadas para optimizar el rendimiento de las cargas de trabajo de computación de alto rendimiento (HPC):
- Actualizaciones automáticas inhabilitadas
- Ajustes colectivos de Intel MPI
- RPMs preinstalados
Actualizaciones automáticas inhabilitadas
Las actualizaciones automáticas pueden afectar negativamente al rendimiento de las cargas de trabajo de HPC. Las actualizaciones automáticas se pueden inhabilitar al usar las imágenes de máquinas virtuales de HPC. Para ello, define la entrada de metadatos google_disable_automatic_updates
como TRUE
al crear una instancia de máquina virtual. La forma en que se define esta entrada de metadatos durante la creación de la instancia depende de la herramienta que utilices para crearla.
Por ejemplo, cuando se usa el comando
gcloud compute instances create
para crear una instancia de VM, se debe proporcionar el argumento
--metadata
. Para obtener más información, consulta Acerca de los metadatos de las VMs.
Biblioteca Intel MPI
Google recomienda usar la biblioteca Intel MPI 2021 para ejecutar trabajos de MPI en Trusted Cloud by S3NS. Para obtener más información, consulta las siguientes secciones:
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
En estos tutoriales se describen los pasos para configurar una instancia de VM optimizada para HPC. En los procedimientos se describe cómo hacer lo siguiente:
- Crear una instancia de VM de HPC (sin configurar Cloud RDMA)
- Especificar una política de colocación compacta al crear instancias de VM de HPC
- Crear una instancia de VM de HPC que use Cloud RDMA (vista previa)
No puedes añadir Cloud RDMA a una instancia de VM de HPC que ya tengas, así que sigue los pasos correspondientes al crear la instancia.
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 Trusted Cloud consolaTrusted Cloud , en la página del selector de proyectos, selecciona o crea un proyecto.
Crear una instancia de VM de HPC
Te recomendamos que elijas un tipo de máquina de las siguientes series:
- H4D (Vista previa)
- H3
- C2D
- C2
Estas máquinas virtuales tienen una asignación de núcleos virtuales a físicos fija y exponen la arquitectura de celdas NUMA al sistema operativo invitado, lo que es fundamental para el rendimiento de las aplicaciones de HPC estrechamente acopladas.
Consola
En la Trusted 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 Empezar.
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.
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
.
Si vas a crear varias instancias de máquinas virtuales de HPC interconectadas, crea máquinas virtuales de HPC con políticas de colocación compacta para conseguir una latencia de red baja.
Para crear una instancia de VM de HPC sin una política de colocación, usa un comando similar al siguiente:
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --image-family=IMAGE_FAMILY \ --image-project=cloud-hpc-image-public \ --maintenance-policy=TERMINATE \ --machine-type=MACHINE_TYPE
Haz los cambios siguientes:
INSTANCE_NAME
: nombre de la instancia de VM de HPC.ZONE
: la zona en la que se creará la instancia.IMAGE_FAMILY
: la familia de imágenes de la imagen que se va a usar al crear las instancias de VM. Usahpc-rocky-linux-8
para obtener la imagen más reciente basada en Rocky Linux 8.MACHINE_TYPE
: el tipo de máquina que se usará al crear la instancia de VM.
Al cabo de un tiempo, se habrá creado la instancia de VM. Para verificar la configuración de la instancia y ver su estado, ejecuta el siguiente comando:
gcloud compute instances describe INSTANCE_NAME
Crear instancias de VM de HPC con políticas de colocación compacta
Puedes reducir la latencia entre las instancias de VM creando una política de colocación compacta. Una política de colocación compacta asegura que las instancias de la misma zona de disponibilidad se encuentren cerca unas de otras.
Si necesitas más instancias de VM de las que caben en una sola política de colocación compacta, divide tus instancias en varias políticas de colocación. Usa el número mínimo de políticas de colocación que se adapte a todas tus instancias.
Para crear instancias de VM de HPC que especifiquen una política de colocación compacta, sigue estos pasos:
Elige una de estas opciones:
Aplica la política de emplazamiento compacta a una instancia de máquina virtual de HPC ya creada.
Crea una instancia que especifique la política de colocación compacta.
Para crear una instancia que especifique una política de colocación compacta, usa las marcas
--maintenance-policy
y--resource-policies
con el comandogcloud compute instances create
.
Crear una instancia de VM de HPC que use Cloud RDMA
Para crear una instancia de VM de HPC que utilice Cloud RDMA, primero debes crear al menos una red de VPC normal y una red de VPC de Falcon. La red VPC de Falcon usa un perfil de red RDMA que habilita el tráfico RDMA entre instancias de proceso. Esta red está separada de la red de VPC normal que transporta tráfico no RDMA a otrosTrusted Cloud by S3NS servicios o a Internet.
Para crear una instancia de VM de HPC que use Cloud RDMA, debes completar las siguientes tareas:
Identifica o crea al menos dos redes de VPC:
- Una red de VPC normal para el tráfico que pasa por la interfaz de red gVNIC
- Una red de VPC de Falcon para el tráfico RDMA
Crea una instancia de VM de HPC.
- En la imagen de origen, usa la imagen de máquina virtual de HPC. Esta imagen incluye los controladores necesarios para Cloud RDMA.
Durante la creación de la instancia, configura al menos dos interfaces de red: una que use el controlador gVNIC y otra que use el controlador IRDMA.
Para obtener una explicación más completa, consulta Crear una instancia que use Cloud RDMA.
Si tienes previsto ejecutar aplicaciones MPI en las instancias de VM de HPC que usan Cloud RDMA, sigue los pasos de configuración de MPI que se indican en el artículo Configurar y escalar aplicaciones MPI en VMs H4D con Cloud RDMA.
Acceder a la instancia de VM de HPC
Después de crear la instancia de VM de HPC, se inicia automáticamente. Para acceder a la instancia, tienes dos opciones:
Consola
En la consola de Trusted 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
Para acceder a la instancia mediante SSH, usa el comando gcloud compute ssh
:
gcloud compute ssh INSTANCE_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 cuenta de Trusted Cloud by S3NS por los recursos utilizados en estas guías de inicio rápido, elimina las instancias de VM de HPC que hayas creado.
Consola
En la Trusted 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 INSTANCE_NAME
Configurar una instancia de máquina virtual de HPC según las prácticas recomendadas
Para conseguir un rendimiento mejor y más predecible en tu instancia de VM de HPC, te recomendamos que sigas estas prácticas recomendadas.
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.
Configurar gVNIC como tipo de interfaz de red para instancias C2 y C2D
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 el rendimiento de red de Tier_1 por VM, que proporciona un mayor ancho de banda y permite un mayor rendimiento.
Si creas una instancia C2 o C2D, se usará Virtio-net de forma predeterminada para la interfaz de red virtual. Para usar gVNIC, sigue los pasos para crear una VM de HPC y haz una de las siguientes acciones:
Consola
Para definir gVNIC como interfaz de red al crear la instancia, en el menú de navegación, haga clic en Redes. En el panel Redes que aparece, haz lo siguiente:
- Ve a la sección Interfaces de red.
- En Tarjeta de interfaz de red, selecciona
gVNIC
.
gcloud
Incluye la marca --network-interface=nic-type=GVNIC
en el comando gcloud compute instances create
.
La imagen de máquina virtual de HPC incluye el controlador gVNIC como Dynamic Kernel Module Support (DKMS). Para obtener más información, consulta Usar 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 instancia de HPC:
sudo google_mpi_tuning --nomitigation
Reinicia la instancia.
Mejorar el rendimiento de la red
Para mejorar el rendimiento de la red de tu instancia, configura una o varias de las siguientes opciones:
Configura un ancho de banda mayor. Para configurar la red Tier_1 en VMs C2 o C2D, usa el comando
gcloud compute instances create
para crear la VM y especificar 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 los ajustes de
tcp_*mem
.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 Trusted 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 Trusted Cloud by S3NS .
La imagen de VM de HPC incluye una utilidad, google-hpc-compute
, que instala las bibliotecas MPI recomendadas y usa proveedores de libfabric adaptados a través del transporte TCP. Trusted Cloud by S3NS
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.
Usar la utilidad google-hpc-compute
para la compatibilidad con Intel MPI 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 Intel
MPI.
La utilidad google-hpc-compute
se incluye en la imagen de máquina virtual de HPC.
Instalar Intel MPI 2021
Para instalar la biblioteca Intel MPI al crear una nueva 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
.
Biblioteca Intel MPI 2018 y ajustes colectivos de 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 colocación compacta.
Estos ajustes están disponibles en el directorio
/usr/share/google-hpc-compute/mpitune-configs/intelmpi-2018
.
Para aplicar estas configuraciones de ajuste en una biblioteca MPI instalada, usa la secuencia de comandos mpivars
para configurar el entorno adecuado. A continuación, puedes instalar los ajustes directamente con el siguiente comando (usa la opción --sudo
si necesitas acceso de superusuario al directorio): google_install_mpitune
Puedes usar mpitune
para especificar manualmente los algoritmos y los parámetros de configuración de la comunicación colectiva de MPI, así como para generar archivos de configuración.
Por ejemplo, para optimizar 22 instancias de VM y 30 vCPUs por instancia, ejecuta el script de shell mpivars
para configurar el entorno adecuado y, a continuación, ejecuta el siguiente comando. Debes tener acceso write
al directorio o ejecutar el comando como usuario root.
mpitune -hf hostfile -fl 'shm:tcp' -pr 30:30 -hr 22:22
Este comando genera un archivo de configuración en el directorio de Intel MPI que se puede usar más adelante para ejecutar aplicaciones. Para usar la configuración de ajuste de una aplicación, añade la opción -tune
a la línea de comandos mpirun
. Por ejemplo:
mpirun -tune -hostfile HOSTFILE -genv I_MPI_FABRICS 'shm:tcp' -np 660 -ppn 30 ./APPLICATION_NAME
Haz los cambios siguientes:
- HOSTFILE: nombre de un archivo del SO invitado que contiene los nombres de red de las instancias de VM.
- APPLICATION_NAME: el nombre del archivo de aplicación que se va a ejecutar
Crear una imagen personalizada con la imagen de VM de HPC
Para implementar las prácticas recomendadas a gran escala, crea una imagen de SO personalizada para usarla con tus instancias de VM de HPC. Completa las siguientes tareas para crear una imagen personalizada que se usará al crear instancias de máquina virtual 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 Trusted Cloud consola o Google Cloud CLI.
Consola
En la Trusted 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=INSTANCE_NAME \ --source-disk-zone=VM_ZONE \ --family=IMAGE_FAMILY \ --storage-location=LOCATION
Haz los cambios siguientes:
IMAGE_NAME
: nombre de la imagen personalizada.INSTANCE_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, discos y memoria. Para obtener más información, consulta los precios de Compute Engine.
Siguientes pasos
- Consulta las prácticas recomendadas para ejecutar cargas de trabajo de HPC.
- Consulta cómo configurar y escalar aplicaciones MPI en VMs H4D con Cloud RDMA enTrusted Cloud by S3NS.
- Consulta más información sobre la familia de máquinas optimizadas para la computación.
- Consulta cómo crear clústeres de HPC.
- Si tienes alguna sugerencia o necesitas ayuda, envía un correo a hpc-image-feedback@google.com.