什么是 Azure Batch?

使用 Azure Batch 在 Azure 中高效运行大规模并行批处理作业。 Azure Batch 可创建和管理计算节点(虚拟机)池、安装要运行的应用程序,以及计划要在节点上运行的作业。 没有用于安装、管理或缩放的群集或作业计划程序软件。 而是使用 Batch API 和工具、命令行脚本或 Azure 门户来配置、管理和监视作业。

开发人员可以使用 Batch 作为平台服务,在需要大规模执行的情况下生成 SaaS 应用程序或客户端应用。 例如,可以使用 Batch 构建服务,以便为金融服务公司运行蒙特卡洛风险模拟,或者为处理许多图像提供服务。

使用 Batch 不收取额外费用。 只需为使用的基础资源付费,例如虚拟机、存储和网络。

运行并行工作负荷

Batch 适用于内部并行(也称为“尴尬并行”)工作负载。 这些工作负荷具有可以独立运行的应用程序,每个实例都已完成部分工作。 执行应用程序时,它们可能会访问一些常见数据,但不会与应用程序的其他实例通信。 因此,内部并行工作负荷可以大规模运行,具体由可用于同时运行应用程序的计算资源量决定。

一些可以引入到 Batch 的固有并行工作负载的示例:

  • 使用蒙特卡洛模拟进行财务风险建模
  • VFX 和 3D 图像呈现
  • 图像分析和处理
  • 媒体转码
  • 基因序列分析
  • 光学字符识别 (OCR)
  • 数据引入、处理和 ETL 操作
  • 软件测试执行

还可以使用 Batch 来运行紧密耦合的工作负荷,其中运行的应用程序需要相互通信,而不是独立运行。 紧密耦合的应用程序通常使用消息传递接口 (MPI) API。 可以使用 Microsoft MPI 或 Intel MPI 运行与 Batch 紧密耦合的工作负荷。 使用 GPU 优化的 VM 大小提高应用程序性能。

紧密耦合工作负载的一些示例:

  • 有限元素分析
  • 流体力学
  • 多节点 AI 训练

许多紧密耦合的作业可以使用 Batch 并行运行。 例如,可以执行多个流经管道的液体模拟,其管道宽度各不相同。

其他 Batch 功能

Batch 支持使用包括 Autodesk Maya、3ds Max、Arnold 和 V-Ray 在内的渲染工具进行大型渲染任务负载。

还可以在更大的 Azure 工作流中运行 Batch 作业,以转换数据(由 Azure 数据工厂等工具管理)。

工作原理

Batch 的常见方案涉及横向扩展内部并行工作,例如在计算节点池上呈现 3D 场景的图像。 此池可以是您的“渲染农场”,为您的渲染作业提供数十个、数百个,甚至数千个核心。

下图显示了常见 Batch 工作流中的步骤,以及使用 Batch 运行并行工作负荷的客户端应用程序或托管服务。

Batch 解决方案中的步骤示意图。

步骤 Description
1.将输入文件和应用程序上传到 Azure 存储帐户来处理这些文件。 输入文件可以是应用程序处理的任何数据,例如财务建模数据或要转码的视频文件。 应用程序文件可以包括处理数据的脚本或应用程序,例如媒体转码器。
2. 在您的 Batch 帐户中创建一个包含计算节点的 Batch ,一个用于在该池上运行工作负载的 作业 ,以及作业中的 任务 计算节点 是执行 任务的 VM。 为池指定属性,例如节点的数量和大小、Windows 或 Linux VM 映像,以及在节点加入池时要安装的应用程序。 通过根据工作负荷的变化自动调整节点数量来管理池的成本和规模。

在将任务添加到作业时,Batch 服务会自动在池中的计算节点上安排并执行任务。 每个任务都使用已上传的应用程序来处理输入文件。
3.将输入文件和应用程序下载到 Batch 在执行每个任务之前,它可以下载它将处理的输入数据到分配的节点。 如果尚未在池节点上安装应用程序,可以改为在此处下载该应用程序。 从 Azure 存储下载完成后,任务会在分配的节点上执行。
4. 监视 任务执行 在任务运行时,查询 Batch 以监视作业及其任务的进度。 客户端应用程序或服务通过 HTTPS 与 Batch 服务通信。 由于可以监视数千个计算节点上运行的数千个任务,因此请务必 有效地查询 Batch 服务
5. 上传 任务输出 任务完成后,可以将结果数据上传到 Azure 存储。 还可以直接从计算节点上的文件系统检索文件。
6.下载 输出文件 监视检测到作业中的任务已完成时,客户端应用程序或服务可以下载输出数据以供进一步处理。

请记住,上述工作流只是使用 Batch 的一种方法,还有其他许多功能和选项。 例如,可以在每个计算节点上 并行执行多个任务 。 或者,可以使用 作业准备和完成任务 来为作业的节点进行准备,然后进行后续清理。

有关池、节点、作业和任务等功能的概述,请参阅 Batch 服务工作流 和资源。 另请参阅最新的 Batch 服务更新

区域内数据驻留

Azure Batch 不会将客户数据移出其部署的区域。

后续步骤

您可以从以下任意一个快速入门开始使用 Azure Batch: