View a markdown version of this page

Job-level 缩放 - AWS 个

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

Job-level 缩放

AWS PCS 使用任务级别扩展来管理集群的动态容量(您在计算节点组上设置的最小和最大数量之间的实例)。 AWS PCS 定期审查等待的任务,启动 Amazon EC2 实例以满足这些任务,并在任务完成和实例空闲时向下扩展动态容量。你无法管理这个过程。 AWS PCS 会评估您的工作负载并为您调整容量。

静态容量(始终保持开启状态的最小容量)不受任务级别扩展的影响。有关更多信息,请参阅在 AWS PCS 中创建计算节点组。

日程安排和扩展如何协同工作

当您提交任务时,Slurm 会选择并分配满足任务要求的集群节点。对于由动态容量支持的已分配节点, AWS PCS 会启动支持这些节点所需的 Amazon EC2 实例,并将每个实例分配给其节点。您不能直接管理这些 Amazon EC2 实例。 AWS PCS 代表您处理启动和释放动态容量。

操作方法 AWS PCS 为工作提供容量

只有在所有必需的节点都可用后,作业才会运行。它不是从部分分配开始的。 AWS PCS 如何提供容量取决于任务要求和计算节点组的配置。例如,它取决于任务需要多少节点,它是否跨越多个计算节点组,它请求的容量是否超过单个 Amazon EC2 请求所能提供的容量,以及目标节点组是否由容量预留支持。

AWS PCS 会评估每项工作并选择适当的方法。实际上,这采用以下两种形式之一:

  • 一次完成。 AWS PCS 一起提供任务所需的所有节点,或者不提供任何节点。只有在其全部容量可用时,作业才会启动。

  • 循序渐进。对于某些任务,例如那些需要的容量超过单个 Amazon EC2 请求所能提供的容量, AWS PCS 会在可用时提供容量,保留已获得的容量,同时努力实现全部容量。

当计算节点组使用 On-Demand 购买选项并列出多个子网时, AWS PCS 会按照您在CreateComputeNodeGroup或UpdateComputeNodeGroup请求中指定的子网顺序启动实例。如果子网无法提供请求的容量, AWS PCS 会尝试列表中的下一个子网,一直持续到找到可用容量为止。

当任务的全部容量不可用时,它无法启动。 AWS PCS 可能不会为任务启动任何实例,也可能释放已启动的实例。该任务仍处于待处理状态, AWS PCS 将在以后每隔一段时间对其进行重新评估,直到可以提供其容量为止。

例通过增量容量配置完成大型任务

假设你提交的任务需要大量的节点,超过一次可以提供的节点。 AWS PCS 为任务的一部分节点启动实例,分配这些实例,并保留该容量,同时继续按以后的间隔获取剩余节点。一旦所有必需的节点都可用,该任务就会启动。如果您需要确保任务启动时有全部容量可用,请使用容量预留来支持计算节点组,如下一节所述。

保证大型或时间敏感型工作的容量

如果任务需要大量容量,或者必须在特定时间启动,则提交时按需容量可能不可用。要提前预留容量以便在任务运行时可用,您可以使用 On-Demand 容量预留 (ODCR) 或 Amazon EC2 容量块进行机器学习。

将您的计算节点组配置为使用预留,然后将任务提交到与该节点组关联的队列。无论任务是否针对预留容量运行,预留容量都将根据您的 ODCR 或容量区块进行计费。有关更多信息,请参阅在 PCS 中使用 ODCR 和在 AWS PCS 中使用 Amazon EC2 Capacity Blocks 进行 AWS 机器学习。