SageMaker HyperPod 常見問 - Amazon SageMaker

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

SageMaker HyperPod 常見問

使用以下常見問題解答使用時的問題 SageMaker HyperPod。

問:為什麼在 Amazon 中找不到 SageMaker HyperPod 叢集的日誌群組 CloudWatch?

根據預設,代理程式記錄檔和執行個體啟動記錄檔會傳送至 HyperPod 平台帳戶的帳戶 CloudWatch。如果是使用者生命週期指令碼,生命週期設定記錄會傳送至您的帳戶 CloudWatch。

如果您使用 HyperPod 服務團隊提供的範例生命週期指令碼,您可以期望找到寫入的生命週期設定記錄檔/var/log/provision/provisioning.log,而且不會遇到這個問題。

不過,如果您使用自訂路徑從生命週期佈建收集記錄檔,但找不到帳戶中顯示的記錄群組 CloudWatch,則可能是由於生命週期指令碼中指定的記錄檔路徑不相符,以及在 HyperPod 叢集執行個體上執行的 CloudWatch 代理程式尋找的內容。在這種情況下,這表示您必須正確設定生命週期指令碼,才能將記錄檔傳送至 CloudWatch 代理程式,並相應地設定 CloudWatch 代理程式組態。若要解決此問題,請選擇下列其中一個選項。

  • 選項 1:更新生命週期指令碼以將記錄寫入/var/log/provision/provisioning.log

  • 選項 2:更新 CloudWatch 代理程式以尋找用於記錄生命週期佈建的自訂路徑。

    1. 每個 HyperPod 叢集執行個體都包含 JSON 格式的 CloudWatch 代理程式組態檔案,位於/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json。在組態檔案中,找到欄位名稱logs.logs_collected.files.collect_list.file_path。使用預設設定時 HyperPod執行個體 SageMaker HyperPod 層級的記錄,鍵值對應"file_path": "/var/log/provision/provisioning.log"如下所述。下面的代碼片段顯示了 JSON 文件的外觀與 HyperPod 默認配置。

      "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/provision/provisioning.log", "log_group_name": "/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]", "log_stream_name": "LifecycleConfig/[InstanceGroupName]/{instance_id}", "retention_in_days": -1 } ] } }, "force_flush_interval": 3 }
    2. "file_path"欄位名稱的值取代為您在生命週期指令碼中使用的自訂路徑。例如,如果您已設定要寫入的生命週期指令碼/var/log/custom-provision/custom-provisioning.log,請按如下方式更新值以與其相符。

      "file_path": "/var/log/custom-provision/custom-provisioning.log"
    3. 使用組態檔重新啟動 CloudWatch 代理程式,以完成套用自訂路徑。例如,下列 CloudWatch 命令顯示如何從步驟 1 開始使用 CloudWatch 代理程 CloudWatch 式組態檔重新啟動代理程式。如需詳細資訊,另請參閱疑難排解 CloudWatch 代理程式

      sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config -m ec2 -s -c \ file:/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json

問:Slurm 組態檔案中會 HyperPod 管理哪些特定組態,例如slurm.conf和?gres.conf

當您在/opt/slurm/etc/上建立 Slurm 叢集時 HyperPod, HyperPod 代理程式會設定slurm.confgres.conf檔案,以根據叢集建立要求和生命週期指令碼管理 Slurm HyperPod 叢集。下列清單顯示 HyperPod 代理程式處理和覆寫的特定參數。

重要

我們強烈建議您不要變更由管理的這些參數 HyperPod。

  • 在中 slurm.conf, HyperPod 設定下列基本參數:ClusterNameSlurmctldHostPartitionName、和NodeName

    此外,若要啟用此自動繼續功能, HyperPod 需要如下所示設定TaskPluginSchedulerParameters參數。 HyperPod 代理程式預設會使用必要值來設定這兩個參數。

    TaskPlugin=task/none SchedulerParameters=permit_job_expansion
  • 在中 gres.confNodeName針對 GPU 節點進行 HyperPod 管理。

問:如何在 Slurm 節點上執行泊塢視窗? HyperPod

為了協助您在上執行的 Slurm 節點上執行 Docker HyperPod, HyperPod 服務團隊會提供安裝指令碼,您可以將這些指令碼納入叢集建立的生命週期組態中。如需了解詳細資訊,請參閱 從 提供的基本生命週期指令碼開始 HyperPod在 上的 Slurm 運算節點上執行 Docker 容器 HyperPod

問:如何使用 P 執行個體的本機 NVMe 存放區,透過 Slurm 啟動 Docker 或 Enroot 容器?

由於主節點的預設根磁碟區通常受到 100GB EBS 磁碟區的限制,因此您需要設定 Docker 和 Enroot 來使用本機 NVMe 執行個體存放區。若要瞭解如何設定 NVMe 存放區並將其用於啟動 Docker 容器,請參閱。在 上的 Slurm 運算節點上執行 Docker 容器 HyperPod

問:如何設定 EFA 安全群組?

如果您想要使用已啟用 EFA 的執行個體建立 HyperPod 叢集,請務必設定安全性群組,以允許進出安全性群組本身的所有輸入和輸出流量。若要進一步了解,請參閱 Amazon EC2 使用者指南中的步驟 1:準備啟用 EFA 的安全群組

問:如何監控 HyperPod 叢集節點? 是否有任何 CloudWatch 量度匯出來源 HyperPod?

若要瞭解叢集的資源使用率,我們建議您將 HyperPod 叢集與適用於 Prometheus 的 Amazon 受管服務與 Amazon 受管服務整合。 HyperPod 透過各種開放原始碼 Grafana 儀表板和匯出程式套件,您可以匯出並視覺化與 HyperPod 叢集資源相關的指標。若要進一步了解如何為 Prometheus 設 SageMaker HyperPod 定 Amazon 受管 Grafana 和 Amazon 託管服務,請參閱。SageMaker HyperPod 叢集資源監控請注意, SageMaker HyperPod 目前不支援將系統指標匯出至 Amazon。 CloudWatch

問:是否可以將額外的儲存新增至 HyperPod 叢集節點? 叢集執行個體的本機執行個體存放區有限。

如果預設執行個體儲存體不足以容納工作負載,您可以為每個執行個體設定額外的儲存體 從 2024 年 6 月 20 日發行開始,您可以將額外的 Amazon Elastic Block Store (EBS) 磁碟區新增至叢集中的每個執行個體。 SageMaker HyperPod 請注意,此功能無法套用至 2024 年 6 月 20 日之前建立的 SageMaker HyperPod叢集現有執行個體群組。您可以修補 2024 年 6 月 20 日之前建立的現有 SageMaker HyperPod 叢集,並在其中新增新的執行個體群組,以利用此功能。此功能對於 2024 年 6 月 20 日之後建立的任何 SageMaker HyperPod 叢集都完全有效。