

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 準備和上傳生命週期指令碼
<a name="sagemaker-hyperpod-multihead-slurm-scripts"></a>

建立所有必要的資源後，您將需要為 SageMaker HyperPod 叢集設定[生命週期指令碼](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts)。這些[生命週期指令碼](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts)提供[基本組態](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config)，您可以用來建立基本 HyperPod Slurm 叢集。

## 準備生命週期指令碼
<a name="sagemaker-hyperpod-multihead-slurm-prepare-scripts"></a>

請遵循下列步驟取得生命週期指令碼。

1. 將[生命週期指令碼](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts)從 GitHub 儲存庫下載到您的電腦。

1. 使用 [cp](https://docs.aws.amazon.com//cli/latest/reference/s3/cp.html) CLI 命令，將[生命週期指令碼](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts)上傳至您在[佈建基本資源](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-basic)中建立的 Amazon S3 儲存貯體。

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

## 建立組態檔案
<a name="sagemaker-hyperpod-multihead-slurm-update-config-file"></a>

請遵循下列步驟建立組態檔案，並將其上傳至您存放生命週期指令碼的同一 Amazon S3 儲存貯體。

1. 使用下列組態，建立名為 `provisioning_parameters.json` 的組態檔案。請注意，`slurm_sns_arn` 為選用。如果未提供，HyperPod 將不會設定 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. 將 `provisioning_parameters.json` 檔案上傳至您存放生命週期指令碼的同一 Amazon S3 儲存貯體。

   ```
   aws s3 cp /tmp/provisioning_parameters.json s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config/provisioning_parameters.json
   ```
**注意**  
如果您使用 API 驅動的組態，則不需要 `provisioning_parameters.json` 檔案。使用 API 驅動組態，您可以直接在 CreateCluster API 承載中定義 Slurm 節點類型、分割區和 FSx 掛載。如需詳細資訊，請參閱[使用 開始使用 SageMaker HyperPod AWS CLI](smcluster-getting-started-slurm-cli.md)。

## 驗證 Amazon S3 儲存貯體中的檔案
<a name="sagemaker-hyperpod-multihead-slurm-verify-s3"></a>

在您上傳所有生命週期指令碼和 `provisioning_parameters.json` 檔案之後，Amazon S3 儲存貯體看起來應該如下所示。

![\[此圖顯示上傳至 Amazon Simple Storage Service 主控台中 Amazon S3 儲存貯體的所有生命週期指令碼。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-scripts-s3.png)


如需詳細資訊，請參閱[從 HyperPod 提供的基本生命週期指令碼開始](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.html)。