在 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 Management Console來檢查和請求提高您的服務配額。

  • 符合 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 Management Console 或 建立運算節點群組 AWS CLI。

AWS Management Console
使用主控台建立運算節點群組
  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. 擴展組態 – 指定節點群組的執行個體數量下限和上限。您可以定義靜態組態,其中有固定數量的節點正在執行,或是動態組態,其中最多可以執行節點的計數上限。對於靜態組態,將最小值和最大值設定為相同,大於零個數字。對於動態組態,請將最小執行個體設定為零,最大執行個體設定為大於零的數字。 AWS PCS 不支援混合靜態和動態執行個體的運算節點群組。

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

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

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

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

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

  8. 選擇建立運算節點群組。當 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。您可以定義靜態組態,其中有固定數量的節點正在執行,或是動態組態,其中最多可以執行節點的計數上限。對於靜態組態,將最小值和最大值設定為相同,大於零個數字。對於動態組態,將最小執行個體設定為零,將最大執行個體設定為大於零的數字。 AWS PCS 不支援混合靜態和動態執行個體的運算節點群組。

  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 設定

有幾個選用的組態設定可以新增至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 容量區塊

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

重要

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

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

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