En esta página, se proporciona el método directo controlado por la API para crear y administrar
un clúster de entrenamiento. Aprenderás a definir
la configuración completa de tu clúster, incluidos los nodos de acceso, las particiones de GPU de alto rendimiento,
como A4, y los parámetros de configuración del organizador de Slurm, en un archivo JSON.
También se incluye cómo usar las llamadas a la API de REST y curl para implementar esta
configuración, crear el clúster y administrar su ciclo de vida con
las operaciones GET, LIST, UPDATE y DELETE.
Define la configuración del clúster
Crea un archivo JSON para definir la configuración completa de tu clúster de entrenamiento.
Si la política de tu organización prohíbe las direcciones IP públicas en las instancias de procesamiento, implementa el clúster de entrenamiento
con el parámetro enable_public_ips: false y usa Cloud NAT para
la salida a Internet.
El primer paso para aprovisionar un clúster de entrenamiento es definir su configuración completa en un archivo JSON. Este archivo actúa como el plano de tu clúster y especifica todo, desde su nombre y configuración de red hasta el hardware para sus nodos de acceso y de trabajador.
En la siguiente sección, se proporcionan varios archivos de configuración JSON completos que sirven como plantillas prácticas para una variedad de casos de uso comunes. Consulta esta lista para encontrar el ejemplo que más se ajuste a tus necesidades y úsalo como punto de partida.
GPU solo con Filestore: Es una configuración estándar para el entrenamiento de GPU de uso general.
GPU con Filestore y Managed Lustre: Es una configuración avanzada para trabajos con uso intensivo de E/S.
GPU con secuencia de comandos de inicio: Se muestra cómo ejecutar comandos personalizados en los nodos durante el inicio.
Clúster solo de CPU: Es una configuración básica que solo usa recursos de CPU.
Configuración avanzada de Slurm: Se muestra cómo configurar los parámetros de
slurm.confen el alcance del clúster, la partición o el grupo de nodos, y cómo ejecutar secuencias de comandos de prólogo y epílogo.
Cada ejemplo va seguido de una descripción detallada de los parámetros clave que se usan en esa configuración específica.
GPU solo con Filestore
Esta es la configuración estándar. Proporciona una instancia de Filestore que
sirve como el directorio /home para el clúster, adecuado para el uso general y el almacenamiento de
datos del usuario.
En el siguiente ejemplo, se muestra el contenido de gpu-filestore.json. Esta
especificación crea un clúster con una partición de GPU. Puedes usarlo como plantilla y
modificar valores como machineType o nodeCount para que se adapten a tus necesidades.
Para obtener una lista de parámetros, consulta Referencia de parámetros.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 200 }, "labels": { "example-key": "example-value" } }, { "id": "a4", "machine_spec": { "machine_type": "a4-highgpu-8g", "accelerator_type": "NVIDIA_B200", "accelerator_count": 8, "reservation_affinity": { "reservationAffinityType": "RESERVATION_AFFINITY_TYPE", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME" ] } }, "provisioning_model": "RESERVATION", "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "hyperdisk-balanced", "boot_disk_size_gb": 200 }, "labels": { "example-key": "example-value" } } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "partitions": [ { "id": "a4", "node_pool_ids": [ "a4" ] } ], "login_node_pool_id": "login" } } }
GPU con Filestore y Managed Lustre
Esta configuración avanzada incluye la instancia de Filestore estándar, además de un sistema de archivos Lustre de alto rendimiento. Elige esta opción si tus trabajos de entrenamiento requieren acceso de alta capacidad de procesamiento a conjuntos de datos grandes.
Para obtener una lista de parámetros, consulta Referencia de parámetros.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 200 }, "lustres": [ "projects/PROJECT_ID/locations/ZONE/instances/LUSTRE" ] }, { "id": "a4", "machine_spec": { "machine_type": "a4-highgpu-8g", "accelerator_type": "NVIDIA_B200", "accelerator_count": 8, "reservation_affinity": { "reservationAffinityType": "RESERVATION_AFFINITY_TYPE", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME" ] } }, "provisioning_model": "RESERVATION", "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "hyperdisk-balanced", "boot_disk_size_gb": 200 }, "lustres": [ "projects/PROJECT_ID/locations/ZONE/instances/LUSTRE" ] } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "partitions": [ { "id": "a4", "node_pool_ids": [ "a4" ] } ], "login_node_pool_id": "login" } } }
GPU con secuencia de comandos de inicio
En este ejemplo, se muestra cómo agregar una secuencia de comandos personalizada a un grupo de nodos. Esta secuencia de comandos se ejecuta en todos los nodos de ese grupo durante el inicio. Para configurar esto, agrega los campos pertinentes a la definición de tu grupo de nodos, además de los parámetros de configuración generales. Para obtener una lista de parámetros y sus descripciones, consulta la Referencia de parámetros.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 200 }, "startup_script" : "#Example script\nsudo mkdir -p /data\necho 'Script Finished'\n" }, { "id": "a4", "machine_spec": { "machine_type": "a4-highgpu-8g", "accelerator_type": "NVIDIA_B200", "accelerator_count": 8, "reservation_affinity": { "reservationAffinityType": "RESERVATION_AFFINITY_TYPE", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME" ] } }, "provisioning_model": "PROVISIONING_MODEL", "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "enable_public_ips": true, "zone": "ZONE", "boot_disk": { "boot_disk_type": "hyperdisk-balanced", "boot_disk_size_gb": 200 }, "startup_script" : "#Example script\nsudo mkdir -p /data\necho 'Script Finished'\n" } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "partitions": [ { "id": "a4", "node_pool_ids": [ "a4" ] } ], "login_node_pool_id": "login" } } }
Clúster solo de CPU
Para aprovisionar un entorno de clúster de entrenamiento, primero debes definir su configuración completa en un archivo JSON. Este archivo actúa como el plano de tu clúster, ya que especifica todo, desde su nombre y configuración de red hasta el hardware para sus nodos de acceso y nodos trabajadores.
Para obtener una lista de parámetros, consulta Referencia de parámetros.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "cpu", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } }, { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "partitions": [ { "id": "cpu", "node_pool_ids": [ "cpu" ] } ], "login_node_pool_id": "login" } } }
Configuración avanzada de Slurm
En este ejemplo, se proporciona un control detallado sobre Slurm mediante la configuración de
los parámetros de slurm.conf por nombre y la ejecución de secuencias de comandos de prólogo y epílogo para
la configuración y la limpieza automatizadas de los trabajos. Los parámetros se pueden configurar para todo el clúster, para una sola partición o
para un solo grupo de nodos.
Hay tres mapas de configuración, uno para cada registro slurm.conf:
configen la especificación de Slurm para la configuración de todo el clústerconfigen una partición- Entrada
node_setspara un grupo de nodos
Para conocer las reglas sobre los nombres y valores de los parámetros, y qué parámetros se rechazan, consulta Mapas de configuración de Slurm.
No es necesario que los definas en el momento de la creación. Los tres mapas se pueden cambiar en un clúster en ejecución, sin reiniciar los nodos ni interrumpir los trabajos en cola. Consulta Actualiza los parámetros de configuración de Slurm.
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "cpu", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } }, { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": MIN_NODE_COUNT, "max_node_count": MAX_NODE_COUNT }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "config": { "PriorityType": "priority/multifactor", "PriorityWeightAge": "1000", "PriorityWeightFairshare": "10000", "PreemptType": "preempt/partition_prio", "PreemptMode": "SUSPEND,GANG", "SchedulerParameters": "bf_continue,bf_window=1440,bf_resolution=600", "AccountingStorageEnforce": "limits,qos" }, "prolog_bash_scripts": [ "#!/bin/bash\necho 'Prolog script running'" ], "epilog_bash_scripts": [ "#!/bin/bash\necho 'Epilog script running'" ], "partitions": [ { "id": "cpu", "node_pool_ids": [ "cpu" ], "config": { "MaxTime": "4-00:00:00", "DefMemPerCPU": "4096", "PriorityTier": "20" } } ], "node_sets": [ { "node_pool_id": "cpu", "config": { "Weight": "10", "Features": "cpu,spot" } } ], "login_node_pool_id": "login" } } }
El mapa con alcance de clúster establece la prioridad de varios factores, la interrupción de la prioridad de la partición y
SchedulerParameters, cuyo término bf_continue muestra la forma compuesta: un
término simple activa una marca y los términos se separan por comas. El mapa de particiones limita el tiempo de ejecución del trabajo y
la memoria predeterminada solo para la partición cpu, y las etiquetas de entrada node_sets
etiquetan los nodos de ese grupo para que los trabajos puedan seleccionarlos con --constraint.
Una vez que tu clúster esté definido en un archivo JSON, usa los siguientes comandos de la API de REST
para implementarlo y administrarlo. En los ejemplos, se usa un alias gcurl,
que es un acceso directo autenticado y conveniente para interactuar con los extremos
de la API. Estos comandos abarcan todo el ciclo de vida, desde la implementación inicial
del clúster hasta la actualización de un clúster, la obtención de su estado, la creación de una lista de todos los clústeres
y, por último, la eliminación del clúster.
Autenticación
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
Crea un archivo JSON
Crea un archivo JSON (por ejemplo, @cpu-cluster.json) para especificar la
configuración de tu clúster de entrenamiento de modelos.
Implementa el clúster
Una vez que hayas creado el archivo de configuración JSON, puedes implementar el clúster con la API de REST.
Configura las variables de entorno
Antes de ejecutar el comando, establece las siguientes variables de entorno. Esto hace que el comando de la API sea más limpio y fácil de administrar.
- PROJECT_ID: Es el ID del proyecto de Google Cloud en el que se creará el clúster.
- REGION: Es la región de Google Cloud para el clúster y sus recursos.
- ZONE: Es la zona de Google Cloud en la que se aprovisionarán los recursos del clúster.
- CLUSTER_ID: Es un identificador único para tu clúster de entrenamiento, que también se usa como prefijo para nombrar recursos relacionados.
Ejecuta el comando create
Ahora, ejecuta el siguiente comando de gcurl. Usa el archivo JSON (en este ejemplo,
cpu-cluster.json) como el cuerpo de la solicitud
y las variables de entorno que acabas de configurar para crear el extremo de API y los parámetros
de consulta.
gcurl -X POST -d @cpu-cluster.json https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?model_development_cluster_id=CLUSTER_ID
Una vez que comience la implementación, se generará un ID de operación. Asegúrate de copiar este ID. Lo necesitarás para validar tu clúster en el siguiente paso.
gcurl -X POST -d @cpu-cluster.json https://us-central1-aiplatform.googleapis.com/v1beta1/projects/managedtraining-project/locations/us-central1/modelDevelopmentClusters?model_development_cluster_id=training { "name": "projects/1059558423163/locations/us-central1/operations/2995239222190800896", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateModelDevelopmentClusterOperationMetadata", "genericMetadata": { "createTime": "2025-10-24T14:16:59.233332Z", "updateTime": "2025-10-24T14:16:59.233332Z" }, "progressMessage": "Create Model Development Cluster request received, provisioning..." }
Valida la implementación del clúster
Realiza un seguimiento del progreso de la implementación con el ID de operación que se proporcionó cuando
implementaste el clúster. Por ejemplo, 2995239222190800896 es el ID de la operación
en el ejemplo citado antes.
gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
En resumen
Cuando envías la configuración del clúster con el comando POST gcurl, se inicia
el aprovisionamiento del clúster, que es una operación asíncrona de larga
duración. La API devuelve de inmediato una respuesta que contiene un Operation ID.
Es fundamental que guardes este ID, ya que lo usarás en los siguientes pasos para
supervisar el progreso de la implementación, verificar que el clúster se haya creado
correctamente y administrar su ciclo de vida.
Referencia del parámetro
En la siguiente lista, se describen todos los parámetros que se usan en los ejemplos de configuración. Los parámetros se organizan en grupos lógicos según el recurso que configuran.
Configuración general y de red
- DISPLAY_NAME: Es un nombre único para tu clúster de entrenamiento. La cadena solo puede contener caracteres alfanuméricos en minúscula, debe comenzar con una letra y tiene un límite de 10 caracteres.
- PROJECT_ID: Es el ID del proyecto de Google Cloud .
- REGION: Es la región de Google Cloud en la que se ubicarán el clúster y sus recursos.
- NETWORK: Es la red de nube privada virtual que se usará para los recursos del clúster.
- ZONE: Es la zona de Google Cloud para el clúster y sus recursos.
- SUBNETWORK: Es la subred que se usará para los recursos del clúster.
Configuración de grupos de nodos
Los siguientes parámetros se usan para definir los grupos de nodos de acceso y de nodos trabajadores.
Configuración común de los grupos de nodos
-
ID: Es un identificador único para el grupo de nodos dentro del clúster
(por ejemplo, "
login", "a4", "cpu"). -
PROVISIONING_MODEL: Es el modelo de aprovisionamiento del nodo trabajador
(por ejemplo,
ON_DEMAND,SPOT,RESERVATION,FLEX_START). -
MACHINE_TYPE: Es el tipo de máquina para el nodo trabajador
(por ejemplo,
a3-highgpu-8g,a3-megagpu-8g,a3-ultragpu-8g,a4-highgpu-8g). Para obtener la lista completa de tipos de máquinas compatibles, consulta Recursos de procesamiento. -
MIN_NODE_COUNT: El
MIN_NODE_COUNTdebe ser igual que elMAX_NODE_COUNT. -
MAX_NODE_COUNT: Para el grupo de nodos de acceso, el
MAX_NODE_COUNTdebe ser el mismo que elMIN_NODE_COUNT. -
ENABLE_PUBLIC_IPS: Es un valor booleano (
trueofalse) para determinar si el nodo de acceso tiene una dirección IP pública. -
BOOT_DISK_TYPE: Es el tipo de disco de arranque para el nodo de acceso (por ejemplo,
pd-standard,pd-ssd). - BOOT_DISK_SIZE_GB: Es el tamaño del disco de arranque en GB para el nodo de acceso.
- LABELS: Es un conjunto de pares clave-valor para etiquetar el grupo de nodos.
-
NODE_IMAGE (corresponde a
node_imagedentro de un objetonode_pools): Es la imagen de VM desde la que se inician los nodos del grupo de nodos, como una ruta de acceso de recursos de imagen completa o de familia de imágenes (por ejemplo,projects/IMAGE_PROJECT/global/images/IMAGEoprojects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY). Si la omites, el grupo de nodos usa la imagen predeterminada actual para su tipo de máquina, que avanza con el tiempo. Establécelo para mantener el grupo de nodos en una imagen específica. Si cambias la imagen de un grupo de nodos, se vuelven a crear sus nodos.
Configuración de almacenamiento adicional
-
FILESTORES (corresponde a
filestoresdentro de un objetonode_pools): Es una lista de instancias de Filestore existentes que se activarán en el grupo de nodos para el acceso a archivos compartidos. -
LUSTRES (corresponde a
lustresdentro de un objetonode_pools): Es una lista de instancias de Lustre preexistentes que se activarán en el grupo de nodos para acceder a archivos de alto rendimiento.
Configuración específica del trabajador
-
ACCELERATOR_TYPE: Es el acelerador de GPU correspondiente que se conectará a los nodos trabajadores.
Los valores admitidos son los que se detallan a continuación:
NVIDIA_H100_80GBNVIDIA_H100_MEGA_80GBNVIDIA_H200_141GBNVIDIA_B200
- ACCELERATOR_COUNT: Es la cantidad de aceleradores que se conectarán a cada nodo trabajador.
-
RESERVATION_AFFINITY_TYPE (corresponde a
machine_spec.reservation_affinity.reservationAffinityType): Es la afinidad de reserva para el grupo de nodos. Este parámetro debe serSPECIFIC_RESERVATION, que es el único valor admitido. Cuando se usaSPECIFIC_RESERVATION, debes especificar la reserva enmachine_spec.reservation_affinity.values. -
RESERVATION_NAME: Es el nombre de la reserva que se usará para el grupo de nodos. Se usa
en el nombre completo del recurso de reserva proporcionado en
machine_spec.reservation_affinity.values, por ejemplo,projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME. Se requiere una reserva cuando RESERVATION_AFFINITY_TYPE esSPECIFIC_RESERVATION.
Configuración del organizador y del almacenamiento
Estos campos se definen dentro del bloque orchestrator_spec.slurm_spec del archivo JSON.
Configuración principal de Slurm y Storage
-
HOME_DIRECTORY_STORAGE (corresponde a
home_directory_storage): Es el nombre completo del recurso de la instancia de Filestore preexistente que se activará como el directorio/home. -
LOGIN_NODE_POOL_ID (corresponde a
login_node_pool_id): Es el ID del grupo de nodos que se debe usar para los nodos de acceso. -
partitions: Es una lista de objetos de partición, en la que cada objeto requiere unidy una lista denode_pool_ids. -
default_partition_id(opcional): Es elidde la partición que se usa para ejecutar trabajos de Slurm cuando no se especifica ninguna partición de forma explícita (por ejemplo, cuando se ejecutasbatchsin la marca--partition). Si no se establece, la primera partición de la lista de particiones se convierte en la predeterminada, por lo que, si se reordena la lista, cambiará la partición predeterminada.
Configuración avanzada de Slurm
-
prolog_bash_scripts: Es una lista de cadenas, en la que cada cadena contiene el contenido completo de una secuencia de comandos de Bash que se ejecutará antes de que comience un trabajo. -
epilog_bash_scripts: Es una lista de cadenas, en la que cada cadena contiene el contenido completo de una secuencia de comandos de Bash que se ejecutará después de que se complete un trabajo. -
config,partitions[].configynode_sets: Son parámetros de Slurm establecidos por nombre. Consulta Mapas de configuración de Slurm. -
schedulingyaccounting: Reemplazados. Estos dos objetos exponen un conjunto fijo de parámetros de prioridad, interrupción y contabilización, cada uno de los cuales se puede establecer por nombre en el mapaconfigcon alcance de clúster (priority_typecomo"PriorityType",preempt_modecomo"PreemptMode", etcétera). Aún funcionan para los clústeres que los usan, pero los clústeres nuevos deben usarconfig, que admite muchos más parámetros deslurm.confque este subconjunto.
ConfigMaps de Slurm
Los parámetros de Slurm se configuran por nombre, en tres mapas, uno para cada registro
slurm.conf:
-
config: Es la configuración con alcance de clúster, escrita como líneasKey=Valueglobales. -
partitions[].config: Es la configuración de una partición, escrita como pares adicionales en la líneaPartitionName=de esa partición. -
node_sets: Es una lista de objetos, cada uno con un mapanode_pool_idy un mapaconfig. La configuración se escribe como pares adicionales en la líneaNodeName=de los nodos de ese grupo de nodos. Como máximo, una entrada por grupo de nodos, y el grupo debe ser un grupo de procesamiento del clúster, no el grupo de acceso.
En los tres, las claves son nombres de parámetros de Slurm, tal como
SchedMD los documenta, sin
distinguir mayúsculas de minúsculas y sin tener en cuenta los guiones bajos, por lo que DefMemPerCPU,
defmempercpu y def_mem_per_cpu significan el mismo parámetro. Los valores se
escriben de la forma en que los escribe slurm.conf, incluidas las listas separadas por comas, como
"PreemptMode": "SUSPEND,GANG", y los valores compuestos, como
"SchedulerParameters": "bf_window=1440,bf_resolution=600".
Cada mapa admite un subconjunto de los parámetros slurm.conf que son válidos para su
registro, no todos. Si necesitas un parámetro que no se admite, comunícate con tu
contacto de clústeres de entrenamiento de Gemini Enterprise Agent Platform.
Un parámetro que no se admite en el permiso en el que lo estableces o un valor que no es legal para ese parámetro se rechaza cuando realizas la solicitud, y el error nombra el parámetro. No se descarta nada de forma silenciosa. Algunos parámetros se rechazan por un motivo específico:
-
El servicio administra la verificación de estado de los nodos y la puesta en cola de los trabajos, por lo que
no se pueden configurar
HealthCheckProgram,HealthCheckInterval,HealthCheckNodeStateniRequeueExit. -
En su lugar,
PrologyEpilogse configuran a través deprolog_bash_scriptsyepilog_bash_scripts. -
Los parámetros de
slurmdbd.conf, comoStorageHostyPurgeJobAfter, no se pueden configurar: el servicio administra la base de datos de contabilidad. -
En el permiso de partición, se rechaza
Default. La partición predeterminada es una opción para todo el clúster, que se configura condefault_partition_id.
Configuración del entorno de ejecución
Estos campos se definen dentro del bloque runtime_spec del archivo JSON.
-
service_account: Es la cuenta de servicio predeterminada que usa el clúster cuando ejecuta cualquier carga de trabajo en él. Si no se especifica, se usa la cuenta de servicio predeterminada de Compute Engine. Este campo no se puede actualizar después de crear el clúster.
¿Qué sigue?
Usa tu clúster de entrenamiento persistente activo para ejecutar tus cargas de trabajo de aprendizaje automático.
- Ejecuta un trabajo en tu clúster: Envía un
CustomJobpara ejecutar un trabajo de entrenamiento en tu clúster persistente. - Organiza tu entrenamiento con las canalizaciones de Gemini Enterprise Agent Platform: Para flujos de trabajo repetibles y de nivel de producción, automatiza el proceso de envío de trabajos con las canalizaciones de Agent Platform.
- Visualiza tu clúster: Enumera los clústeres existentes en tu proyecto, verifica su estado y consulta los detalles de configuración con la consola de Google Cloud o la API de Agent Platform.
- Cambia tu clúster: Actualiza la configuración de un clúster existente, como sus recuentos de nodos o sus particiones de Slurm.
- Borra tu clúster para dejar de generar costos: Los clústeres de entrenamiento son persistentes y generan costos mientras están activos.