View a markdown version of this page

在中创建计算节点组 AWS 个 - AWS 个

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在中创建计算节点组 AWS 个

本主题概述了可用选项,并描述了在 AWS 并行计算服务 (AWS PCS) 中创建计算节点组时应考虑的事项。如果这是您第一次在 AWS PCS 中创建计算节点组,我们建议您按照中的教程进行操作开始使用 AWS 并行计算服务。本教程可以帮助您创建可运行的 HPC 系统,而无需扩展到所有可能的可用选项和系统架构。

注意

您可以在计算节点组上配置自定义 Slurm 设置,以控制资源利用率和节点级行为。有关更多信息,请参阅 在中配置自定义 Slurm 设置 AWS 个

注意

要在计算节点生命周期的定义点(例如挂载文件系统、安装软件或加入目录服务)运行自定义脚本,而不将逻辑嵌入到启动模板用户数据中,请使用节点生命周期操作。有关更多信息,请参阅 节点生命周期操作

重要

AWS PCS 目前需要支持 IPv4 的内核来进行本地节点通信,即使您在 IPv6-only 网络中使用 AWS PCS 也是如此。有关更多信息,请参阅 适用于 AWS PCS 的自定义 Amazon 机器映像 (AMIs)

先决条件

  • 足够的服务配额可在您的中启动所需数量的 EC2 实例 AWS 区域。您可以使用AWS 管理控制台来检查和请求增加服务配额。

  • 满足 PCS 网络要求的现有 V AWS PC 和子网。我们建议您在部署集群以供生产用途之前彻底了解这些要求。有关更多信息,请参阅 AWS PCS VPC 和子网要求和注意事项。您也可以使用 CloudFormation 模板创建 VPC 和子网。 AWS 为 CloudFormation 模板提供了 HPC 配方。有关更多信息,请参阅上的 aws-hpc-recipes 。 GitHub

  • 一个 IAM 实例配置文件,有权调用 AWS PCS RegisterComputeNodeGroupInstance API 操作和访问节点组实例所需的任何其他 AWS 资源。有关更多信息,请参阅 的 IAM 实例配置文件 AWS 并行计算服务

  • 您的节点组实例的启动模板。有关更多信息,请参阅 在 AWS PCS 上使用亚马逊 EC2 启动模板

  • 要创建使用 Amazon EC2 竞价型实例的计算节点组,您的 AWS 账户中必须具有AWSServiceRoleForEC2Spot服务相关角色。有关更多信息,请参阅 亚马逊 EC2 竞价角色 AWS PCS

在中创建计算节点组 AWS 个

您可以使用 AWS 管理控制台 或创建计算节点组 AWS CLI。

AWS 管理控制台
使用控制台创建您的计算节点组
  1. 打开 AWS PCS 控制台

  2. 选择要在其中创建计算节点组的集群。导航到计算节点组,然后选择创建

  3. 计算节点组设置部分中,为您的节点组提供一个名称。该名称只能包含区分大小写的字母数字字符和连字符。它必须以字母字符开头,且长度不能超过 25 个字符。该名称在集群中必须是唯一的。

  4. 在 “计算配置” 下,输入或选择以下值:

    1. EC2 启动模板 -选择用于此节点组的自定义启动模板。启动模板可用于自定义网络设置,例如子网和安全组、监控配置和实例级存储。如果您没有准备启动模板,请参阅在 AWS PCS 上使用亚马逊 EC2 启动模板以了解如何创建启动模板。

      重要

      AWS PCS 为每个计算节点组创建托管启动模板。它们被命名pcs-identifier-do-not-delete了。创建或更新计算节点组时不要选择这些,否则该节点组将无法正常运行。

    2. EC2 启动模板版本 -您必须选择自定义启动模板的版本。如果您稍后更改版本,则必须更新计算节点组以检测启动模板中的更改。有关更多信息,请参阅 更新一个 AWS PCS 计算节点组

    3. AMI ID — 如果您的启动模板不包含 AMI ID,或者如果您想覆盖启动模板中的值,请在此处提供 AMI ID。请注意,用于节点组的 AMI 必须与 AWS PCS 兼容。您也可以选择由提供的示例 AMI AWS。有关此主题的更多信息,请参阅的亚马逊机器映像 (AMI) AWS 个

    4. IAM 实例配置文件 -为节点组选择实例配置文件。实例配置文件向实例授予安全访问 AWS 资源和服务的权限。如果你还没有准备好,你可以选择创建基本配置文件,让 AWS PCS 根据最低政策为你创建一个基本配置文件,或者参见的 IAM 实例配置文件 AWS 并行计算服务

    5. 子网 -在部署 PC AWS S 集群的 VPC 中选择一个或多个子网。如果您选择多个子网,则节点之间将无法使用 EFA 通信,并且不同子网中的节点之间的通信可能会增加延迟。确保您在此处指定的子网与您在 EC2 启动模板中定义的任何子网相匹配。

    6. 实例 — 选择一个或多个实例类型来满足节点组中的扩展请求。所有实例类型都必须具有相同的处理器架构(x86_64 或 arm64)和 vCPU 数量。如果实例具有 GPU,则所有实例类型必须具有相同数量的 GPU。

    7. 扩展配置 -指定节点组的最小和最大实例数。将最小值(最小值)设置为等于静态容量的最大值(最大值)(例如,5 分钟,最大 5)。将全动态缩放的最小值设置为 0(例如,0 分钟,最大 10)。在 Slurm 24.05 或更高版本中,您可以将混合容量的最小值设置为大于 0 和小于最大值。这样可以保持基准实例数并根据需要向上扩展(例如,2 分钟,最大 10 个)。

  5. (可选)在 “其他设置” 下,指定以下内容:

    1. 购买选项 — 选择 On-Demand 实例、竞价型实例、可中断容量预留或现有容量区块。选择On-Demand是否计划使用 On-Demand 容量预留 (ODCR)。有关更多信息,请参阅 ODCRs 与 AWS PCS 一起使用。选择可中断容量预留以使用共享的可中断 ODCR ()。I-ODCR有关更多信息,请参阅 I-ODCRs 与一起使用 AWS 个。选择容量区块,使用现有的 Amazon EC2 容量区块进行机器学习预留。有关更多信息,请参阅 将 Amazon EC2 容量块用于机器学习 AWS 个

    2. 分配策略 — 如果您选择了竞价购买选项,则可以指定在节点组中启动实例时如何选择竞价容量池。有关更多信息,请参阅《亚马逊弹性计算云用户指南》中的竞价型实例分配策略。如果您选择了 On-demand 购买选项,则此选项不起作用。

  6. (可选)在 “调度器配置” 部分中,您可以指定以下内容:

    1. Scale-down 空闲时间 —(可选)缩小此节点组中的空闲节点之前的时间(以秒为单位)。如果未设置,则使用集群级别的值。此设置需要Slurm版本 25.11 或更高版本。

  7. (可选)在Slurm自定义设置部分,您可以添加参数名称和值对来配置其他 Slurm 设置。有关支持参数的完整列表,请参阅的自定义 Slurm 设置 AWS PCS 计算节点组

  8. (可选)在节点生命周期操作部分中,您可以添加在计算节点生命周期的定义点上运行的脚本。选择 “添加脚本” 。选择生命周期阶段,并指定脚本位置、名称、可选参数、错误处理行为和执行策略。要添加更多脚本,请重复这些步骤。脚本在一个阶段内从上到下运行。要更改执行顺序,请为脚本选择 “操作”,然后选择 “上移” 或 “下移” 。有关更多信息,请参阅 节点生命周期操作

  9. (可选)在 “标签” 下,向您的计算节点组添加任何标签。

  10. 选择创建计算节点组状态字段显示 AWS PCS 配置节点组的Creating时间。这个过程可能需要几分钟。

建议的下一步
  • 将您的节点组添加到 AWS PCS 中的队列中,使其能够处理任务。

AWS CLI
使用创建计算节点组 AWS CLI

使用以下命令创建您的队列。在运行命令之前,进行以下替换:

  1. region替换为在中创建集群的 ID,例如us-east-1。 AWS 区域

  2. my-cluster替换为您的集群clusterId的名称或。

  3. my-node-group替换为您的计算节点组的名称。名称只能包含字母数字字符(区分大小写)和连字符。它必须以字母字符开头,且长度不能超过 25 个字符。该名称在集群中必须是唯一的。

  4. subnet-ExampleID1替换为集群 VPC 中的一个或多个子网 ID。

  5. lt-ExampleID1替换为您的自定义启动模板的 ID。如果您还没有准备好,请参阅在 AWS PCS 上使用亚马逊 EC2 启动模板以了解如何创建一个。

    重要

    AWS PCS 为每个计算节点组创建托管启动模板。它们被命名pcs-identifier-do-not-delete了。创建或更新计算节点组时不要选择这些,否则该节点组将无法正常运行。

  6. launch-template-version替换为特定的启动模板版本。 AWS PCS 将您的节点组与启动模板的特定版本关联起来。

  7. arn:InstanceProfile替换为您的 IAM 实例配置文件的 ARN。如果您没有准备好,请参阅在 AWS PCS 上使用亚马逊 EC2 启动模板以获取指导。

  8. min-instancesmax-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)和 vCPU 数量。如果实例具有 GPU,则所有实例类型必须具有相同数量的 GPU。

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"}]'

有关更多信息,请参阅 的自定义 Slurm 设置 AWS PCS 计算节点组

例— 创建空闲时间向下缩小的计算节点组
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设置会覆盖该组中节点的集群级别值。此设置需要Slurm版本 25.11 或更高版本。

您可以将多个可选配置设置添加到该create-compute-node-group命令中。

  • 您可以指定您的自定义启动模板--amiId是否不包含对 AMI 的引用,或者您是否希望覆盖该值。请注意,用于节点组的 AMI 必须与 AWS PCS 兼容。您也可以选择由提供的示例 AMI AWS。有关此主题的更多信息,请参阅的亚马逊机器映像 (AMI) AWS 个

  • 用于--purchase-option选择 AWS PCS 为您的计算节点组购买 EC2 实例的方式。 On-Demand 是默认值。

    • ONDEMAND— 使用 On-Demand 实例。如果您计划使用 On-Demand 容量预留 (ODCR),也可以选择此选项。有关更多信息,请参阅 ODCRs 与 AWS PCS 一起使用

    • SPOT— 使用竞价型实例。如果您选择竞价型实例,还可以使用--allocation-strategy来定义 AWS PCS 在节点组中启动实例时如何选择竞价容量池。有关更多信息,请参阅《亚马逊弹性计算云用户指南》中的竞价型实例分配策略

    • CAPACITY_BLOCK— 使用现有的 Amazon EC2 容量区块进行机器学习预留。有关更多信息,请参阅 将 Amazon EC2 容量块用于机器学习 AWS 个

    • INTERRUPTIBLE_CAPACITY_RESERVATION— 使用共享的可中断 ODCR () I-ODCR。有关更多信息,请参阅 I-ODCRs 与一起使用 AWS 个

  • 可以使用为节点组中的节点提供Slurm配置选项--slurm-configuration。您可以设置权重(调度优先级)和实际内存。权重较低的节点具有较高的优先级,并且单位是任意的。有关更多信息,请参阅Slurm文档中的重量。实际内存设置节点组中节点上实际内存的大小(以 GB 为单位)。它应与Slurm配置中 AWS PCS 中的群集CR_CPU_Memory选项一起使用。有关更多信息,请参阅 Slurm文档中的 RealMemory

  • --node-lifecycle-actions用于在计算节点生命周期的定义时刻运行自定义脚本,例如挂载文件系统、安装软件或加入目录服务。有关更多信息,请参阅 在中配置节点生命周期操作 AWS 个。有关命令示例,请参见的节点生命周期操作示例 AWS 个

重要

创建计算节点组可能需要几分钟。

您可以使用以下命令查询节点组的状态。在节点组的状态达到该队列之前,您无法将其与队列关联ACTIVE

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