Crea un clúster de Slurm autoadministrado para cargas de trabajo de IA

En este documento, se explica cómo configurar e implementar un clúster de Slurm autoadministrado que usa los tipos de máquinas A4X Max, A4X, A4, A3 Ultra, A3 Mega o A3 High. Para obtener más información sobre estos tipos de máquinas optimizados para aceleradores, consulta Tipos de máquinas con GPU.

En los pasos de este documento, se muestra cómo crear un clúster de Slurm con Cluster Toolkit. Cluster Toolkit es una herramienta de código abierto de Google que simplifica la configuración y la implementación de un clúster con planos. Tienes el control total de tu clúster, pero también eres responsable de administrarlo. Si quieres evitar la sobrecarga de administrar un clúster y concentrarte en ejecutar tu carga de trabajo, crea un clúster completamente administrado con Cluster Director.

Limitaciones

Según el tipo de máquina que usen las instancias de Compute Engine en tu clúster, se aplican las siguientes limitaciones:

A4X Max

A4X

A4

  • No recibirás descuentos por uso continuo ni descuentos por compromiso de uso flexible para las instancias que usan un tipo de máquina A4.
  • Solo puedes usar un tipo de máquina A4 en ciertas regiones y zonas.
  • No puedes usar Persistent Disk (regional o zonal). Solo puedes usar Google Cloud Hyperdisk.
  • El tipo de máquina A4 solo está disponible en la plataforma de CPU Emerald Rapids.
  • No puedes cambiar el tipo de máquina de una instancia a un tipo de máquina A4 ni desde este. Debes crear una instancia nueva con este tipo de máquina.
  • Los tipos de máquinas A4 no admiten usuarios únicos.
  • No puedes ejecutar sistemas operativos Windows en un tipo de máquina A4.
  • En el caso de las instancias A4, cuando usas ethtool -S para supervisar la conexión en red de la GPU, no se actualizan los contadores de puertos físicos que terminan en _phy. Este es el comportamiento esperado para las instancias que usan la arquitectura de función virtual (VF) de MRDMA. Para obtener más información, consulta Funciones de MRDMA y herramientas de supervisión de redes.
  • No puedes conectar discos Hyperdisk ML creados antes del 4 de febrero de 2026 a tipos de máquinas A4.

A3 Ultra

  • No recibirás descuentos por uso continuo ni descuentos por compromiso de uso flexible para las instancias que usan un tipo de máquina A3 ultra.
  • Solo puedes usar un tipo de máquina A3 ultra en ciertas regiones y zonas.
  • No puedes usar Persistent Disk (regional o zonal). Solo puedes usar Google Cloud Hyperdisk.
  • El tipo de máquina A3 Ultra solo está disponible en la plataforma de CPU Emerald Rapids.
  • Los cambios de tipo de máquina no se admiten para el tipo de máquina A3 Ultra. Para cambiar a este tipo de máquina o dejar de usarlo, debes crear una instancia nueva.
  • No puedes ejecutar sistemas operativos Windows en un tipo de máquina A3 Ultra.
  • Los tipos de máquinas A3 Ultra no admiten usuarios únicos.
  • En el caso de las instancias de A3 Ultra, cuando usas ethtool -S para supervisar las redes de GPU, no se actualizan los contadores de puertos físicos que terminan en _phy. Este es el comportamiento esperado para las instancias que usan la arquitectura de función virtual (VF) de MRDMA. Para obtener más información, consulta Funciones de MRDMA y herramientas de supervisión de redes.

A3 Mega

  • No recibirás descuentos por uso continuo ni descuentos por compromiso de uso flexible para las instancias que usan un tipo de máquina A3 Mega.
  • Solo puedes usar un tipo de máquina A3 Mega en ciertas regiones y zonas.
  • No puedes usar Persistent Disk regional en una instancia que usa un tipo de máquina A3 Mega.
  • El tipo de máquina A3 Mega solo está disponible en la plataforma de CPU Sapphire Rapids.
  • No se admiten los cambios de tipo de máquina para el tipo de máquina Mega A3. Para cambiar a este tipo de máquina o dejar de usarlo, debes crear una instancia nueva.
  • No puedes ejecutar sistemas operativos Windows en un tipo de máquina A3 Mega.

A3 High

Antes de comenzar

Antes de crear un clúster de Slurm, si aún no lo hiciste, completa los siguientes pasos:

  1. Elige una opción de consumo: La opción de consumo que elijas determinará cómo obtendrás y usarás los recursos de GPU. Para obtener más información, consulta Elige una opción de consumo.
  2. Obtención de capacidad: El proceso para obtener capacidad difiere para cada opción de consumo. Para obtener información sobre el proceso para obtener capacidad para la opción de consumo que elegiste, consulta Descripción general de la capacidad.
  3. Verifica que tengas suficiente cuota de capacidad de Filestore: Debes tener suficiente cuota de Filestore en tu región objetivo antes de la implementación. La capacidad mínima requerida depende de los tipos de máquinas de tu clúster:
    • A4X Max, A4X, A4, A3 Ultra y A3 Mega: Requiere un mínimo de 10 TiB (10,240 GiB) de capacidad HIGH_SCALE_SSD (zonal).
    • A3 High: Requiere un mínimo de 2.5 TiB (2,560 GiB) de capacidad de BASIC_SSD (estándar).

    Para verificar la cuota o solicitar un aumento, consulta lo siguiente:

  4. Instala Cluster Toolkit: Para aprovisionar clústeres de Slurm, debes usar la versión v1.62.0 o posterior de Cluster Toolkit.

    Para instalar Cluster Toolkit, consulta Configura Cluster Toolkit.

Roles obligatorios

Para obtener los permisos que necesitas para implementar un clúster de Slurm, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Configura un bucket de almacenamiento

Los esquemas de clústeres usan módulos de Terraform para aprovisionar la infraestructura de Cloud. 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:

Instala Cluster Toolkit

Para usar Slurm con Google Cloud, debes instalar Cluster Toolkit. Para Linux y macOS, te recomendamos que instales el paquete previo a la compilación.

Después de instalar Cluster Toolkit, ve al directorio que contiene el objeto binario gcluster:

  • Si instalaste el paquete precompilado, cambia al directorio gcluster-bundle:

    cd gcluster-bundle
  • Si compilaste el objeto binario desde la fuente, cambia a cluster-toolkit:

    cd cluster-toolkit

    Esta implementación de clúster requiere Cluster Toolkit v1.62.0 o una versión posterior. Para verificar la versión actual, ejecuta el siguiente comando:

    ./gcluster --version

Crea un archivo de implementación

Crea un archivo de implementación que puedas usar 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 correspondientes al tipo de máquina y la opción de consumo que necesites.

A4X Max

Para crear tu archivo de implementación, usa un editor de texto para crear un archivo YAML llamado a4xmax-bm-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
  a4x_max_cluster_size: NUMBER_OF_INSTANCES
  a4x_max_reservation_name: RESERVATION_NAME

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu 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 te 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 metal desnudo de A4X Max en tu clúster. Puedes especificar cualquier cantidad de instancias. Sin embargo, las instancias A4X Max están interconectadas físicamente por un sistema NVLink de varios nodos en grupos de 18 instancias (72 GPUs) para formar un dominio NVLink.

    Para obtener un rendimiento óptimo de la red, te recomendamos que especifiques un valor que sea múltiplo de 18 instancias (por ejemplo, 18, 36 o 54). Cuando creas un clúster de A4X Max, el blueprint de A4X Max crea y aplica automáticamente una política de posición compacta con una topología de GPU de 1x72 para cada grupo de 18 instancias.

  • RESERVATION_NAME: Es el nombre de tu reserva.

A4X

Para crear tu archivo de implementación, usa un editor de texto para crear un archivo YAML llamado a4xhigh-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
  a4x_cluster_size: NUMBER_OF_VMS
  a4x_reservation_name: RESERVATION_NAME

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu 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 te proporcionó la información de la región y la zona cuando se entregó la capacidad.
  • NUMBER_OF_VMS: Es la cantidad de VMs de A4X en tu clúster. Puedes especificar cualquier cantidad de VMs. Sin embargo, las VMs A4X están interconectadas físicamente por un sistema NVLink de varios nodos en grupos de 18 VMs (72 GPUs) para formar un dominio NVLink.

    Para obtener un rendimiento óptimo de la red, te recomendamos que especifiques un valor que sea múltiplo de 18 VMs (por ejemplo, 18, 36 o 54). Cuando creas un clúster de A4X, el blueprint de A4X crea y aplica automáticamente una política de posición compacta con una topología de GPU de 1x72 para cada grupo de 18 VMs. Para obtener más información sobre la topología de A4X, consulta Conceptos básicos de A4X.

  • RESERVATION_NAME: Es el nombre de tu reserva.

A4

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 al modelo de aprovisionamiento de tu opción de consumo.

Con reserva

Para crear tu archivo de implementación, usa un editor de texto para crear un archivo YAML llamado a4high-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
  a4h_cluster_size: NUMBER_OF_VMS
  a4h_reservation_name: RESERVATION_NAME

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu 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 te proporcionó la información de la región y la zona cuando se entregó la capacidad.
  • NUMBER_OF_VMS: Es la cantidad de VMs 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 a4high-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
  a4h_cluster_size: NUMBER_OF_VMS
  a4h_dws_flex_enabled: true

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • REGION: Es la región en la que deseas aprovisionar tu clúster.
  • ZONE: Es la zona en la que deseas aprovisionar tu clúster.
  • NUMBER_OF_VMS: Es la cantidad de VMs 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 fija de nodos en todo momento. Si, en cambio, quieres habilitar el ajuste de escala automático de tu clúster, usa el archivo examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml y edita los valores de node_count_static y node_count_dynamic_max para que coincidan con los siguientes:

      node_count_static: 0
      node_count_dynamic_max: $(vars.a4h_cluster_size)

Spot

Para crear tu archivo de implementación, usa un editor de texto para crear un archivo YAML llamado a4high-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
  a4h_cluster_size: NUMBER_OF_VMS
  a4h_enable_spot_vm: true

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • REGION: Es la región en la que deseas aprovisionar tu clúster.
  • ZONE: Es la zona en la que deseas aprovisionar tu clúster.
  • NUMBER_OF_VMS: Es la cantidad de VMs que deseas para el clúster.

A3 Ultra

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 al modelo de aprovisionamiento de tu opción de consumo.

Con reserva

Para crear tu archivo de implementación, usa un editor de texto para crear un archivo YAML llamado a3ultra-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
  a3u_cluster_size: NUMBER_OF_VMS
  a3u_reservation_name: RESERVATION_NAME

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu 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 te proporcionó la información de la región y la zona cuando se entregó la capacidad.
  • NUMBER_OF_VMS: Es la cantidad de VMs 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 a3ultra-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
  a3u_cluster_size: NUMBER_OF_VMS
  a3u_dws_flex_enabled: true

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • REGION: Es la región en la que deseas aprovisionar tu clúster.
  • ZONE: Es la zona en la que deseas aprovisionar tu clúster.
  • NUMBER_OF_VMS: Es la cantidad de VMs 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 fija de nodos en todo momento. Si, en cambio, quieres habilitar el ajuste de escala automático de tu clúster, usa el archivo examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml y edita los valores de node_count_static y node_count_dynamic_max para que coincidan con los siguientes:

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3u_cluster_size)

Spot

Para crear tu archivo de implementación, usa un editor de texto para crear un archivo YAML llamado a3ultra-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
  a3u_cluster_size: NUMBER_OF_VMS
  a3u_enable_spot_vm: true

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • REGION: Es la región en la que deseas aprovisionar tu clúster.
  • ZONE: Es la zona en la que deseas aprovisionar tu clúster.
  • NUMBER_OF_VMS: Es la cantidad de VMs que deseas para el clúster.

A3 Mega

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 al modelo de aprovisionamiento de tu opción de consumo.

Con reserva

Para crear tu archivo de implementación, crea un archivo YAML llamado a3mega-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
  network_name_system: SYSTEM_NETWORK_NAME
  subnetwork_name_system: SYSTEM_SUBNET_NAME
  slurm_cluster_name: CLUSTER_NAME
  a3mega_cluster_size: NUMBER_OF_VMS
  a3mega_reservation_name: RESERVATION_NAME
  a3mega_partition_name: PARTITION_NAME

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • SYSTEM_NETWORK_NAME: Es el nombre de la red de VPC que se usará para la red del sistema.
  • SYSTEM_SUBNET_NAME: Es el nombre de la subred que se usará para la red del sistema.
  • CLUSTER_NAME: Es un nombre para tu clúster de Slurm.
  • 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 te proporcionó la información de la región y la zona cuando se entregó la capacidad.
  • NUMBER_OF_VMS: Es la cantidad de VMs que deseas para el clúster.
  • RESERVATION_NAME: Es el nombre de tu reserva.
  • PARTITION_NAME: Es un nombre para la partición de Slurm.

Inicio flexible

Para crear tu archivo de implementación, crea un archivo YAML llamado a3mega-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
  network_name_system: SYSTEM_NETWORK_NAME
  subnetwork_name_system: SYSTEM_SUBNET_NAME
  slurm_cluster_name: CLUSTER_NAME
  a3mega_cluster_size: NUMBER_OF_VMS
  a3mega_dws_flex_enabled: true

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • SYSTEM_NETWORK_NAME: Es el nombre de la red de VPC que se usará para la red del sistema.
  • SYSTEM_SUBNET_NAME: Es el nombre de la subred que se usará para la red del sistema.
  • CLUSTER_NAME: Es un nombre para tu clúster de Slurm.
  • REGION: Es la región en la que deseas aprovisionar tu clúster.
  • ZONE: Es la zona en la que deseas aprovisionar tu clúster.
  • NUMBER_OF_VMS: Es la cantidad de VMs 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 fija de nodos en todo momento. Si, en cambio, quieres habilitar el ajuste de escala automático de tu clúster, usa el archivo examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml y edita los valores de node_count_static y node_count_dynamic_max para que coincidan con los siguientes:

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3mega_cluster_size)

Spot

Para crear tu archivo de implementación, crea un archivo YAML llamado a3mega-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
  network_name_system: SYSTEM_NETWORK_NAME
  subnetwork_name_system: SYSTEM_SUBNET_NAME
  slurm_cluster_name: CLUSTER_NAME
  a3mega_cluster_size: NUMBER_OF_VMS
  a3mega_enable_spot_vm: true

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • SYSTEM_NETWORK_NAME: Es el nombre de la red de VPC que se usará para la red del sistema.
  • SYSTEM_SUBNET_NAME: Es el nombre de la subred que se usará para la red del sistema.
  • CLUSTER_NAME: Es un nombre para tu clúster de Slurm.
  • REGION: Es la región en la que deseas aprovisionar tu clúster.
  • ZONE: Es la zona en la que deseas aprovisionar tu clúster.
  • NUMBER_OF_VMS: Es la cantidad de VMs que deseas para el clúster.

A3 High

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 al modelo de aprovisionamiento de tu opción de consumo.

Con reserva

Para crear tu archivo de implementación, crea un archivo YAML llamado a3high-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
  tcpx_kernel_login: TCPX_KERNEL_LOGIN
  tcpx_kernel_password: TCPX_KERNEL_PASSWORD
  keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY

  network_name_system: SYSTEM_NETWORK_NAME
  subnetwork_name_system: SYSTEM_SUBNET_NAME
  slurm_cluster_name: CLUSTER_NAME
  a3_static_cluster_size: NUMBER_OF_VMS
  a3_reservation_name: RESERVATION_NAME
  a3_partition_name: PARTITION_NAME

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • TCPX_KERNEL_LOGIN, TCPX_KERNEL_PASSWORD y KEYSERVER_UBUNTU_KEY: Son las credenciales técnicas para las imágenes optimizadas de A3 High. Tu equipo de cuentas de Google Cloud te proporcionará estos valores. Para obtener más información, consulta Cómo obtener credenciales para GPUDirect-TCPX.
  • SYSTEM_NETWORK_NAME: Es el nombre de la red de VPC que se usará para la red del sistema.
  • SYSTEM_SUBNET_NAME: Es el nombre de la subred que se usará para la red del sistema.
  • CLUSTER_NAME: Es un nombre para tu clúster de Slurm.
  • 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 te proporcionó la información de la región y la zona cuando se entregó la capacidad.
  • NUMBER_OF_VMS: Es la cantidad de VMs que deseas para el clúster.
  • RESERVATION_NAME: Es el nombre de tu reserva.
  • PARTITION_NAME: Es un nombre para la partición de Slurm.

Inicio flexible

Para crear tu archivo de implementación, crea un archivo YAML llamado a3high-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
  tcpx_kernel_login: TCPX_KERNEL_LOGIN
  tcpx_kernel_password: TCPX_KERNEL_PASSWORD
  keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY

  network_name_system: SYSTEM_NETWORK_NAME
  subnetwork_name_system: SYSTEM_SUBNET_NAME
  slurm_cluster_name: CLUSTER_NAME
  a3_static_cluster_size: NUMBER_OF_VMS
  a3_dws_flex_enabled: true

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • TCPX_KERNEL_LOGIN, TCPX_KERNEL_PASSWORD y KEYSERVER_UBUNTU_KEY: Son las credenciales técnicas para las imágenes optimizadas de A3 High. Tu equipo de cuentas de Google Cloud te proporcionará estos valores. Para obtener más información, consulta Cómo obtener credenciales para GPUDirect-TCPX.
  • SYSTEM_NETWORK_NAME: Es el nombre de la red de VPC que se usará para la red del sistema.
  • SYSTEM_SUBNET_NAME: Es el nombre de la subred que se usará para la red del sistema.
  • CLUSTER_NAME: Es un nombre para tu clúster de Slurm.
  • REGION: Es la región en la que deseas aprovisionar tu clúster.
  • ZONE: Es la zona en la que deseas aprovisionar tu clúster.
  • NUMBER_OF_VMS: Es la cantidad de VMs 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 fija de nodos en todo momento. Si, en cambio, quieres habilitar el ajuste de escala automático de tu clúster, usa el archivo examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml y edita los valores de node_count_static y node_count_dynamic_max para que coincidan con los siguientes:

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3_static_cluster_size)

Spot

Para crear tu archivo de implementación, crea un archivo YAML llamado a3high-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
  tcpx_kernel_login: TCPX_KERNEL_LOGIN
  tcpx_kernel_password: TCPX_KERNEL_PASSWORD
  keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY

  network_name_system: SYSTEM_NETWORK_NAME
  subnetwork_name_system: SYSTEM_SUBNET_NAME
  slurm_cluster_name: CLUSTER_NAME
  a3_static_cluster_size: NUMBER_OF_VMS
  a3_enable_spot_vm: true

Reemplaza lo siguiente:

  • BUCKET_NAME: Es el nombre del 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: el ID de tu proyecto
  • TCPX_KERNEL_LOGIN, TCPX_KERNEL_PASSWORD y KEYSERVER_UBUNTU_KEY: Son las credenciales técnicas para las imágenes optimizadas de A3 High. Tu equipo de cuentas de Google Cloud te proporcionará estos valores. Para obtener más información, consulta Cómo obtener credenciales para GPUDirect-TCPX.
  • SYSTEM_NETWORK_NAME: Es el nombre de la red de VPC que se usará para la red del sistema.
  • SYSTEM_SUBNET_NAME: Es el nombre de la subred que se usará para la red del sistema.
  • CLUSTER_NAME: Es un nombre para tu clúster de Slurm.
  • REGION: Es la región en la que deseas aprovisionar tu clúster.
  • ZONE: Es la zona en la que deseas aprovisionar tu clúster.
  • NUMBER_OF_VMS: Es la cantidad de VMs que deseas para el clúster.

Aprovisiona un clúster de Slurm

Cluster Toolkit aprovisiona el clúster según el archivo de implementación que creaste en el paso anterior y el plano de HPC predeterminado. Para obtener más información sobre el software que instala el blueprint, incluidos los controladores de NVIDIA y CUDA, obtén más información sobre las imágenes personalizadas de Slurm.

Para aprovisionar el clúster, selecciona una de las siguientes opciones para ejecutar el comando de tu tipo de máquina desde el directorio del kit de herramientas de clústeres. Este paso tarda entre 20 y 30 minutos aproximadamente.

A4X Max

./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --auto-approve

A4X

./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --auto-approve

A4

./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve

A3 Ultra

./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --auto-approve

A3 Mega

./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --auto-approve

A3 High

./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --auto-approve

Conéctate al clúster de Slurm

Para acceder a tu clúster, debes acceder al nodo de acceso de Slurm. Si se producen errores cuando intentas conectarte a tu nodo, consulta Soluciona problemas de SSH.

Para conectarte al nodo de acceso de tu clúster, selecciona una de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Ubica el nodo de acceso, cuyo nombre es DEPLOYMENT_NAME-login-001.

  3. En la fila del nodo, en la columna Conectar, haz clic en SSH.

gcloud

Para conectarte al nodo de acceso de tu clúster, completa los siguientes pasos:

  1. Para identificar el nodo de acceso, usa el siguiente comando gcloud compute instances list:

    gcloud compute instances list \
        --filter="name ~ login" \
        --format "value(name)" \
        --zones=ZONE
    

    Si el resultado muestra varios clústeres de Slurm, puedes identificar tu nodo de acceso con el DEPLOYMENT_NAME que especificaste en los pasos anteriores.

  2. Para conectarte al nodo de acceso, usa el comando gcloud compute ssh con la marca --tunnel-through-iap:

    gcloud compute ssh LOGIN_NODE \
        --tunnel-through-iap \
        --zone=ZONE
    

    Reemplaza lo siguiente:

    • ZONE: Es la zona en la que existe el nodo.

    • LOGIN_NODE: Es el nombre del nodo de acceso.

Cómo probar el rendimiento de la red en el clúster de Slurm

Te recomendamos que valides la funcionalidad de los clústeres aprovisionados. Para ello, usa las pruebas de NCCL, que son pruebas de la biblioteca de comunicación colectiva de NVIDIA (NCCL) optimizadas para el entorno de Google.

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 la configuración de tu clúster de Slurm volviéndolo a implementar. Para acelerar la reimplementación de un clúster, puedes usar una imagen existente de una implementación anterior. Para evitar crear imágenes nuevas durante una reimplementación, especifica la marca --only.

Para volver a implementar el clúster con una imagen existente, haz lo siguiente:

  1. Conéctate al clúster

  2. Según el tipo de máquina que usa tu clúster, selecciona una de las siguientes opciones. El comando de esta sección solo se usa para las reimplementaciones en las que ya existe una imagen. El comando solo vuelve a implementar el clúster y su infraestructura.

    A4X Max

    ./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --only cluster-env,cluster --auto-approve -w

    A4X

    ./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --only cluster-env,cluster --auto-approve -w

    A4

    ./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve

    A3 Ultra

    ./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve

    A3 Mega

    ./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve

    A3 High

    ./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve

Destruye el clúster de Slurm

De forma predeterminada, los esquemas de A4X Max, A4X, A4 y A3 Ultra habilitan la protección contra eliminaciones en la instancia de Filestore. Para borrar la instancia de Filestore cuando destruyas el clúster de Slurm, inhabilita la protección contra eliminaciones antes de ejecutar el comando de destrucción. Para obtener instrucciones, consulta Configura o quita la protección contra la eliminación en una instancia existente.

Para destruir tu clúster de Slurm, completa los siguientes pasos:

  1. Si aún no lo hiciste, desconéctate del clúster .

  2. Antes de ejecutar el comando destroy, navega a la raíz del directorio de Cluster Toolkit.

  3. Para destruir el clúster, ejecuta el siguiente comando:

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    Reemplaza DEPLOYMENT_FOLDER por el nombre de la carpeta de implementación.

Cuando Cluster Toolkit destruye tu clúster, el resultado es similar al siguiente:

Destroy complete! Resources: DEPLOYMENT_NAME destroyed.

¿Qué sigue?