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

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

在中创建计算节点组 AWS PCS

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

先决条件

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

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

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

  • 您的节点组实例的启动模板。有关更多信息,请参阅 将 Amazon EC2 启动模板与 AWS PCS

  • 要创建使用 Amazon EC2 Spot 实例的计算节点组,您必须拥有AWSServiceRoleForEC2Spot服务相关角色。 AWS 账户有关更多信息,请参阅 Amazon EC2 Spot 角色适用于 AWS PCS

在中创建计算节点组 AWS PCS

您可以使用 AWS Management Console 或创建计算节点组 AWS CLI。

AWS Management Console
使用控制台创建计算节点组
  1. 打开控制AWS PCS台

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

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

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

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

      重要

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

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

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

    4. IAM实例配置文件-为节点组选择实例配置文件。实例配置文件授予实例安全访问 AWS 资源和服务的权限。如果您还没有准备好,请参阅IAM AWS 并行计算服务的实例配置文件以了解如何创建一个。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Replace(替换) region带有 AWS 区域 用于创建集群的 ID,例如us-east-1

  2. Replace(替换) my-cluster 使用您的集群clusterId的名称或。

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

  4. Replace(替换) subnet-ExampleID1 使用集群IDsVPC中的一个或多个子网。

  5. Replace(替换) lt-ExampleID1 使用您的自定义启动模板的 ID。如果您还没有准备好,请参阅将 Amazon EC2 启动模板与 AWS PCS以了解如何创建一个。

    重要

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

  6. Replace(替换) launch-template-version 如果要将节点组与特定版本关联,则使用特定的启动模板版本。

  7. Replace(替换) arn:InstanceProfile使用您的IAM实例配置文件中的。ARN如果您还没有准备好,请参阅将 Amazon EC2 启动模板与 AWS PCS获取指导。

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

  9. Replace(替换) t3.large 使用另一种实例类型。您可以通过指定instanceType设置列表来添加更多实例类型。例如,--instance-configs instanceType=c6i.16xlarge,instanceType=c6a.16xlarge。 所有实例类型都必须具有相同的处理器架构(x864_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

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

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

  • 您可以使用在按需 (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