本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建计算节点组 AWS PCS
本主题概述了可用选项,并介绍了在并 AWS 行计算服务 (AWS PCS) 中创建计算节点组时应考虑的事项。如果这是您第一次在中创建计算节点组 AWS PCS,我们建议您按照中的教程进行操作AWS 并行计算服务入门。本教程可以帮助您创建可运行的HPC系统,而无需扩展到所有可能的可用选项和系统架构。
先决条件
在中创建计算节点组 AWS PCS
您可以使用 AWS Management Console 或创建计算节点组 AWS CLI。
- AWS Management Console
-
使用控制台创建计算节点组
-
打开控制AWS PCS台。
-
选择要在其中创建计算节点组的集群。导航到 “计算节点组”,然后选择 “创建”。
-
在计算节点组设置部分,为您的节点组提供一个名称。名称只能包含区分大小写的字母数字字符和连字符。它必须以字母字符开头,长度不能超过 25 个字符。该名称在集群中必须是唯一的。
-
在 “计算配置” 下,输入或选择以下值:
-
EC2启动模板-选择用于此节点组的自定义启动模板。启动模板可用于自定义网络设置,例如子网、安全组、监控配置和实例级存储。如果您尚未准备好启动模板,请参阅将 Amazon EC2 启动模板与 AWS PCS以了解如何创建启动模板。
AWS PCS为每个计算节点组创建托管启动模板。这些都被命名pcs-identifier
-do-not-delete
了。创建或更新计算节点组时请勿选择这些,否则节点组将无法正常运行。
-
EC2启动模板版本-您必须选择自定义启动模板的版本。如果稍后更改版本,则必须更新计算节点组以检测启动模板中的更改。有关更多信息,请参阅 更新 AWS PCS计算节点组。
-
AMIID — 如果您的启动模板不包含 AMI ID,或者您想覆盖启动模板中的值,请在此处提供一个 AMI ID。请注意,AMI用于节点组的必须与兼容 AWS PCS。您也可以选择AMI提供的样本 AWS。有关此主题的更多信息,请参阅Amazon 机器映像 (AMIs) 适用于 AWS PCS。
-
IAM实例配置文件-为节点组选择实例配置文件。实例配置文件授予实例安全访问 AWS
资源和服务的权限。如果您还没有准备好,请参阅IAM AWS 并行计算服务的实例配置文件以了解如何创建一个。
-
子网-在 AWS PCS集群部署VPC位置中选择一个或多个子网。如果您选择多个子网,则节点之间将无法进行EFA通信,并且不同子网中的节点之间的通信可能会增加延迟。确保您在此处指定的子网与您在EC2启动模板中定义的任何子网相匹配。
-
实例-选择一个或多个实例类型来满足节点组中的扩展请求。所有实例类型都必须具有相同的处理器架构(x86_64 或 arm64)和数量。vCPUs如果实例有GPUs,则所有实例类型必须具有相同数量的GPUs。
-
扩展配置-指定节点组的最小和最大实例数。您可以定义静态配置(其中有固定数量的节点在运行),也可以定义动态配置,其中最多可以运行最大数量的节点。对于静态配置,请将最小值和最大值设置为相同的、大于零的数字。对于动态配置,请将最小实例数设置为零,将最大实例数设置为大于零的数字。 AWS PCS不支持混合使用静态和动态实例的计算节点组。
-
(可选)在 “其他设置” 下,指定以下内容:
-
购买选项-在 Spot 实例和按需实例之间进行选择。
-
分配策略 — 如果您选择了竞价购买选项,则可以指定在启动节点组中的实例时如何选择竞价容量池。有关更多信息,请参阅 Amazon 弹性计算云用户指南中的竞价型实例分配策略。如果您选择了按需购买选项,则此选项无效。
-
(可选)在 Slurm 自定义设置部分,请提供以下值:
-
权重-此值用于设置组中节点的优先级,以便进行调度。权重较低的节点具有更高的优先级,并且单位是任意的。有关更多信息,请参阅《中的重量》 Slurm 文档中)。
-
实际内存-此值设置节点组中节点上实际内存的大小(以 GB 为单位)。它本应与集群中的CR_CPU_Memory
选项一起使用 Slurm 配置在 AWS PCS。有关更多信息,请参阅RealMemory中的 Slurm 文档中)。
-
(可选)在 “标签” 下,将所有标签添加到您的计算节点组。
-
选择创建计算节点组。置备节点组Creating
时 AWS PCS会显示状态字段。这个过程可能需要几分钟。
- AWS CLI
-
要创建您的计算节点组,请使用以下命令 AWS CLI
使用以下命令创建队列。在运行命令之前,进行以下替换:
-
Replace(替换) region
带有 AWS 区域 用于创建集群的 ID,例如us-east-1
。
-
Replace(替换) my-cluster
使用您的集群clusterId
的名称或。
-
Replace(替换) my-node-group
使用您的计算节点组的名称。名称只能包含字母数字字符(区分大小写)和连字符。它必须以字母字符开头,长度不能超过 25 个字符。该名称在集群中必须是唯一的。
-
Replace(替换) subnet-ExampleID1
使用集群IDsVPC中的一个或多个子网。
-
Replace(替换) lt-ExampleID1
使用您的自定义启动模板的 ID。如果您还没有准备好,请参阅将 Amazon EC2 启动模板与 AWS PCS以了解如何创建一个。
AWS PCS为每个计算节点组创建托管启动模板。这些都被命名pcs-identifier
-do-not-delete
了。创建或更新计算节点组时请勿选择这些,否则节点组将无法正常运行。
-
Replace(替换) launch-template-version
使用特定的启动模板版本。 AWS PCS将您的节点组与该特定版本的启动模板相关联。
-
Replace(替换) arn:InstanceProfile
使用您的IAM实例配置文件中的。ARN如果您还没有准备好,请参阅将 Amazon EC2 启动模板与 AWS PCS获取指导。
-
Replace(替换) min-instances
以及 max-instances
使用整数值。您可以定义静态配置(其中有固定数量的节点在运行),也可以定义动态配置,其中最多可以运行最大数量的节点。对于静态配置,请将最小值和最大值设置为相同的、大于零的数字。对于动态配置,请将最小实例数设置为零,将最大实例数设置为大于零的数字。 AWS PCS不支持混合使用静态和动态实例的计算节点组。
-
Replace(替换) 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
您可以将几个可选的配置设置添加到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 为单位)。它本应与您的集群 AWS PCS中的CR_CPU_Memory
选项结合使用 Slurm 配置。有关更多信息,请参阅RealMemory中的 Slurm 文档中)。
您可以使用以下命令查询节点组的状态。在节点组的状态达到之前,您将无法将其与队列关联ACTIVE
。
aws pcs get-compute-node-group --region region
\
--cluster-identifier my-cluster
\
--compute-node-group-identifier my-node-group