亚马逊云科技 ParallelClust 3.3.0 现在支持按需容量预留

作者:马特·沃恩 | 2022

Capacity Reservation 按需容量预留 (ODCR) 使您能够在任何时间内为特定可用区内的 Amazon EC2 实例预留计算容量。当您将它们与 亚马逊云科技 ParallelCluster 一起使用时,它们有助于确保您的 HPC 工作负载有足够的资源来成功按时完成。

长期以来,亚马逊云科技 ParallelCluster 一直有可能通过手动设置来使用 ODCR。但是,使用 亚马逊云科技 ParallelCluster 3.3.0,您现在可以直接在 亚马逊云科技 ParallelCluster 配置中为 HPC 集群添加和修改 ODCR。

这篇文章解释了什么是 ODCR、这项新功能的工作原理以及如何配置您的 HPC 集群以使用它们。

什么是按需容量预留?

按需容量预留 (ODCR) 允许您预留 EC2 计算实例容量。您可以随时创建容量预留,无需与 亚马逊云科技 签订延期承诺。如果您有 储蓄计划 ,则可以将其与您的 ODCR 结合使用,以预留实例容量,同时利用节省的成本。一旦在您的账户中配置了容量预留,容量就会变为可用并开始计费。当您不再需要容量时,请取消容量预留以释放容量并停止产生费用。您可以随时手动修改或取消容量预留。您也可以安排它们在将来的某个时间自动停止。

有两种按需容量预留: 开放式 ODCR 和 向 ODCR。

开放的 ODCR 下, 当启动 Amazon EC2 实例时, 您不必提供预留标识符。取而代之的是,在预留开始后启动的、按实例类型、平台和可用区与预留相匹配的实例会自动分配给 ODCR。

使用 有针对性的 ODC R 需要您在实例启动时提供 ODCR 标识符或资源组 ARN。预留到期后,将无法再启动实例。这可能是测量利用率的好方法,同时还可以确保足够的容量。

有什么新内容?

亚马逊云科技 ParallelCluster 历来支持开放 ODCR,前提是它启动的实例类型与预留属性相匹配。自 ParallelCluster 3.1.1 起,您可以通过编辑集群头节点上的文件来添加某些 EC2 API 参数,从而使用目标 ODCR。

亚马逊云科技 ParallelCluster 3.3.0 改善了这种体验。现在,您可以直接在 亚马逊云科技 ParallelCluster 配置文件中配置 ODCR。您可以为 Slurm 队列中的每种计算资源指定容量预留标识符、容量资源组 ARN 和集群置放群组的组合(图 1)。重要的是,您可以在不中断集群操作的情况下动态添加或删除队列的容量预留。

如果你之前在 ParallelCluster 中使用过集 群置放群组 ,你可能会意识到 计算资源 配置中 存在 网络 节点。 这是因为在 ParallelCluster 3.3.0 中,每个计算资源都可以有自己的集群置放群组。ParallelCluster 文档中对此功能进行了更详细的描述,因为它的应用程序不仅仅与 ODCR 相关。

Figure 1: ParallelCluster configurations now support capacity reservations in combination with networking placement groups.

图 1:ParallelCluster 配置现在支持将容量预留与网络置放群组结合使用。

如何在 亚马逊云科技 ParallelCluster 3.3.0 中使用 ODCR

要在 ParallelCluster 中使用有针对性的 ODCR,你需要创建一个新集群。按照本在线指南将版本更新到 ParallelCluster 或 将其 安装到 3.3.0 版。 按如下所述创建新的群集配置文件(或更新现有集群),然后使用其配置创建新集群。

配置 ODCR

您可以为任何 Slurm 队列中的任何计算资源配置 ODCR。配置详细信息将有所不同,具体取决于您是使用每个 Slurm 队列 计算资源 的单一实例类型 还是多个实例类型。

对于单实例类型,您有两个选择。您可以 为所需的实例类型 创建目标 ODCR ,并将其预留 ID 作为 CapacityReservationID 直接添加到计算资源中 或者,您可以 创建一个 包含您的预留的容量预留组 ,并将其作为 CapacityReservationResourceGroupArn 添加到计算资源中。

Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - Name: q1
      ComputeResources:
        - Name: cr1
          InstanceType: c6a.48xlarge
          MinCount: 1
          MaxCount: 8
          CapacityReservationTarget:
            CapacityReservationId: cr-01234567890abdef0
# OR #
            CapacityReservationResourceGroupArn: arn:aws:resource-groups:us-east-1:123456791537:group/MyCRGroup

请注意,在创建容量预留组以用于 亚马逊云科技 ParallelCluster 时,必须使用 亚马逊云科技 命令行接口 (亚马逊云科技 CLI),而不是 亚马逊云科技 管理控制台。这是因为控制台仅支持创建 基于 标签 和堆栈 的 资源组,而 ParallelCluster 不支持这些资源组。

如果每个 计算资源 有多个实例类型,则只能使用 CapacityReserv ationResourceGroup arn。 创建 容量预留组 , 其中包含 实例列表中每个 InstanceType 的 容量预留。 然后,在集群配置中指定群组的 ARN,如下所示:

…
Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - Name: q2
      ComputeResources:
        - Name: cr1
          Instances: 
            - InstanceType: c6a.24xlarge
            - InstanceType: r6a.24xlarge
            - InstanceType: m6a.24xlarge
          MinCount: 1
          MaxCount: 8
          CapacityReservationTarget:
            CapacityReservationResourceGroupArn: arn:aws:resource-groups:us-east-1:123456791537:group/MyCRGroup
...

使用集群置放群组

集群置放群组 (CPG) 是单个可用区内实例的逻辑分组,它们具有低网络延迟和高网络吞吐量的优点,有助于提高紧密耦合的 HPC 工作负载的性能。您可以通过创建集群置放群组 ODCR (CPG ODCR) 将它们与 ODCR 一起使用。

创建集群置放群组 ODCR

  1. 创建集群置放群组 (如果您还没有)。
  2. 创建目标 ODCR,并在创建时 指定集群置放群 组的 名称。
  3. 创建容量预留资源组来存放 ODCR。将您的预留标识符或群组 ARN 添加到集群配置中。然后,添加网络置放群组名称,如以下示例所示:
Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - Name: q1
      ComputeResources:
        - Name: cr1
          InstanceType: c6a.48xlarge
          MinCount: 1
          MaxCount: 8
          CapacityReservationTarget:
            CapacityReservationId: cr-01234567890abdef0
          Networking:
             PlacementGroup: 
                 Name: my-placement-group

更新您的集群

在集群运行 亚马逊云科技 ParallelCluster 3.3.0 后,您可以动态更新或修改集群上的容量预留配置。默认情况下,您需要停止计算舰队,更新集群,然后重新启动舰队以进行更改。 但是,您可以将 Slurm QueueUpdateStrategy 更改为 D RA IN 或 TERMINATE ,正如我们在 之前关于灵活实例类型的博客文章 中所讨论的那样。

对 ODCR 进行故障排除

创建了 ODCR 后,可以直接将其与 亚马逊云科技 ParallelCluster 3.3.0 配合使用。但是,您创建容量预留的请求本身可能会失败。值得一提的是可能发生这种情况的三个原因。

  • 当所需可用区中当前没有足够的 Amazon EC2 容量来容纳所请求的实例类型时,您的请求可能会失败。您可以通过等到稍后、切换可用区域或更改实例类型来解决这个问题。
  • 当请求的实例数量超过您的服务配额时,它可能会失败。您可以通过 请求增加按需实例的服务配 额 来解决此问题。确保它足够高,以容纳您的容量预留和您需要运行的任何其他并发实例。
  • 您的请求可能会因为其集群置放群组而失败。容量预留和置放群组必须位于同一个可用区内。此外,您只能为支持集群置放群组的实例类型创建容量预留。支持大多数实例类型,但您可以在 集群置放群组文档 中了解例外情况 。

摘要

在 亚马逊云科技 ParallelCluster 3.3.0 中,比以往任何时候都更容易使用按需容量预留 (ODCR) 来预留完成 HPC 工作负载所需的亚马逊 EC2 实例容量。开放容量预留设计为默认运行,而定向预留和带有置放群组的预留使用新的配置机制。您需要更新您的 亚马逊云科技 ParallelCluster 安装并更新您的集群才能利用这项新功能。

我们很想知道你在使用 亚马逊云科技 ParallelCluster 试用 ODCR 后的想法,以及我们如何改进这项新功能。请在 Twitter 上 通过 @TechHPC 联系我们 ,提供你的反馈和想法。

Matt Vaughn

Matt Vaughn

Matt Vaughn 是 HPC 和科学计算的首席开发者倡导者。他拥有生命科学背景,并且为长尾用户构建了用户友好的 HPC 和云系统。当不在笔记本电脑前时,他正在画画、读书、环游世界或和最近的狗一起玩耍。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。