AWS BATCH - 如何 运行 更多并发作业

AWS BATCH - how to run more concurrent jobs

我刚刚开始使用 AWS BATCH 处理我的深度学习工作负载。我创建了一个具有以下配置的计算环境:

我帐户的最大 vCPU 限制数是 16,我的每个作业都需要 16GB 内存。我观察到最多 2 个作业可以 运行 在任何时间点并发。我之前使用 allocation strategy: BEST_FIT 并将其更改为 allocation strategy: BEST_FIT_PROGRESSIVE 但我仍然看到只有 2 个作业可以同时 运行。这限制了我在给定时间内可以进行的实验量。我可以做些什么来增加可以同时 运行 的作业数量?

我刚刚自己弄明白了。我在这里发布一个答案,以防将来有人发现它有帮助。事实证明,分配给我的每个作业的实例都是 g4dn2xlarge。这些实例中的每一个都占用 8 个 vCPU。由于我的 vCPU 限制是 16,因此只有 2 个作业可以同时 运行。解决方案之一是要求 AWS 通过创建新的支持案例来提高 vCPU 的限制。另一种解决方案可能是修改计算环境以使用消耗 4 个 vCPU 的 GPU 实例(在 AWS 上可能是最低的),在这种情况下最多可以 运行 同时进行 4 个作业。

有2种解决方案:

  1. 使用具有 vCPU 的 ec2 实例配置您的计算环境 您的多个作业定义。例如: 计算环境使用 ec2 实例类型 8 vCPU 并限制您的 128 个 vCPU 有一个带有 8 个 vCPU 的作业定义,它最多可以执行 16 个 并发 jobs.Because 16 个作业并发 X 8 个 vCPU = 128 个 vCPU( 计算你的实例的分配策略和内存是 在你的工作中很重要也消耗内存资源)
  2. Multi-node 个并行作业,这是一个非常有趣的解决方案,因为在 这种场景你不需要 ec2 实例 vCPU 至少是 可以跨越作业定义和作业中使用的多个 vCPU 跨多个 Amazon EC2 实例。