What is Azure Batch?
Azure Batch is a service designed to run large-scale parallel and high-performance computing (HPC) application efficiently in the cloud. Azure Batch creates and manages a pool of compute nodes (virtual machines), installs the applications you want to run, and schedules jobs to run on the nodes. There’s no cluster or job scheduler software to install, manage, or scale. Instead, you use Batch APIs and tools, command-line scripts, or the Azure portal to configure, manage, and monitor your jobs.
Azure Batch Concepts
Batch works well with intrinsically parallel (also known as “embarrassingly parallel”) workloads. These workloads have applications which can run independently, with each instance completing part of the work. When the applications are executing, they might access some common data, but they don’t communicate with other instances of the application. Intrinsically parallel workloads can therefore run at a large scale, determined by the amount of compute resources available to run applications simultaneously.
How it works
A common scenario for Batch involves scaling out intrinsically parallel work, such as the rendering of images for 3D scenes, on a pool of compute nodes. This pool can be your “render farm” that provides tens, hundreds, or even thousands of cores to your rendering job.
The following diagram shows steps in a common Batch workflow, with a client application or hosted service using Batch to run a parallel workload.