View a markdown version of this page

在 AWS PCS 中建立運算節點群組 - AWS PCS

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

在 AWS PCS 中建立運算節點群組

本主題提供可用選項的概觀,並說明在 AWS 平行運算服務 (AWS PCS) 中建立運算節點群組時應考量的事項。如果這是您第一次在 AWS PCS 中建立運算節點群組,建議您遵循 中的教學課程平行 AWS 運算服務入門。本教學課程可協助您建立運作中的 HPC 系統,而無需擴展到所有可用的選項和系統架構。

注意

您可以在運算節點群組上設定自訂 Slurm 設定,以控制資源使用率和節點層級行為。如需詳細資訊,請參閱在 AWS PCS 中設定自訂 Slurm 設定

注意

若要在運算節點生命週期中定義的點執行自訂指令碼,例如掛載檔案系統、安裝軟體或加入目錄服務,而不在啟動範本使用者資料中嵌入邏輯,請使用節點生命週期動作。如需詳細資訊,請參閱節點生命週期動作

重要

AWS PCS 目前需要支援 IPv4 的核心進行本機節點通訊,即使您在IPv6-only的網路中使用 AWS PCS。如需詳細資訊,請參閱AWS PCS 的自訂 Amazon Machine Image AMIs)

先決條件

  • 有足夠的服務配額,可在您的 中啟動所需數量的 EC2 執行個體 AWS 區域。您可以使用 AWS 管理主控台來檢查和請求提高您的服務配額。

  • 符合 AWS PCS 聯網需求的現有 VPC 和子網路 (s)。我們建議您在部署叢集以供生產使用之前,先徹底了解這些需求。如需詳細資訊,請參閱AWS PCS VPC 和子網路需求和考量事項。您也可以使用 CloudFormation 範本來建立 VPC 和子網路。 為 CloudFormation 範本 AWS 提供 HPC 配方。如需詳細資訊,請參閱 GitHub 上的 aws-hpc-recipes

  • IAM 執行個體描述檔,具有呼叫 AWS PCS RegisterComputeNodeGroupInstance API 動作和存取節點群組執行個體所需任何其他 AWS 資源的許可。如需詳細資訊,請參閱平行運算服務的 IAM AWS 執行個體描述檔

  • 節點群組執行個體的啟動範本。如需詳細資訊,請參閱搭配 AWS PCS 使用 Amazon EC2 啟動範本

  • 若要建立使用 Amazon EC2 Spot 執行個體的運算節點群組,您必須在您的 中具有 AWSServiceRoleForEC2Spot 服務連結角色 AWS 帳戶。如需詳細資訊,請參閱AWS PCS 的 Amazon EC2 Spot 角色

在 AWS PCS 中建立運算節點群組

您可以使用 AWS 管理主控台 或 建立運算節點群組 AWS CLI。

AWS 管理主控台
使用主控台建立運算節點群組
  1. 開啟 AWS PCS 主控台

  2. 選取您要建立運算節點群組的叢集。導覽至運算節點群組,然後選擇建立

  3. 運算節點群組設定區段中,提供節點群組的名稱。名稱只能包含區分大小寫的英數字元和連字號。它必須以字母字元開頭,且長度不可超過 25 個字元。名稱在叢集中必須是唯一的。

  4. 運算組態下,輸入或選取這些值:

    1. EC2 啟動範本 – 選取要用於此節點群組的自訂啟動範本。啟動範本可用來自訂網路設定,例如子網路、安全群組、監控組態和執行個體層級儲存。如果您沒有準備好啟動範本,請參閱 以搭配 AWS PCS 使用 Amazon EC2 啟動範本了解如何建立啟動範本。

      重要

      AWS PCS 會為每個運算節點群組建立受管啟動範本。這些名稱為 pcs-identifier-do-not-delete。請勿在建立或更新運算節點群組時選取這些節點群組,否則節點群組將無法正常運作。

    2. EC2 啟動範本版本 – 您必須選取自訂啟動範本的版本。如果您稍後變更版本,則必須更新運算節點群組,以偵測啟動範本中的變更。如需詳細資訊,請參閱更新 AWS PCS 運算節點群組

    3. AMI ID – 如果您的啟動範本不包含 AMI ID,或您想要覆寫啟動範本中的值,請在此處提供 AMI ID。請注意,用於節點群組的 AMI 必須與 AWS PCS 相容。您也可以選取 提供的範例 AMI AWS。如需此主題的詳細資訊,請參閱 AWS PCS 的 Amazon Machine Image AMIs)

    4. IAM 執行個體描述檔 – 選擇節點群組的執行個體描述檔。執行個體描述檔會授予執行個體安全存取 AWS 資源和服務的權限。如果您沒有準備好,您可以選取建立基本設定檔,讓 AWS PCS 使用最低政策為您建立設定檔,或參閱 平行運算服務的 IAM AWS 執行個體描述檔

    5. 子網路 – 在部署 AWS PCS 叢集的 VPC 中選擇一或多個子網路。如果您選擇多個子網路,則節點之間無法使用 EFA 通訊,而不同子網路中節點之間的通訊可能會增加延遲。請確定您在此處指定的子網路符合您在 EC2 啟動範本中定義的任何子網路。

    6. 執行個體 – 選擇一或多個執行個體類型,以滿足節點群組中的擴展請求。所有執行個體類型都必須具有相同的處理器架構 (x86_64 或 arm64) 和 vCPUs 數量。如果執行個體具有 GPUs,則所有執行個體類型都必須具有相同數目的 GPUs。

    7. 擴展組態 – 指定節點群組的執行個體數量下限和上限。設定等於靜態容量上限 (上限) 的最小值 (下限) (例如 5 分鐘、5 分鐘)。將完全動態擴展的最小值設定為 0 (例如 0 分鐘、10 上限)。使用 Slurm 24.05 或更新版本,您可以設定混合容量的最小值大於 0 且小於最大值。這可維持執行個體的基準數量,並視需要向上擴展 (例如 2 分鐘、10 上限)。

  5. (選用) 在其他設定下,指定下列項目:

    1. 購買選項 – 選取隨需執行個體、Spot 執行個體、可中斷的容量保留或現有的容量區塊。如果您計劃使用隨需容量保留 (ODCR),請選擇隨需。如需詳細資訊,請參閱搭配 AWS PCS 使用 ODCRs。選擇可中斷容量保留,以使用共用可中斷的 ODCR (I-ODCR)。如需詳細資訊,請參閱搭配 AWS PCS 使用 I-ODCRs。選擇容量區塊以使用現有的 Amazon EC2 容量區塊進行 ML 保留。如需詳細資訊,請參閱搭配 AWS PCS 使用適用於 ML 的 Amazon EC2 容量區塊

    2. 配置策略 – 如果您已選取 Spot 購買選項,您可以指定在節點群組中啟動執行個體時,如何選擇 Spot 容量集區。如需詳細資訊,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的 Spot 執行個體的配置策略。如果您已選取隨需購買選項,則此選項沒有作用。

  6. (選用) 在排程器組態區段中,您可以指定下列項目:

    1. 縮減閒置時間 – (選用) 此節點群組中閒置節點縮減之前的秒數。如果未設定,則會使用叢集層級值。此設定需要 25.11 Slurm版或更新版本。

  7. (選用) 在Slurm自訂設定區段中,您可以新增參數名稱和值對來設定其他 Slurm 設定。如需支援參數的完整清單,請參閱 AWS PCS 運算節點群組的自訂 Slurm 設定

  8. (選用) 在節點生命週期動作區段中,您可以新增在運算節點生命週期中定義點執行的指令碼。選擇新增指令碼。選取生命週期階段,並指定指令碼位置、名稱、選用引數、錯誤處理行為和執行政策。若要新增更多指令碼,請重複這些步驟。指令碼會在階段內從上到下執行。若要變更執行順序,請選擇指令碼的動作,然後選擇上移下移。如需詳細資訊,請參閱節點生命週期動作

  9. (選用) 在標籤下,將任何標籤新增至運算節點群組。

  10. 選擇建立運算節點群組。當 AWS PCS 佈建節點群組Creating時,狀態欄位會顯示 。這可能需要幾分鐘的時間。

建議的下一個步驟
  • 將節點群組新增至 AWS PCS 中的佇列,使其能夠處理任務。

AWS CLI
使用 建立運算節點群組 AWS CLI

使用下列命令建立您的佇列。執行命令之前,請執行下列替換:

  1. 以 的 ID 取代區域, AWS 區域 以在 中建立叢集,例如 us-east-1

  2. 以叢集的名稱或 取代 my-clusterclusterId

  3. my-node-group 取代為運算節點群組的名稱。此名稱僅能使用英數字元 (區分大小寫) 和連字號。它必須以字母字元開頭,且長度不可超過 25 個字元。名稱在叢集中必須是唯一的。

  4. subnet-ExampleID1 取代為叢集 VPC 中的一或多個子網路 IDs。

  5. 使用自訂啟動範本的 ID 取代 lt-ExampleID1。如果您沒有準備好,請參閱 以搭配 AWS PCS 使用 Amazon EC2 啟動範本了解如何建立。

    重要

    AWS PCS 會為每個運算節點群組建立受管啟動範本。這些名稱為 pcs-identifier-do-not-delete。請勿在建立或更新運算節點群組時選取這些節點群組,否則節點群組將無法正常運作。

  6. launch-template-version 取代為特定的啟動範本版本。 AWS PCS 會將您的節點群組與該特定版本的啟動範本建立關聯。

  7. 使用 IAM 執行個體描述檔的 ARN 取代 arn:InstanceProfile。如果您沒有準備,請參閱 搭配 AWS PCS 使用 Amazon EC2 啟動範本 以取得指引。

  8. 以整數值取代 min-instances max-instances。設定等於靜態容量上限 (上限) 的最小值 (下限) (例如 5 分鐘、5 分鐘)。將完全動態擴展的最小值設定為 0 (例如 0 分鐘、10 上限)。使用 Slurm 24.05 或更新版本,您可以設定混合容量的最小值大於 0 且小於最大值。這可維持執行個體的基準數量,並視需要向上擴展 (例如 2 分鐘、10 上限)。

  9. t3.large 取代為另一個執行個體類型。您可以指定instanceType設定清單來新增更多執行個體類型。例如,--instance-configs instanceType=c6i.16xlarge instanceType=c6a.16xlarge。所有執行個體類型都必須具有相同的處理器架構 (x86_64 或 arm64) 和 vCPUs 數量。如果執行個體具有 GPUs,則所有執行個體類型都必須具有相同數目的 GPUs。

aws pcs create-compute-node-group --region region \ --cluster-identifier my-cluster \ --compute-node-group-name my-node-group \ --subnet-ids subnet-ExampleID1 \ --custom-launch-template id=lt-ExampleID1,version='launch-template-version' \ --iam-instance-profile-arn=arn:InstanceProfile \ --scaling-config minInstanceCount=min-instances,maxInstanceCount=max-instance \ --instance-configs instanceType=t3.large
範例– 使用自訂 Slurm 設定建立運算節點群組
aws pcs create-compute-node-group --region region \ --cluster-identifier my-cluster \ --compute-node-group-name my-node-group \ --subnet-ids subnet-ExampleID1 \ --custom-launch-template id=lt-ExampleID1,version='launch-template-version' \ --iam-instance-profile-arn=arn:InstanceProfile \ --scaling-config minInstanceCount=min-instances,maxInstanceCount=max-instance \ --instance-configs instanceType=t3.large \ --slurm-configuration \ 'slurmCustomSettings=[{parameterName=Features,parameterValue="gpu,nvme"}]'

如需詳細資訊,請參閱AWS PCS 運算節點群組的自訂 Slurm 設定

範例– 建立具有縮減閒置時間的運算節點群組
aws pcs create-compute-node-group --region region \ --cluster-identifier my-cluster \ --compute-node-group-name my-gpu-nodes \ --subnet-ids subnet-ExampleID1 \ --custom-launch-template id=lt-ExampleID1,version='1' \ --iam-instance-profile-arn=arn:InstanceProfile \ --scaling-config minInstanceCount=0,maxInstanceCount=10 \ --instance-configs instanceType=p4d.24xlarge \ --slurm-configuration scaleDownIdleTimeInSeconds=300

運算節點群組層級scaleDownIdleTimeInSeconds的設定會覆寫此群組中節點的叢集層級值。此設定需要 25.11 Slurm版或更新版本。

有幾個選用的組態設定可以新增至create-compute-node-group命令。

  • 您可以指定自訂啟動範本--amiId是否不包含 AMI 的參考,或是您想要覆寫該值。請注意,用於節點群組的 AMI 必須與 AWS PCS 相容。您也可以選取 提供的範例 AMI AWS。如需此主題的詳細資訊,請參閱 AWS PCS 的 Amazon Machine Image AMIs)

  • 使用 --purchase-option 來選擇 AWS PCS 為您的運算節點群組購買 EC2 執行個體的方式。隨需是預設值。

    • ONDEMAND – 使用隨需執行個體。如果您計劃使用隨需容量保留 (ODCR),也請選擇此選項。如需詳細資訊,請參閱搭配 AWS PCS 使用 ODCRs

    • SPOT – 使用 Spot 執行個體。如果您選擇 Spot 執行個體,您也可以使用 --allocation-strategy 定義 AWS PCS 在節點群組中啟動執行個體時如何選擇 Spot 容量集區。如需詳細資訊,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的 Spot 執行個體的配置策略

    • CAPACITY_BLOCK – 使用現有的 Amazon EC2 容量區塊進行 ML 保留。如需詳細資訊,請參閱搭配 AWS PCS 使用適用於 ML 的 Amazon EC2 容量區塊

    • INTERRUPTIBLE_CAPACITY_RESERVATION – 使用共用的可中斷 ODCR (I-ODCR)。如需詳細資訊,請參閱搭配 AWS PCS 使用 I-ODCRs

  • 您可以使用 為節點群組中的節點提供Slurm組態選項--slurm-configuration。您可以設定權重 (排程優先順序) 和實際記憶體。權重較低的節點具有較高的優先順序,而且單位是任意的。如需詳細資訊,請參閱 Slurm 文件中的權重。實際記憶體會設定節點群組中節點上實際記憶體的大小 (以 GB 為單位)。其旨在與Slurm組態中 AWS PCS 中叢集的 CR_CPU_Memory選項搭配使用。如需詳細資訊,請參閱 Slurm 文件中的 RealMemory

  • 使用 在運算節點生命週期中定義的點--node-lifecycle-actions執行自訂指令碼,例如掛載檔案系統、安裝軟體或加入目錄服務。如需詳細資訊,請參閱在 AWS PCS 中設定節點生命週期動作。如需範例命令,請參閱 AWS PCS 的節點生命週期動作範例

重要

建立運算節點群組可能需要幾分鐘的時間。

您可以使用下列命令查詢節點群組的狀態。在節點群組的狀態達到 之前,您將無法將節點群組與佇列建立關聯ACTIVE

aws pcs get-compute-node-group --region region \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-node-group