

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de varios nodos controladores para un clúster de SageMaker HyperPod Slurm
<a name="sagemaker-hyperpod-multihead-slurm-setup"></a>

En este tema se explica cómo configurar varios nodos controladores (principales) en un clúster de SageMaker HyperPod Slurm mediante scripts de ciclo de vida. Antes de empezar, revise los requisitos previos que figuran en [Requisitos previos para su uso SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) y familiarícese con los scripts de ciclo de vida de [Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md). Las instrucciones de este tema utilizan AWS CLI comandos del entorno Amazon Linux. Tenga en cuenta que las variables de entorno utilizadas en estos comandos están disponibles en la sesión actual, a menos que se conserven de forma explícita.

**Topics**
+ [Aprovisionamiento de recursos mediante pilas CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md)
+ [Creación y asociación de una política de IAM](sagemaker-hyperpod-multihead-slurm-iam.md)
+ [Preparación y carga de los scripts de ciclo de vida](sagemaker-hyperpod-multihead-slurm-scripts.md)
+ [Crear un SageMaker HyperPod clúster](sagemaker-hyperpod-multihead-slurm-create.md)
+ [Notas importantes a tener en cuenta](sagemaker-hyperpod-multihead-slurm-notes.md)
+ [Revisión de la referencia de variables de entorno](sagemaker-hyperpod-multihead-slurm-variables-reference.md)

# Aprovisionamiento de recursos mediante pilas CloudFormation
<a name="sagemaker-hyperpod-multihead-slurm-cfn"></a>

Para configurar varios nodos controladores en un clúster de HyperPod Slurm, aprovisione AWS los recursos a través de dos CloudFormation pilas: y. [Aprovisionamiento de recursos básicos](#sagemaker-hyperpod-multihead-slurm-cfn-basic) [Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador](#sagemaker-hyperpod-multihead-slurm-cfn-multihead)

## Aprovisionamiento de recursos básicos
<a name="sagemaker-hyperpod-multihead-slurm-cfn-basic"></a>

Siga estos pasos para aprovisionar recursos básicos para su clúster de Amazon SageMaker HyperPod Slurm.

1. Descargue el archivo de plantilla [sagemaker-hyperpod.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod.yaml) en su equipo. Este archivo YAML es una CloudFormation plantilla que define los siguientes recursos para crearlos para su clúster de Slurm.
   + Un rol de IAM de ejecución para el grupo de instancias del nodo de computación
   + Un bucket de Amazon S3 para almacenar los scripts de ciclo de vida
   + Subredes públicas y privadas (las subredes privadas tienen acceso a Internet a través de puertas de enlace NAT)
   +  Gateway/NAT Puertas de enlace de Internet
   + Dos grupos de seguridad de Amazon EC2
   + Un FSx volumen de Amazon para almacenar los archivos de configuración

1. Ejecute el siguiente comando CLI para crear una CloudFormation pila denominada`sagemaker-hyperpod`. Defina la zona de disponibilidad (AZ) IDs del clúster en `PrimarySubnetAZ` y`BackupSubnetAZ`. Por ejemplo, *use1-az4* es un ID de zona de disponibilidad para una zona de disponibilidad de la `us-east-1` región. Para obtener más información, consulte [Zona de disponibilidad IDs](https://docs.aws.amazon.com//ram/latest/userguide/working-with-az-ids.html) y[Configuración de clústeres en varios SageMaker HyperPod AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones).

   ```
   aws cloudformation deploy \
   --template-file /path_to_template/sagemaker-hyperpod.yaml \
   --stack-name sagemaker-hyperpod \
   --parameter-overrides PrimarySubnetAZ=use1-az4 BackupSubnetAZ=use1-az1 \
   --capabilities CAPABILITY_IAM
   ```

   Para obtener más información, consulte [implementar](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) desde la AWS Command Line Interface referencia. La creación de la pila puede tardar unos minutos en completarse. Cuando haya acabado, verá lo siguiente en la interfaz de la línea de comandos.

   ```
   Waiting for changeset to be created..
   Waiting for stack create/update to complete
   Successfully created/updated stack - sagemaker-hyperpod
   ```

1. (Opcional) Verifique la pila en la [consola de CloudFormation](https://console.aws.amazon.com/cloudformation/home).
   + En el panel de navegación izquierdo, seleccione **Pila**.
   + En la página **Pila**, busque y seleccione **sagemaker-hyperpod**.
   + Seleccione las pestañas como, por ejemplo, **Recursos** y **Resultados** para revisar los recursos y los resultados.

1. Cree variables de entorno a partir de los resultados de la pila (`sagemaker-hyperpod`). Utilizará los valores de estas variables para [Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador](#sagemaker-hyperpod-multihead-slurm-cfn-multihead).

   ```
   source .env
   PRIMARY_SUBNET=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`PrimaryPrivateSubnet`].OutputValue' --output text)
   BACKUP_SUBNET=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`BackupPrivateSubnet`].OutputValue' --output text)
   EMAIL=$(bash -c 'read -p "INPUT YOUR SNSSubEmailAddress HERE: " && echo $REPLY')
   DB_USER_NAME=$(bash -c 'read -p "INPUT YOUR DB_USER_NAME HERE: " && echo $REPLY')
   SECURITY_GROUP=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`SecurityGroup`].OutputValue' --output text)
   ROOT_BUCKET_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmazonS3BucketName`].OutputValue' --output text)
   SLURM_FSX_DNS_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`FSxLustreFilesystemDNSname`].OutputValue' --output text)
   SLURM_FSX_MOUNT_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`FSxLustreFilesystemMountname`].OutputValue' --output text)
   COMPUTE_NODE_ROLE=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmazonSagemakerClusterExecutionRoleArn`].OutputValue' --output text)
   ```

   Cuando aparezca un mensaje en el que se le pida su dirección de correo electrónico y su nombre de usuario de la base de datos, introduzca valores como los siguientes.

   ```
   INPUT YOUR SNSSubEmailAddress HERE: Email_address_to_receive_SNS_notifications
   INPUT YOUR DB_USER_NAME HERE: Database_user_name_you_define
   ```

   Para comprobar los valores de las variables, utilice el comando `print $variable`.

   ```
   print $REGION
   us-east-1
   ```

## Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador
<a name="sagemaker-hyperpod-multihead-slurm-cfn-multihead"></a>

Siga estos pasos para aprovisionar recursos adicionales para su clúster de Amazon SageMaker HyperPod Slurm con varios nodos controladores.

1. Descargue el archivo de [sagemaker-hyperpod-slurm-multiplantilla -headnode.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod-slurm-multi-headnode.yaml) en su máquina. Este segundo archivo YAML es una CloudFormation plantilla que define los recursos adicionales que se deben crear para el soporte de varios nodos controladores en su clúster de Slurm.
   + Un rol de IAM de ejecución para el grupo de instancias del nodo de controlador
   + Una instancia de Amazon RDS para MariaDB
   + Un tema y una suscripción de Amazon SNS
   + AWS Secrets Manager credenciales de Amazon RDS para MariaDB

1. Ejecute el siguiente comando CLI para crear una CloudFormation pila denominada`sagemaker-hyperpod-mh`. Esta segunda pila utiliza la CloudFormation plantilla para crear AWS recursos adicionales que admitan la arquitectura de varios nodos controladores.

   ```
   aws cloudformation deploy \
   --template-file /path_to_template/slurm-multi-headnode.yaml \
   --stack-name sagemaker-hyperpod-mh \
   --parameter-overrides \
   SlurmDBSecurityGroupId=$SECURITY_GROUP \
   SlurmDBSubnetGroupId1=$PRIMARY_SUBNET \
   SlurmDBSubnetGroupId2=$BACKUP_SUBNET \
   SNSSubEmailAddress=$EMAIL \
   SlurmDBUsername=$DB_USER_NAME \
   --capabilities CAPABILITY_NAMED_IAM
   ```

   Para obtener más información, consulte [implementar](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) desde la AWS Command Line Interface referencia. La creación de la pila puede tardar unos minutos en completarse. Cuando haya acabado, verá lo siguiente en la interfaz de la línea de comandos.

   ```
   Waiting for changeset to be created..
   Waiting for stack create/update to complete
   Successfully created/updated stack - sagemaker-hyperpod-mh
   ```

1. (Opcional) Verifique la pila en la [consola de AWS Cloud Formation](https://console.aws.amazon.com/cloudformation/home).
   + En el panel de navegación izquierdo, seleccione **Pila**.
   + En la página **Stack**, busque y elija **sagemaker-hyperpod-mh**.
   + Seleccione las pestañas como, por ejemplo, **Recursos** y **Resultados** para revisar los recursos y los resultados.

1. Cree variables de entorno a partir de los resultados de la pila (`sagemaker-hyperpod-mh`). Utilizará los valores de estas variables para actualizar el archivo de configuración (`provisioning_parameters.json`) en [Preparación y carga de los scripts de ciclo de vida](sagemaker-hyperpod-multihead-slurm-scripts.md).

   ```
   source .env
   SLURM_DB_ENDPOINT_ADDRESS=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmDBEndpointAddress`].OutputValue' --output text)
   SLURM_DB_SECRET_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmDBSecretArn`].OutputValue' --output text)
   SLURM_EXECUTION_ROLE_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmExecutionRoleArn`].OutputValue' --output text)
   SLURM_SNS_FAILOVER_TOPIC_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmFailOverSNSTopicArn`].OutputValue' --output text)
   ```

# Creación y asociación de una política de IAM
<a name="sagemaker-hyperpod-multihead-slurm-iam"></a>

En esta sección se explica cómo crear una política de IAM y asociarla al rol de ejecución que ha creado en [Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead).

1. Descargue el [ejemplo de política de IAM](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/1.AmazonSageMakerClustersExecutionRolePolicy.json) en su máquina desde el GitHub repositorio.

1. Cree una política de IAM con el ejemplo descargado utilizando el comando de la CLI [create-policy](https://docs.aws.amazon.com//cli/latest/reference/iam/create-policy.html).

   ```
   aws --region us-east-1 iam create-policy \
       --policy-name AmazonSagemakerExecutionPolicy \
       --policy-document file://1.AmazonSageMakerClustersExecutionRolePolicy.json
   ```

   Ejemplo de resultado del comando.

   ```
   {
       "Policy": {
           "PolicyName": "AmazonSagemakerExecutionPolicy",
           "PolicyId": "ANPAXISIWY5UYZM7WJR4W",
           "Arn": "arn:aws:iam::111122223333:policy/AmazonSagemakerExecutionPolicy",
           "Path": "/",
           "DefaultVersionId": "v1",
           "AttachmentCount": 0,
           "PermissionsBoundaryUsageCount": 0,
           "IsAttachable": true,
           "CreateDate": "2025-01-22T20:01:21+00:00",
           "UpdateDate": "2025-01-22T20:01:21+00:00"
       }
   }
   ```

1. Adjunte la política `AmazonSagemakerExecutionPolicy` al rol de ejecución de Slurm en el que creó[Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead), mediante el comando [attach-role-policy](https://docs.aws.amazon.com//cli/latest/reference/iam/attach-role-policy.html)CLI.

   ```
   aws --region us-east-1 iam attach-role-policy \
       --role-name AmazonSagemakerExecutionRole \
       --policy-arn arn:aws:iam::111122223333:policy/AmazonSagemakerExecutionPolicy
   ```

   Este comando no proporciona ninguna salida.

   (Opcional) Si usa variables de entorno, aquí mostramos algunos comandos de ejemplo.
   + Cómo obtener el nombre del rol y el nombre de la política 

     ```
     POLICY=$(aws --region $REGION iam list-policies --query 'Policies[?PolicyName==AmazonSagemakerExecutionPolicy].Arn' --output text)
     ROLENAME=$(aws --region $REGION iam list-roles --query "Roles[?Arn=='${SLURM_EXECUTION_ROLE_ARN}'].RoleName" —output text)
     ```
   + Asociación de la política 

     ```
     aws  --region us-east-1 iam attach-role-policy \
          --role-name $ROLENAME --policy-arn $POLICY
     ```

Para obtener más información, consulte [Función de IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

# Preparación y carga de los scripts de ciclo de vida
<a name="sagemaker-hyperpod-multihead-slurm-scripts"></a>

Tras crear todos los recursos necesarios, tendrá que configurar los [scripts del ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) de vida del clúster. SageMaker HyperPod Estos [scripts de ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) de vida proporcionan una [configuración básica](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) que puede usar para crear un clúster de HyperPod Slurm básico.

## Preparación de los scripts de ciclo de vida
<a name="sagemaker-hyperpod-multihead-slurm-prepare-scripts"></a>

Siga estos pasos para obtener los scripts de ciclo de vida.

1. Descargue los [scripts del ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) de vida del GitHub repositorio a su máquina.

1. Cargue los [scripts del ciclo de vida](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) en el bucket de Amazon S3 en [Aprovisionamiento de recursos básicos](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-basic) con el comando de la CLI [cp](https://docs.aws.amazon.com//cli/latest/reference/s3/cp.html).

   ```
   aws s3 cp --recursive LifeCycleScripts/base-config s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config
   ```

## Creación del archivo de configuración
<a name="sagemaker-hyperpod-multihead-slurm-update-config-file"></a>

Siga estos pasos para crear el archivo de configuración y cargarlo en el mismo bucket de Amazon S3 en el que almacena los scripts de ciclo de vida.

1. Cree un archivo de configuración denominado `provisioning_parameters.json` con el siguiente contenido. Tenga en cuenta que `slurm_sns_arn` es opcional. Si no se proporciona, no HyperPod configurará las notificaciones de Amazon SNS.

   ```
   cat <<EOF > /tmp/provisioning_parameters.json
   {
     "version": "1.0.0",
     "workload_manager": "slurm",
     "controller_group": "$CONTOLLER_IG_NAME",
     "login_group": "my-login-group",
     "worker_groups": [
       {
         "instance_group_name": "$COMPUTE_IG_NAME",
         "partition_name": "dev"
       }
     ],
     "fsx_dns_name": "$SLURM_FSX_DNS_NAME",
     "fsx_mountname": "$SLURM_FSX_MOUNT_NAME",
     "slurm_configurations": {
       "slurm_database_secret_arn": "$SLURM_DB_SECRET_ARN",
       "slurm_database_endpoint": "$SLURM_DB_ENDPOINT_ADDRESS",
       "slurm_shared_directory": "/fsx",
       "slurm_database_user": "$DB_USER_NAME",
       "slurm_sns_arn": "$SLURM_SNS_FAILOVER_TOPIC_ARN"
     }
   }
   EOF
   ```

1. Cargue el archivo `provisioning_parameters.json` en el mismo bucket de Amazon S3 en el que se almacenan los scripts de ciclo de vida.

   ```
   aws s3 cp /tmp/provisioning_parameters.json s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config/provisioning_parameters.json
   ```
**nota**  
Si utiliza una configuración basada en API, el `provisioning_parameters.json` archivo no es obligatorio. Con la configuración basada en API, usted define los tipos de nodos, las particiones y el FSx montaje de Slurm directamente en la carga útil de la API. CreateCluster Para obtener más información, consulte [Cómo empezar](smcluster-getting-started-slurm-cli.md) a usar el. SageMaker HyperPod AWS CLI

## Verificación de los archivos en el bucket de Amazon S3
<a name="sagemaker-hyperpod-multihead-slurm-verify-s3"></a>

Tras cargar todos los scripts de ciclo de vida y el archivo `provisioning_parameters.json`, el bucket de Amazon S3 debería tener el siguiente aspecto.

![\[Imagen que muestra todos los scripts de ciclo de vida cargados en el bucket de Amazon S3 en la consola de Amazon Simple Storage Service.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-scripts-s3.png)


Para obtener más información, consulte [Comenzar con los scripts de ciclo de vida básicos proporcionados por HyperPod](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.html).

# Crear un SageMaker HyperPod clúster
<a name="sagemaker-hyperpod-multihead-slurm-create"></a>

Tras configurar todos los recursos necesarios y cargar los scripts en el bucket de Amazon S3, ya puede crear un clúster.

1. Para crear un clúster, ejecute el [https://docs.aws.amazon.com//cli/latest/reference/sagemaker/create-cluster.html](https://docs.aws.amazon.com//cli/latest/reference/sagemaker/create-cluster.html) AWS CLI comando. El proceso puede tardar 15 minutos en completarse.

   ```
   aws --region $REGION sagemaker create-cluster \
       --cluster-name $HP_CLUSTER_NAME \
       --vpc-config '{
           "SecurityGroupIds":["'$SECURITY_GROUP'"],
           "Subnets":["'$PRIMARY_SUBNET'", "'$BACKUP_SUBNET'"]
       }' \
       --instance-groups '[{                  
       "InstanceGroupName": "'$CONTOLLER_IG_NAME'",
       "InstanceType": "ml.t3.medium",
       "InstanceCount": 2,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://'$BUCKET_NAME'",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "'$SLURM_EXECUTION_ROLE_ARN'",
       "ThreadsPerCore": 1
   },
   {
       "InstanceGroupName": "'$COMPUTE_IG_NAME'",          
       "InstanceType": "ml.c5.xlarge",
       "InstanceCount": 2,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://'$BUCKET_NAME'",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "'$COMPUTE_NODE_ROLE'",
       "ThreadsPerCore": 1
   }]'
   ```

   Una vez ejecutado correctamente, el comando devuelve el ARN del clúster de la forma siguiente.

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-east-1:111122223333:cluster/cluster_id"
   }
   ```

1. (Opcional) Para comprobar el estado del clúster, puede utilizar la consola SageMaker AI ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)). En el menú de navegación de la izquierda, selecciona **HyperPod Clústeres** y, a continuación, **Gestión de clústeres**. Elija el nombre del clúster para abrir la página de detalles del clúster. Si el clúster se ha creado correctamente, verá que el estado del clúster es **InService**.  
![\[Imagen que muestra un clúster de HyperPod Slurm con varios nodos de controlador en la consola Amazon SageMaker AI.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-cluster.png)

# Notas importantes a tener en cuenta
<a name="sagemaker-hyperpod-multihead-slurm-notes"></a>

En esta sección se proporcionan varias notas importantes que pueden resultarle útiles. 

1. Para migrar a un clúster de Slurm con varios controladores, complete estos pasos.

   1. Siga las instrucciones de [Aprovisionamiento de recursos mediante pilas CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md) para aprovisionar todos los recursos necesarios.

   1. Siga las instrucciones de [Preparación y carga de los scripts de ciclo de vida](sagemaker-hyperpod-multihead-slurm-scripts.md) para cargar los scripts de ciclo de vida actualizados. Al actualizar el archivo `provisioning_parameters.json`, mueva el grupo de controladores existente a la sección `worker_groups` y añada un nuevo nombre de grupo de controladores en la sección `controller_group`.

   1. Ejecute la llamada a la API [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para crear un nuevo grupo de controladores y conserve los grupos de instancias de computación y el grupo de controladores originales.

1. Para reducir verticalmente el número de nodos de controlador, utilice el comando de la CLI [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html). Para cada grupo de instancias de controlador, la cantidad mínima de nodos de controlador que puede reducir verticalmente es 1. Esto significa que no puede reducir verticalmente el número de nodos de controlador a 0.
**importante**  
En el caso de los clústeres creados antes del 24 de enero de 2025, primero debe actualizar el software del clúster mediante la [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API antes de ejecutar el comando [CLI update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html).

   El siguiente es un ejemplo de comando de la CLI para reducir verticalmente el número de nodos de controlador.

   ```
   aws sagemaker update-cluster \
       --cluster-name my_cluster \
       --instance-groups '[{                  
       "InstanceGroupName": "controller_ig_name",
       "InstanceType": "ml.t3.medium",
       "InstanceCount": 3,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://amzn-s3-demo-bucket1",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "slurm_execution_role_arn",
       "ThreadsPerCore": 1
   },
   {
       "InstanceGroupName": "compute-ig_name",       
       "InstanceType": "ml.c5.xlarge",
       "InstanceCount": 2,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://amzn-s3-demo-bucket1",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "compute_node_role_arn",
       "ThreadsPerCore": 1
   }]'
   ```

1. Para eliminar por lotes los nodos de la controladora, utilice el comando [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)CLI. Para cada grupo de instancias de controlador, debe conservar al menos un nodo de controlador. Si quiere eliminar por lotes todos los nodos de controlador, la operación de la API no funcionará.
**importante**  
En el caso de los clústeres creados antes del 24 de enero de 2025, primero debe actualizar el software del clúster mediante la [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API antes de ejecutar el comando [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)CLI.

   El siguiente es un ejemplo de comando de la CLI para eliminar por lotes los nodos de controlador.

   ```
   aws sagemaker batch-delete-cluster-nodes --cluster-name my_cluster --node-ids instance_ids_to_delete
   ```

1. Para solucionar los problemas de creación de clústeres, consulta el mensaje de error que aparece en la página de detalles del clúster de tu consola de SageMaker IA. También puedes usar CloudWatch los registros para solucionar problemas de creación de clústeres. En la CloudWatch consola, selecciona **Grupos de registros**. A continuación, busque `clusters` para ver la lista de grupos de registros relacionados con la creación del clúster.  
![\[Imagen que muestra los grupos de registros del SageMaker HyperPod clúster de Amazon en la CloudWatch consola.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-logs.png)

# Revisión de la referencia de variables de entorno
<a name="sagemaker-hyperpod-multihead-slurm-variables-reference"></a>

Las siguientes variables de entorno se definen y utilizan en el tutorial de [Configuración de varios nodos controladores para un clúster de SageMaker HyperPod Slurm](sagemaker-hyperpod-multihead-slurm-setup.md). Estas variables de entorno solo están disponibles en la sesión actual, a menos que se conserven de forma explícita. Se definen con la sintaxis de `$variable_name`. Las variables con key/value pares representan recursos AWS creados por el usuario, mientras que las variables sin claves están definidas por el usuario.


**Referencia de las variables de entorno**  

| Variable | Description (Descripción) | 
| --- | --- | 
| \$1BACKUP\$1SUBNET |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1COMPUTE\$1IG\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1COMPUTE\$1NODE\$1ROLE |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1CONTOLLER\$1IG\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1DB\$1USER\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1EMAIL |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1PRIMARY\$1SUBNET |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1POLICY |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1REGION |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1ROOT\$1BUCKET\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SECURITY\$1GROUP |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1DB\$1ENDPOINT\$1ADDRESS |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1DB\$1SECRET\$1ARN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1EXECUTION\$1ROLE\$1ARN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1FSX\$1DNS\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1FSX\$1MOUNT\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1SNS\$1FAILOVER\$1TOPIC\$1ARN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 