

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione di più nodi controller per un cluster SageMaker HyperPod Slurm
<a name="sagemaker-hyperpod-multihead-slurm-setup"></a>

Questo argomento spiega come configurare più nodi controller (head) in un cluster SageMaker HyperPod Slurm utilizzando script del ciclo di vita. Prima di iniziare, esamina i prerequisiti elencati in [Prerequisiti per l'utilizzo SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) e impara a conoscere gli script del ciclo di vita in [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md). Le istruzioni in questo argomento utilizzano AWS CLI i comandi in ambiente Amazon Linux. Tieni presente che le variabili di ambiente utilizzate in questi comandi sono disponibili nella sessione corrente a meno che non vengano esplicitamente mantenute.

**Topics**
+ [Fornitura di risorse tramite stack CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md)
+ [Creazione e collegamento di una policy IAM](sagemaker-hyperpod-multihead-slurm-iam.md)
+ [Preparazione e caricamento degli script del ciclo di vita](sagemaker-hyperpod-multihead-slurm-scripts.md)
+ [Creazione di un cluster SageMaker HyperPod](sagemaker-hyperpod-multihead-slurm-create.md)
+ [Note importanti](sagemaker-hyperpod-multihead-slurm-notes.md)
+ [Revisione dei riferimenti alle variabili di ambiente](sagemaker-hyperpod-multihead-slurm-variables-reference.md)

# Fornitura di risorse tramite stack CloudFormation
<a name="sagemaker-hyperpod-multihead-slurm-cfn"></a>

Per configurare più nodi di controllo in un cluster HyperPod Slurm, fornisci AWS le risorse tramite due CloudFormation stack: e. [Allocazione di risorse di base](#sagemaker-hyperpod-multihead-slurm-cfn-basic) [Allocazione di risorse aggiuntive per supportare più nodi controller](#sagemaker-hyperpod-multihead-slurm-cfn-multihead)

## Allocazione di risorse di base
<a name="sagemaker-hyperpod-multihead-slurm-cfn-basic"></a>

Segui questi passaggi per fornire risorse di base per il tuo cluster Amazon SageMaker HyperPod Slurm.

1. Scarica il file del modello [sagemaker-hyperpod.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod.yaml) sul tuo computer. Questo file YAML è un CloudFormation modello che definisce le seguenti risorse da creare per il tuo cluster Slurm.
   + Un ruolo IAM di esecuzione per il gruppo di istanze del nodo di calcolo
   + Un bucket Amazon S3 per archiviare gli script del ciclo di vita
   + Sottoreti pubbliche e private (le sottoreti private hanno accesso a Internet tramite gateway NAT)
   +  Gateway/NAT Gateway Internet
   + Due gruppi di sicurezza Amazon EC2
   + Un FSx volume Amazon per archiviare i file di configurazione

1. Esegui il seguente comando CLI per creare uno CloudFormation stack denominato. `sagemaker-hyperpod` Definisci la zona di disponibilità (AZ) IDs per il tuo cluster in `PrimarySubnetAZ` and. `BackupSubnetAZ` Ad esempio, *use1-az4* è un ID AZ per una zona di disponibilità nella `us-east-1` regione. Per ulteriori informazioni, vedere [Zona di disponibilità IDs](https://docs.aws.amazon.com//ram/latest/userguide/working-with-az-ids.html) e[Configurazione di cluster su più cluster 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
   ```

   Per ulteriori informazioni, consulta [deploy](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) from the AWS Command Line Interface Reference. La creazione dello stack può richiedere alcuni minuti. Al termine, vedrai quanto segue nell’interfaccia a riga di comando.

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

1. (Facoltativo) Verifica lo stack nella [console CloudFormation](https://console.aws.amazon.com/cloudformation/home).
   + Seleziona **Stack** dalla barra di navigazione a sinistra.
   + Nella pagina **Stack**, trova e scegli **sagemaker-hyperpod**.
   + Scegli le schede **Risorse** e **Output** per esaminare le risorse e gli output.

1. Crea variabili di ambiente dagli output dello stack (`sagemaker-hyperpod`). Utilizzerai i valori di queste variabili per [Allocazione di risorse aggiuntive per supportare più nodi controller](#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)
   ```

   Quando vedi prompt che richiedono il tuo indirizzo e-mail e il nome utente del database, inserisci valori come i seguenti.

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

   Per verificare i valori delle variabili, utilizza il comando `print $variable`.

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

## Allocazione di risorse aggiuntive per supportare più nodi controller
<a name="sagemaker-hyperpod-multihead-slurm-cfn-multihead"></a>

Segui questi passaggi per fornire risorse aggiuntive per il tuo cluster Amazon SageMaker HyperPod Slurm con più nodi controller.

1. Scarica il file modello [sagemaker-hyperpod-slurm-multi-headnode.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod-slurm-multi-headnode.yaml) sul tuo computer. Questo secondo file YAML è un CloudFormation modello che definisce le risorse aggiuntive da creare per il supporto di più nodi di controller nel cluster Slurm.
   + Un ruolo IAM di esecuzione per il gruppo di istanze del nodo controller
   + Un’istanza Amazon RDS per MariaDB
   + Un argomento e l’abbonamento Amazon SNS
   + Gestione dei segreti AWS credenziali per Amazon RDS for MariaDB

1. Esegui il seguente comando CLI per creare uno CloudFormation stack denominato. `sagemaker-hyperpod-mh` Questo secondo stack utilizza il CloudFormation modello per creare AWS risorse aggiuntive per supportare l'architettura a più nodi di controller.

   ```
   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
   ```

   Per ulteriori informazioni, consulta [deploy](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) from the AWS Command Line Interface Reference. La creazione dello stack può richiedere alcuni minuti. Al termine, vedrai quanto segue nell’interfaccia a riga di comando.

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

1. (Facoltativo) Verifica lo stack nella [console AWS Cloud Formation](https://console.aws.amazon.com/cloudformation/home).
   + Seleziona **Stack** dalla barra di navigazione a sinistra.
   + Nella pagina **Stack**, trova e scegli. **sagemaker-hyperpod-mh**
   + Scegli le schede **Risorse** e **Output** per esaminare le risorse e gli output.

1. Crea variabili di ambiente dagli output dello stack (`sagemaker-hyperpod-mh`). Utilizzerai i valori di queste variabili per aggiornare il file di configurazione (`provisioning_parameters.json`) in [Preparazione e caricamento degli script del ciclo di vita](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)
   ```

# Creazione e collegamento di una policy IAM
<a name="sagemaker-hyperpod-multihead-slurm-iam"></a>

Questa sezione spiega come creare una policy IAM e collegarla al ruolo di esecuzione creato in [Allocazione di risorse aggiuntive per supportare più nodi controller](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead).

1. Scarica l'[esempio di policy IAM sulla](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/1.AmazonSageMakerClustersExecutionRolePolicy.json) tua macchina dal GitHub repository.

1. Crea una policy IAM con l’esempio scaricato utilizzando il comando della 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
   ```

   Esempio di output 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. Allega la policy `AmazonSagemakerExecutionPolicy` al ruolo di esecuzione Slurm in cui hai creato[Allocazione di risorse aggiuntive per supportare più nodi controller](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead), utilizzando il comando CLI [attach-role-policy](https://docs.aws.amazon.com//cli/latest/reference/iam/attach-role-policy.html).

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

   Il comando non produce output.

   (Facoltativo) Se utilizzi le variabili di ambiente, ecco i comandi di esempio.
   + Per ottenere il nome del ruolo e il nome della policy 

     ```
     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)
     ```
   + Per collegare la policy

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

Per ulteriori informazioni, consulta [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

# Preparazione e caricamento degli script del ciclo di vita
<a name="sagemaker-hyperpod-multihead-slurm-scripts"></a>

Dopo aver creato tutte le risorse richieste, dovrai configurare gli script del [ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) di vita per il tuo cluster. SageMaker HyperPod Questi [script del ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) di vita forniscono una [configurazione di base che puoi utilizzare per creare](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) un cluster Slurm di base. HyperPod

## Preparazione degli script del ciclo di vita
<a name="sagemaker-hyperpod-multihead-slurm-prepare-scripts"></a>

Segui questa procedura per ottenere gli script del ciclo di vita.

1. Scarica gli [script del ciclo di vita](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) dal repository sul tuo computer. GitHub 

1. Carica gli [script del ciclo di vita](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) nel bucket Amazon S3 creato in [Allocazione di risorse di base](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-basic) utilizzando il comando della 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
   ```

## Creazione di un file di configurazione
<a name="sagemaker-hyperpod-multihead-slurm-update-config-file"></a>

Segui questa procedura per creare il file di configurazione e caricarlo nello stesso bucket Amazon S3 in cui archivi gli script del ciclo di vita.

1. Crea un file di configurazione denominato `provisioning_parameters.json` con la configurazione seguente. Ricorda che `slurm_sns_arn` è opzionale. Se non fornito, non HyperPod configurerà le notifiche di 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. Carica il file `provisioning_parameters.json` nello stesso bucket Amazon S3 in cui archivi gli script del ciclo di vita.

   ```
   aws s3 cp /tmp/provisioning_parameters.json s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config/provisioning_parameters.json
   ```
**Nota**  
Se utilizzi una configurazione basata su API, il `provisioning_parameters.json` file non è necessario. Con la configurazione basata su API, puoi definire i tipi di nodi Slurm, le partizioni e FSx il montaggio direttamente nel payload dell'API. CreateCluster [Per i dettagli, consulta Guida introduttiva all'utilizzo di. SageMaker HyperPod AWS CLI](smcluster-getting-started-slurm-cli.md)

## Verifica dei file nel bucket Amazon S3
<a name="sagemaker-hyperpod-multihead-slurm-verify-s3"></a>

Dopo aver caricato tutti gli script del ciclo di vita e il file `provisioning_parameters.json`, il bucket Amazon S3 dovrebbe avere il seguente aspetto.

![\[Immagine che mostra tutti gli script del ciclo di vita caricati nel bucket Amazon S3 nella console di Amazon Simple Storage Service.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-scripts-s3.png)


Per ulteriori informazioni, consulta [Inizia con gli script del ciclo di vita di base](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.html) forniti da. HyperPod

# Creazione di un cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-multihead-slurm-create"></a>

Dopo aver configurato tutte le risorse richieste e caricato gli script nel bucket Amazon S3, puoi creare un cluster.

1. Per creare un cluster, esegui il [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. Il completamento del processo può richiedere fino a 15 minuti.

   ```
   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
   }]'
   ```

   Al termine, il comando restituisce l’ARN del cluster come mostrato di seguito.

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

1. (Facoltativo) Per verificare lo stato del cluster, puoi utilizzare la console SageMaker AI ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)). Dalla barra di navigazione a sinistra, scegli **HyperPod Cluster**, quindi scegli **Gestione cluster**. Scegli il nome del cluster per aprire la relativa pagina dei dettagli. Se il cluster è stato creato correttamente, vedrai che lo stato del cluster è **InService**.  
![\[Immagine che mostra un cluster HyperPod Slurm con più nodi controller nella console Amazon SageMaker AI.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-cluster.png)

# Note importanti
<a name="sagemaker-hyperpod-multihead-slurm-notes"></a>

Questa sezione fornisce diverse note importanti che potrebbero esserti utili. 

1. Per eseguire la migrazione a un cluster Slurm multi-controller, completa queste fasi.

   1. Segui le istruzioni in [Fornitura di risorse tramite stack CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md) per allocare tutte le risorse richieste.

   1. Segui le istruzioni in [Preparazione e caricamento degli script del ciclo di vita](sagemaker-hyperpod-multihead-slurm-scripts.md) per caricare gli script del ciclo di vita aggiornati. Quando aggiorni il file `provisioning_parameters.json`, sposta il gruppo di controller esistente nella sezione `worker_groups` e aggiungi un nuovo nome per il gruppo di controller nella sezione `controller_group`.

   1. Esegui la chiamata API [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) per creare un nuovo gruppo di controller e mantenere i gruppi di istanze di calcolo e il gruppo di controller originali.

1. Per ridurre verticalmente il numero di nodi controller, utilizza il comando della CLI [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html). Per ogni gruppo di istanze del controller, il numero minimo di nodi controller che possono essere ridotti verticalmente è 1. Ciò significa che non è possibile ridurre verticalmente a 0 il numero di nodi controller.
**Importante**  
Per i cluster creati prima del 24 gennaio 2025, è necessario aggiornare il software del cluster utilizzando l'[UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API prima di eseguire il comando CLI [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html).

   Di seguito è riportato un comando della CLI di esempio per ridurre verticalmente il numero di nodi controller.

   ```
   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. Per eliminare in batch i nodi del controller, usa il comando [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)CLI. Per ogni gruppo di istanze del controller, è necessario mantenere almeno un nodo controller. Per eliminare in batch tutti i nodi controller non può essere utilizzata l’operazione API.
**Importante**  
Per i cluster creati prima del 24 gennaio 2025, è necessario aggiornare il software del cluster utilizzando l'[UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API prima di eseguire il comando CLI [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html).

   Di seguito è riportato un comando della CLI di esempio per eliminare in batch i nodi controller.

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

1. Per risolvere i problemi di creazione del cluster, controlla il messaggio di errore nella pagina dei dettagli del cluster nella tua console AI. SageMaker Puoi anche utilizzare CloudWatch i log per risolvere i problemi di creazione dei cluster. **Dalla CloudWatch console, scegli Gruppi di log.** Quindi, cerca `clusters` per visualizzare l’elenco dei gruppi di log relativi alla creazione del cluster.  
![\[Immagine che mostra i gruppi di log del SageMaker HyperPod cluster Amazon nella CloudWatch console.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-logs.png)

# Revisione dei riferimenti alle variabili di ambiente
<a name="sagemaker-hyperpod-multihead-slurm-variables-reference"></a>

Le seguenti variabili di ambiente sono definite e utilizzate nel tutorial di [Configurazione di più nodi controller per un cluster SageMaker HyperPod Slurm](sagemaker-hyperpod-multihead-slurm-setup.md). Queste variabili di ambiente sono disponibili solo nella sessione corrente a meno che non vengano esplicitamente mantenute. Sono definite utilizzando la sintassi `$variable_name`. Le variabili con key/value coppie rappresentano risorse AWS create, mentre le variabili senza chiavi sono definite dall'utente.


**Riferimenti alle variabili di ambiente**  

| Variabile | Description | 
| --- | --- | 
| \$1BACKUP\$1SUBNET |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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/it_it/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/it_it/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/it_it/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/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1EMAIL |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1POLICY |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1REGION |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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/it_it/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/it_it/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/it_it/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/it_it/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/it_it/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/it_it/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/it_it/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/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 