En esta página, se describe cómo crear un clúster de Slurm de computación de alto rendimiento (HPC) que use el acceso remoto directo a memoria (RDMA) con VMs H4D con capacidades mejoradas de administración de clústeres. Usa gcloud CLI y el Cluster Toolkit para configurar el clúster.
La serie de máquinas H4D está diseñada específicamente para satisfacer las necesidades de las cargas de trabajo de HPC exigentes. H4D ofrece instancias con una escalabilidad de carga de trabajo mejorada a través de las redes de Cloud RDMA con una capacidad de procesamiento de 200 Gbps. Para obtener más información sobre los tipos de máquinas optimizados para procesamiento H4D en Google Cloud, consulta Serie de máquinas H4D.
Antes de comenzar
Antes de crear un clúster de Slurm, si aún no lo hiciste, completa los siguientes pasos:
- Elige una opción de consumo: la opción que elijas determina cómo quieres obtener y usar los recursos de CPU virtuales.
- Obtener capacidad: Obtén capacidad para la opción de consumo seleccionada.
- Verifica que tengas suficiente cuota de Filestore o Google Cloud Managed Lustre:
debes tener suficiente cuota de Filestore o Managed Lustre
en tu región y zona de destino antes de realizar la implementación.
La cuota mínima requerida depende del servicio de almacenamiento y de los tipos de máquinas
en tu clúster:
- Managed Lustre:
- A4X Max: Requiere un mínimo de 18,000 GiB de cuota de capacidad de almacenamiento y 9 GBps de cuota de capacidad de procesamiento.
- A4X, A4, A3 Ultra, A3 Mega y A3 High: requiere un mínimo de 36,000 GiB de cuota de capacidad de almacenamiento y 18 GBps de cuota de capacidad de procesamiento.
- Filestore:
- A4X Max, A4X, A4, A3 Ultra y A3 Mega: Requiere un mínimo de 10 TiB (10,240 GiB) de cuota de capacidad de HIGH_SCALE_SSD (zonal).
- A3 High: Requiere un mínimo de 2.5 TiB (2,560 GiB) de cuota de capacidad de BASIC_SSD (estándar).
Para verificar la cuota o solicitar un aumento, consulta lo siguiente:
- Para verificar la cuota en tu proyecto, consulta Visualiza la cuota específica de una API.
- Si no tienes suficiente cuota, solicita un aumento de la cuota de Filestore o solicita una cuota adicional de Managed Lustre.
- Managed Lustre:
- Instala Cluster Toolkit: Para aprovisionar clústeres de Slurm, debes usar la versión
v1.62.0o posterior de Cluster Toolkit.Para instalar Cluster Toolkit, consulta Configura Cluster Toolkit.
Para obtener más información, consulta Elige una opción de consumo y obtén capacidad.
En la consola de Google Cloud , activa Cloud Shell.
En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
Configura un bucket de almacenamiento
Los esquemas de clústeres usan módulos de Terraform para aprovisionar la infraestructura de nube. Una práctica recomendada cuando se trabaja con Terraform es almacenar el estado de forma remota en un archivo habilitado para la versión. En Google Cloud, puedes crear un bucket de Cloud Storage que tenga habilitado el control de versiones.
Para crear este bucket y habilitar el control de versiones desde la CLI, ejecuta los siguientes comandos:
gcloud storage buckets create gs://BUCKET_NAME \
--project=PROJECT_ID \
--default-storage-class=STANDARD --location=BUCKET_REGION \
--uniform-bucket-level-access
gcloud storage buckets update gs://BUCKET_NAME --versioning
Reemplaza lo siguiente:
BUCKET_NAME: Es un nombre para tu bucket de Cloud Storage que cumple con los requisitos de nombres de buckets.PROJECT_ID: Es el ID del proyecto.BUCKET_REGION: cualquier ubicación disponible.
Abre el directorio de Cluster Toolkit
Asegúrate de estar en el directorio de Cluster Toolkit ejecutando el siguiente comando:
cd cluster-toolkit
Esta implementación de clúster requiere Cluster Toolkit v1.70.0 o
una versión posterior. Para verificar tu versión, puedes ejecutar el siguiente comando:
./gcluster --version
Crea un archivo de implementación
Crea un archivo de implementación para especificar el bucket de Cloud Storage, establecer nombres para tu red y subred, y configurar variables de implementación, como el ID del proyecto, la región y la zona.
Para crear un archivo de implementación, sigue los pasos para el tipo de máquina H4D:
Los parámetros que debes agregar a tu archivo de implementación dependen de la opción de consumo que uses para tu implementación. Selecciona la pestaña que corresponda a la opción de consumo que quieras usar.
Con reserva
Para crear tu archivo de implementación, usa un editor de texto para crear un archivo YAML llamado
h4d-slurm-deployment.yaml y agrega el siguiente contenido.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
h4d_cluster_size: NUMBER_OF_INSTANCES
h4d_reservation_name: RESERVATION_NAME
Reemplaza lo siguiente:
BUCKET_NAME: Es el nombre de tu bucket de Cloud Storage, que creaste en la sección anterior.DEPLOYMENT_NAME: Es un nombre para tu implementación. Si creas varios clústeres, asegúrate de seleccionar un nombre único para cada uno.PROJECT_ID: Es el ID del proyecto.REGION: Es la región que tiene las máquinas reservadas.ZONE: Es la zona en la que deseas aprovisionar el clúster. Si usas una opción de consumo basada en reservas, tu equipo de cuentas proporcionó la información de la región y la zona cuando se entregó la capacidad.NUMBER_OF_INSTANCES: Es la cantidad de instancias de Compute Engine que deseas para el clúster.RESERVATION_NAME: Es el nombre de tu reserva.
Inicio flexible
Para crear tu archivo de implementación, usa un editor de texto para crear un archivo YAML llamado
h4d-slurm-deployment.yaml y agrega el siguiente contenido.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
h4d_cluster_size: NUMBER_OF_INSTANCES
h4d_dws_flex_enabled: true
Reemplaza lo siguiente:
BUCKET_NAME: Es el nombre de tu bucket de Cloud Storage, que creaste en la sección anterior.DEPLOYMENT_NAME: Es un nombre para tu implementación. Si creas varios clústeres, asegúrate de seleccionar un nombre único para cada uno.PROJECT_ID: Es el ID del proyecto.REGION: Es la región en la que deseas aprovisionar tu clúster.ZONE: Es la zona en la que deseas aprovisionar el clúster.NUMBER_OF_INSTANCES: Es la cantidad de instancias de Compute Engine que deseas para el clúster.
Esta implementación aprovisiona nodos de procesamiento estáticos,
lo que significa que el clúster tiene una cantidad establecida de nodos en todo momento. Si, en cambio, quieres habilitar el escalado automático del
clúster, usa el archivo examples/h4d/hpc-slurm-h4d.yaml y edita los valores de
node_count_static y node_count_dynamic_max para que coincidan con lo siguiente:
node_count_static: 0
node_count_dynamic_max: $(vars.h4d_cluster_size)
Spot
Para crear tu archivo de implementación, usa un editor de texto para crear un archivo YAML llamado
h4d-slurm-deployment.yaml y agrega el siguiente contenido.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
h4d_cluster_size: NUMBER_OF_INSTANCES
h4d_enable_spot_vm: true
Reemplaza lo siguiente:
BUCKET_NAME: Es el nombre de tu bucket de Cloud Storage, que creaste en la sección anterior.DEPLOYMENT_NAME: Es un nombre para tu implementación. Si creas varios clústeres, asegúrate de seleccionar un nombre único para cada uno.PROJECT_ID: Es el ID del proyecto.REGION: Es la región en la que deseas aprovisionar tu clúster.ZONE: Es la zona en la que deseas aprovisionar el clúster.NUMBER_OF_INSTANCES: Es la cantidad de instancias de Compute Engine que deseas para el clúster.
Aprovisiona un clúster de Slurm de H4D
Cluster Toolkit aprovisiona el clúster según el archivo de implementación que creaste en el paso anterior y el esquema del clúster predeterminado. Para obtener más información sobre el software que instala el plano, consulta Más información sobre las imágenes personalizadas de Slurm.
Con Cloud Shell, desde el directorio en el que instalaste Cluster Toolkit y creaste el archivo de implementación, puedes aprovisionar el clúster con el siguiente comando, que usa el archivo del plano de Slurm de H4D. Este paso tarda entre 20 y 30 minutos aproximadamente.
./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.yaml --auto-approve
Conéctate al clúster de Slurm
Para acceder a tu clúster, debes acceder al nodo de acceso de Slurm. Para acceder, puedes usar la consola de Google Cloud o Google Cloud CLI.
Console
Vaya a la página Compute Engine > instancias de VM.
Busca el nodo de acceso. Debe tener un nombre con el patrón
DEPLOYMENT_NAME+login-001.En la columna Conectar del nodo de acceso, haz clic en SSH.
gcloud
Para conectarte al nodo de acceso, completa los siguientes pasos:
Identifica el nodo de acceso con el comando
gcloud compute instances list.gcloud compute instances list \ --zones=
ZONE\ --filter="name ~ login" --format "value(name)"Si en el resultado se enumeran varios clústeres de Slurm, puedes identificar tu nodo de acceso por el
DEPLOYMENT_NAMEque especificaste.Usa el comando
gcloud compute sshpara conectarte al nodo de acceso.gcloud compute ssh LOGIN_NODE \ --zone=
ZONE--tunnel-through-iapReemplaza lo siguiente:
ZONE: Es la zona en la que se encuentran las VMs de tu clúster.LOGIN_NODE: Es el nombre del nodo de acceso que identificaste en el paso anterior.
Vuelve a implementar el clúster de Slurm
Si necesitas aumentar la cantidad de nodos de procesamiento o agregar particiones nuevas a tu clúster, es posible que debas actualizar las configuraciones de tu clúster de Slurm volviendo a implementarlo.
Para volver a implementar el clúster con una imagen existente, haz lo siguiente:
Ejecuta el comando siguiente:
./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
Este comando solo se usa para volver a implementar una imagen que ya existe. Solo vuelve a implementar el clúster y su infraestructura.
Destruye el clúster de Slurm
Para quitar el clúster de Slurm y las instancias que contiene, completa los siguientes pasos:
Desconéctate del clúster si aún no lo hiciste.
Antes de ejecutar el comando destroy, navega a la raíz del directorio de Cluster Toolkit. De forma predeterminada, DEPLOYMENT_FOLDER se encuentra en la raíz del directorio de Cluster Toolkit.
Para destruir el clúster, ejecuta lo siguiente:
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
Reemplaza lo siguiente:
DEPLOYMENT_FOLDER: Es el nombre de la carpeta de implementación. Por lo general, es igual a DEPLOYMENT_NAME.
Cuando se complete la eliminación del clúster, deberías ver un mensaje similar al siguiente:
Destroy complete! Resources: xx destroyed.
Para aprender a destruir la infraestructura de forma limpia y obtener instrucciones de implementación manual avanzada, consulta la carpeta de implementación ubicada en la raíz del directorio de Cluster Toolkit: DEPLOYMENT_FOLDER/instructions.txt
¿Qué sigue?
- Verifica el consumo de la reserva
- Cómo ver la topología de las VMs
- Administra los eventos del host en todas las VMs
- Administra los eventos del host en todas las reservas
- Supervisa las VMs en tu clúster de Slurm
- Cómo informar un host defectuoso