

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

# Job-level 缩放
<a name="scaling-job-level"></a>

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

静态容量（始终保持开启状态的最小容量）不受任务级别扩展的影响。有关更多信息，请参阅在 AWS PCS 中[创建计算节点组](https://docs.aws.amazon.com/pcs/latest/userguide/working-with_cng_create.html)。

## 日程安排和扩展如何协同工作
<a name="scaling-how-scheduling-works"></a>

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

## 操作方法 AWS PCS 为工作提供容量
<a name="scaling-how-pcs-provides-capacity"></a>

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

AWS PCS 会评估每项工作并选择适当的方法。实际上，这采用以下两种形式之一：
+ **一次完成。** AWS PCS 一起提供任务所需的所有节点，或者不提供任何节点。只有在其全部容量可用时，作业才会启动。
+ **循序渐进。**对于某些任务，例如那些需要的容量超过单个 Amazon EC2 请求所能提供的容量， AWS PCS 会在可用时提供容量，保留已获得的容量，同时努力实现全部容量。

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

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

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

## 保证大型或时间敏感型工作的容量
<a name="scaling-guaranteeing-capacity"></a>

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

将您的计算节点组配置为使用预留，然后将任务提交到与该节点组关联的队列。无论任务是否针对预留容量运行，预留容量都将根据您的 ODCR 或容量区块进行计费。有关更多信息，请参阅在 PCS 中[使用 ODCR ](https://docs.aws.amazon.com/pcs/latest/userguide/capacity-reservations-odcr.html) 和在 AWS PCS 中[使用 Amazon EC2 Capacity Blocks 进行 AWS 机器学习。](https://docs.aws.amazon.com/pcs/latest/userguide/capacity-blocks.html)