0

我对在 Azure Batch 中并行运行任务有几个疑问。根据官方文档,“Azure Batch 允许您将每个节点的最大任务设置为节点核心数的四倍 (4x)。”

  1. 除了在创建池时指定每个节点的最大任务之外,是否还有其他设置,需要(对代码)完成才能批量运行并行任务?

  2. 因此,如果我正确理解这一点,如果我有一台具有 1 个核心的 Standard_D1_v2 机器,我可以在其中并行运行多达 4 个并发任务。那正确吗?如果是,我进行了一些测试,但我不太确定我得到的行为。在设置为每个节点运行 1 个任务的 D1_v2 机器池中,我的作业执行时间大约为 16 分钟。然后,使用相同的应用程序和相同的参数,唯一的变化是具有相同设置的新池,也是 D1_v2,除了每个节点运行 4 个任务外,我仍然得到大约 15 分钟的作业执行时间。并行运行任务的作业执行时间没有任何改善。会发生什么?我在这里想念什么?

  3. 我使用具有 4 个核心的 D3_v2 机器池进行了测试,设置为每个核心运行 2 个任务,每个节点总共执行 8 个任务,并使用 D2_v2 机器池(与之前的机器数量相同)进行了另一个测试2 个核心,设置为每个核心运行 2 个任务,每个节点总共运行 4 个并行任务。这两个测试的运行时间/作业执行时间是相同的。考虑到第一次测试中每个节点运行 8 个任务,而第二次测试中每个节点运行 4 个任务,难道不应该有所改进吗?如果是,我没有得到这种改进的原因可能是什么?

4

1 回答 1

1
  1. 不可以。尽管您可能想查看任务调度策略,但计算节点填充类型以控制您的任务在池中节点之间的分布方式。
  2. 你的工作有多少任务?您的任务是否受计算限制?如果是这样,您将看不到任何改进(甚至可能是端到端的性能下降)。
  3. Batch 只是在节点上同时调度任务。如果您正在运行的命令/进程利用了机器上的所有内核并且受计算限制,那么您将看不到任何改进。您应该仔细检查作业中的任务开始和结束时间以及节点执行信息,以查看它们是否实际上是在同一节点上同时调度的。
于 2017-07-27T14:24:54.137 回答