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:
- Google Cloud CLI
- La consola de Google Cloud. En Console, la imagen está disponible a través de Cloud Marketplace
- Administrador 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 VM de HPC brinda los siguientes beneficios:
- 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.
- 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.
- 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.
- 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.
- 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
Inhabilita las actualizaciones automáticas
Las actualizaciones automáticas pueden tener un impacto negativo en el rendimiento de las aplicaciones de HPC. Cuando se usan las imágenes de VM de HPC, se pueden inhabilitar las actualizaciones automáticas configurando la entrada de metadatos google_disable_automatic_updates
en TRUE
cuando se crea una VM. La forma en que se deben configurar 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 VMs.
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:
gcc-gfortran
gcc-toolset-12
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
- Si deseas usar Google Cloud CLI para esta guía de inicio rápido, primero debes instalar y, luego, inicializar Google Cloud CLI:
- 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
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
Haz clic en Iniciar.
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.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.
Deja el Tipo de disco de arranque, el Tamaño de disco de arranque y la Interfaz de red en su configuración predeterminada.
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. Usahpc-centos-7
para una imagen basada en CentOS ohpc-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:
En la consola de Google Cloud, ve a la página Instancias de VM.
Haz clic en el nombre de la instancia de VM.
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
En la consola de Google Cloud, ve a la página Cuotas.
Selecciona la casilla de verificación junto a la implementación de VM de HPC.
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:
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:
Ejecuta el siguiente comando en tu VM de HPC:
sudo google_mpi_tuning --nomitigation
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
ynet.core.busy_read
en/etc/sysctl.conf
o usatuned-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
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
En la consola de Google Cloud, ve a la página Imágenes.
Haga clic en Crear imagen.
Especifica un Nombre para tu imagen.
En Disco de origen, selecciona el nombre del disco de arranque en la VM de HPC.
Elige otras propiedades restantes para tu 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
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?
- Más información sobre la computación de alto rendimiento en Google Cloud
- Obtén más información sobre la serie de máquinas H3.
- Aprende cómo usar la API de instancias masivas.
- Si tienes comentarios o necesitas asistencia, envía un correo electrónico a hpc-image-feedback@google.com.