在 AWS PCS 中创建计算节点组 - AWS PC

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

在 AWS PCS 中创建计算节点组

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

重要

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

先决条件

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

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

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

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

  • 要创建使用 Amazon EC2 Spot 实例的计算节点组,您必须拥有AWSServiceRoleForEC2竞价服务相关角色。 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 上使用亚马逊 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 的亚马逊机器映像 (AMIs)

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

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

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

    7. 扩展配置-指定节点组的最小和最大实例数。您可以定义静态配置(其中有固定数量的节点在运行),也可以定义动态配置(最多可以运行最大节点数)。对于静态配置,请将最小值和最大值设置为相同的、大于零的数字。对于动态配置,请将最小实例数设置为零,将最大实例数设置为大于零的数字。 AWS PCS 不支持混合使用静态和动态实例的计算节点组。

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

    1. 购买选项-在 Spot 实例和按需实例之间进行选择。

    2. 分配策略 — 如果您选择了竞价购买选项,则可以指定在启动节点组中的实例时如何选择竞价容量池。有关更多信息,请参阅 Amazon 弹性计算云用户指南中的竞价型实例分配策略。如果您选择了按需购买选项,则此选项无效。

  6. (可选)在Slurm自定义设置部分中,提供以下值:

    1. 权重-此值用于设置组中节点的优先级,以便进行调度。权重较低的节点具有更高的优先级,并且单位是任意的。有关更多信息,请参阅Slurm文档中的重量

    2. 实际内存-此值设置节点组中节点上实际内存的大小(以 GB 为单位)。它本应与 AWS PCS 中群集Slurm配置中的CR_CPU_Memory选项结合使用。有关更多信息,请参阅 Slurm文档中的 RealMemory

  7. (可选)在 “标签” 下,将所有标签添加到您的计算节点组。

  8. 选择创建计算节点组。当 AWS PCS 配置节点组Creating时,会显示 “状态” 字段。这个过程可能需要几分钟。

建议采取下一步行动
  • 将您的节点组添加到 AWS PCS 中的队列中,使其能够处理作业。

AWS CLI
要创建您的计算节点组,请使用以下命令 AWS CLI

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

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

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

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

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

  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。您可以定义静态配置(其中有固定数量的节点在运行),也可以定义动态配置(最多可以运行最大节点数)。对于静态配置,请将最小值和最大值设置为相同的、大于零的数字。对于动态配置,请将最小实例数设置为零,将最大实例数设置为大于零的数字。 AWS PCS 不支持混合使用静态和动态实例的计算节点组。

  9. t3.large替换为其他实例类型。您可以通过指定instanceType设置列表来添加更多实例类型。例如 --instance-configs instanceType=c6i.16xlarge instanceType=c6a.16xlarge。所有实例类型都必须具有相同的处理器架构(x86_64 或 arm64),编号必须为 v。CPUs 如果实例有 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

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

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

  • 您可以使用在按需 (ONDEMAND) 和 Spot (SPOT) 实例之间进行选择--purchase-option。按需是默认设置。如果您选择竞价型实例,则还可以使用--allocation-strategy来定义 AWS PCS 在启动节点组中的实例时如何选择竞价型容量池。有关更多信息,请参阅 Amazon 弹性计算云用户指南中的竞价型实例分配策略

  • 可以使用为节点组中的节点提供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