本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用生命週期指令碼自訂 SageMaker HyperPod叢集
SageMaker HyperPod 一律 up-and-running提供運算叢集,這些叢集可高度自訂,因為您可以撰寫生命週期指令碼來 SageMaker HyperPod 說明如何設定叢集資源。下列主題是準備生命週期指令碼的最佳實務,以使用開放原始碼工作負載管理器工具設定 SageMaker HyperPod 叢集。
下列主題討論在 上準備生命週期指令碼以設定 Slurm 組態的深入最佳實務 SageMaker HyperPod。
高階概觀
下列程序是佈建 HyperPod 叢集並使用 Slurm 設定叢集的主要流程。這些步驟會依由下而上的方法排列。
-
規劃如何在 HyperPod 叢集上建立 Slurm 節點。例如,如果您想要設定兩個 Slurm 節點,則需要在 HyperPod 叢集中設定兩個執行個體群組。
-
準備檔案
provisioning_parameters.json
,即 佈建 Slurm 節點的組態表單 HyperPod。provisioning_parameters.json
應包含要在 HyperPod 叢集上佈建的 Slurm 節點組態資訊。這應該反映步驟 1 中 Slurm 節點的設計。 -
準備一組生命週期指令碼,在 上設定 Slurm HyperPod ,以安裝軟體套件,並在叢集中為您的使用案例設定環境。您應該以中央 Python 指令碼 (
lifecycle_script.py
) 的順序建構要集體執行的生命週期指令碼,並撰寫入門 Shell 指令碼 (on_create.sh
) 來執行 Python 指令碼。進入點 Shell 指令碼是您在步驟 5 稍後需要提供給 HyperPod叢集建立請求的內容。此外,請注意,您應該撰寫指令碼,預期
resource_config.json
會在叢集建立 HyperPod 期間產生。resource_config.json
包含 HyperPod 叢集資源資訊,例如 IP 地址、執行個體類型和 ARNs,而且 是設定 Slurm 所需的項目。 -
將所有來自先前步驟的檔案收集到資料夾中。
└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py
-
將所有檔案上傳至 S3 儲存貯體。複製並保留 S3 儲存貯體路徑。請注意,您應該從 開始建立 S3 儲存貯體路徑,
sagemaker-
因為您需要選擇與 IAM角色 SageMaker HyperPod連接的 AmazonSageMakerClusterInstanceRolePolicy,這僅允許從字首 開始的 S3 儲存貯體路徑sagemaker-
。下列命令是將所有檔案上傳至 S3 儲存貯體的範例命令。aws s3 cp --recursive
./lifecycle_files
s3://sagemaker-hyperpod-lifecycle/src
-
準備 HyperPod 叢集建立請求。
-
選項 1:如果您使用 AWS CLI,請依照 的指示,以 JSON 格式 (
create_cluster.json
) 撰寫叢集建立請求建立新的叢集。 -
選項 2:如果您使用 SageMaker 主控台 UI,請按照 的說明,在 HyperPod 主控台 UI 中填寫建立叢集請求表單建立 SageMaker HyperPod 叢集。
在此階段,請確定您在步驟 1 和 2 中規劃的相同結構中建立執行個體群組。此外,請確定您在 請求表單中從步驟 5 指定 S3 儲存貯體。
-
-
提交叢集建立請求。根據請求 HyperPod 佈建叢集,然後在 HyperPod 叢集執行個體中建立
resource_config.json
檔案,並在執行生命週期指令碼的叢集上設定 Slurm。
下列主題會逐步引導您,並深入探討如何組織組態檔案和生命週期指令碼以在叢集建立期間 HyperPod正常運作的詳細資訊。