在 AWS 并行计算服务中创建集群 - AWS PC

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

在 AWS 并行计算服务中创建集群

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

先决条件

创建 AWS PCS 集群

您可以使用 AWS Management Console 或 AWS CLI 来创建集群。

AWS Management Console
创建集群
  1. https://console.aws.amazon.com/pcs/home#/clusters 上打开 AWS PCS 控制台,然后选择创建集群

  2. 集群设置部分,输入以下字段:

    • 集群名称-您的集群的名称。名称只能包含字母数字字符(区分大小写)和连字符。它必须以字母字符开头,长度不能超过 40 个字符。该名称在创建集群时 AWS 区域 AWS 账户 使用的名称必须是唯一的。

    • 调度程序-选择调度程序和版本。有关更多信息,请参阅 PCS 中的 Slurm 版本 AWS

    • 控制器大小-选择控制器的大小。这决定了 AWS PCS 集群可以管理多少并发任务和计算节点。您只能在创建集群时设置控制器的大小。有关尺码的更多信息,请参阅AWS PCS 中的集群大小

  3. 在 “网络” 部分中,为以下字段选择值:

    • 网络类型-为您的集群选择 IP 地址类型。您的集群可以同时使用 IPv4 或 IPv6,但不能同时使用两者。VPC 和子网必须使用相同的网络地址类型。每个子网使用的 IP 地址块必须至少有 1 个可用地址。 AWS 在每个子网中保留一些地址。有关更多信息,请参阅《Amazon VPC 用户指南》中的子网 CIDR 块

    • VPC — 选择一个满足 AWS PCS 要求的现有 VPC。有关更多信息,请参阅 AWS PCS VPC 和子网要求和注意事项。创建集群后,您无法更改其 VPC。如果未 VPCs 列出,则必须先创建一个。

    • 子网-列出了所选 VPC 中的所有可用子网。选择符合 AWS PCS 子网要求的子网。有关更多信息,请参阅 AWS PCS VPC 和子网要求和注意事项。我们建议您选择私有子网,以避免将您的调度程序端点暴露给公共 Internet。

    • 安全组-指定您希望 AWS PCS 与其为集群创建的网络接口关联的安全组。您必须至少选择一个允许集群与其计算节点之间通信的安全组。您可以选择 “快速创建安全组”,让 AWS PCS 在选定的 VPC 中创建具有必要配置的安全组,也可以选择现有安全组。有关更多信息,请参阅 安全组要求和注意事项

  4. (可选)在 Slurm 记账配置部分,您可以启用 Slurm 记账并设置记账参数。有关更多信息,请参阅 PCS 中的 Slurm 会计 AWS

  5. (可选)在 Slurm 配置部分,您可以指定 Slurm 配置选项来覆盖 PCS 设置的默认值: AWS

    • 缩小空闲时间 — 这控制了动态配置的计算节点在放置在计算节点上的任务完成或终止后保持活动状态的时间。将其设置为较长的值可以使后续作业更有可能在节点上运行,但可能会导致成本增加。较小的值可以降低成本,但可能会增加 HPC 系统在配置节点上而不是在节点上运行作业所花费的时间比例。

    • Prolog — 这是指向计算节点组实例上 prolog 脚本目录的完全限定路径。这与 Slurm 中的 Prolog 设置相对应。请注意,这必须是目录,而不是特定可执行文件的路径。

    • Epilog — 这是指向计算节点组实例上的 epilog 脚本目录的完全限定路径。这与 Slurm 中的 Epilog 设置相对应。请注意,这必须是目录,而不是特定可执行文件的路径。

    • 选择类型参数-这有助于控制 Slurm 使用的资源选择算法。将此值设置为CR_CPU_Memory将激活内存感知调度,而将其设置为CR_CPU将激活仅限 CPU 的调度。此参数对应于 Slurm 中的SelectTypeParameters设置,其中 SelectType PCS 设置select/cons_tres为 AWS 。

  6. (可选)在 “标签” 下,将所有标签添加到您的 AWS PCS 集群。

  7. 选择创建集群。 AWS PCS 创建集群Creating时会显示状态字段。此过程可能耗时数分钟。

重要

每个 AWS 区域 集群只能有 1 个处于一种Creating状态的集群 AWS 账户。 AWS 如果您在尝试创建集群时已有处于Creating状态的集群,PCS 会返回错误。

AWS CLI
创建集群
  1. 使用以下命令创建集群。在运行命令之前,进行以下替换:

    • region替换为您要 AWS 区域 在其中创建集群的 ID,例如us-east-1

    • my-cluster 替换为您的集群名称。名称只能包含字母数字字符(区分大小写)和连字符。它必须以字母字符开头,长度不能超过 40 个字符。该名称在创建集群的 AWS 账户 位置 AWS 区域 和创建集群的地方必须是唯一的。

    • 24.11替换为任何支持的 Slurm 版本。

      注意

      AWS PCS 目前支持 Slurm 24.11 和 24.05。

    • SMALL替换为任何支持的群集大小。这决定了 AWS PCS 集群可以管理多少并发任务和计算节点。它只能在创建集群时进行设置。有关尺码的更多信息,请参阅AWS PCS 中的集群大小

    • 的值替换为您自己的值。subnetIds我们建议您选择私有子网,以避免将您的调度程序端点暴露给公共 Internet。

    • 指定您希望 AWS PCS 与它为集群创建的网络接口关联的。securityGroupIds安全组必须与集群位于同一 VPC 中。您必须至少选择一个允许集群与其计算节点之间通信的安全组。有关更多信息,请参阅 安全组要求和注意事项

    • 或者,您可以使用提供自定义 KMS 密钥来加密控制器的数据--kms-key-id kms-keykms-key替换为现有的 KMS ARN、密钥 ID 或别名。请注意,用于创建集群的账户必须具有自定义 KMS 密钥的kms:Decrypt权限。

    aws pcs create-cluster --region region \ --cluster-name my-cluster \ --scheduler type=SLURM,version=24.11 \ --size SMALL \ --networking subnetIds=subnet-ExampleId1,securityGroupIds=sg-ExampleId1
    • 要使用 IPv6,请networkType=IPV6添加到--networking配置中。

      --networking networkType=IPV6,subnetIds=subnet-ExampleId1,securityGroupIds=sg-ExampleId1
    • 或者,您可以添加自定义 Slurm 行为的--slurm-configration选项并指定 Slurm 配置选项。以下示例将缩减空闲时间设置为 60 分钟(3600 秒),启用 Slurm 记账,并将slurm.conf设置指定为的值。slurmCustomSettings有关更多信息,请参阅 PCS 中的 Slurm 会计 AWS

      注意

      Slurm 24.11 或更高版本支持记账。

      aws pcs create-cluster --region region \ --cluster-name my-cluster \ --scheduler type=SLURM,version=24.11 \ --size SMALL \ --networking subnetIds=subnet-ExampleId1,securityGroupIds=sg-ExampleId1 --slurm-configuration scaleDownIdleTimeInSeconds=3600,accounting='{mode=STANDARD}',slurmCustomSettings='[{parameterName=SelectTypeParameters,parameterValue=CR_CPU_Memory}]'
  2. 配置集群可能需要几分钟。可使用以下命令查询集群的状态。在集群的状态字段变为之前,请勿继续创建队列或计算节点组ACTIVE

    aws pcs get-cluster --region region --cluster-identifier my-cluster
重要

每个 AWS 区域 集群只能有 1 个处于一种Creating状态的集群 AWS 账户。 AWS 如果您在尝试创建集群时已有处于Creating状态的集群,PCS 会返回错误。

为您的集群推荐的后续步骤
  • 添加计算节点组。

  • 添加队列。

  • 启用日志记录。