Azure Batch とはWhat is Azure Batch?

Azure Batch を使用すると、大規模な並列コンピューティングやハイパフォーマンス コンピューティング (HPC) のバッチ ジョブを Azure で効率的に実行することができます。Use Azure Batch to run large-scale parallel and high-performance computing (HPC) batch jobs efficiently in Azure. Azure Batch は、コンピューティング ノード (仮想マシン) のプールを作成および管理し、実行するアプリケーションをインストールし、ノードで実行するジョブをスケジュールします。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 is no cluster or job scheduler software to install, manage, or scale. 代わりに、Batch API およびツール、コマンド ライン スクリプト、または Azure Portal を使用して、ジョブを構成、管理、および監視します。Instead, you use Batch APIs and tools, command-line scripts, or the Azure portal to configure, manage, and monitor your jobs.

開発者は Batch をプラットフォーム サービスとして使用して、大規模な実行が必要な SaaS アプリケーションやクライアント アプリケーションを構築することができます。Developers can use Batch as a platform service to build SaaS applications or client apps where large-scale execution is required. たとえば、Batch で、金融サービス企業のためにモンテ カルロ リスク シミュレーションを実行するサービスや、多数の画像を処理するサービスを構築します。For example, build a service with Batch to run a Monte Carlo risk simulation for a financial services company, or a service to process many images.

Batch の使用に追加料金はかかりません。There is no additional charge for using Batch. 仮想マシン、ストレージ、ネットワークなど、基になるリソースの使用した分だけをお支払いいただきます。You only pay for the underlying resources consumed, such as the virtual machines, storage, and networking.

Batch と Azure 内の他の HPC ソリューション オプションとの比較については、Azure でのハイ パフォーマンス コンピューティング (HPC)に関するページを参照してください。For a comparison between Batch and other HPC solution options in Azure, see High Performance Computing (HPC) on Azure.

並列ワークロードの実行Run parallel workloads

Batch は本質的に並列 (「驚異的並列」とも呼ばれています) なワークロードと効果的に連動します。Batch works well with intrinsically parallel (also known as "embarrassingly parallel") workloads. 本質的に並列なワークロードとは、各アプリケーションを独立して実行することができ、各インスタンスが作業の一部を完了するワークロードのことです。Intrinsically parallel workloads are those where the applications can run independently, and each instance completes part of the work. アプリケーションは、実行時にいくつかの共通データにアクセスする場合がありますが、アプリケーションの他のインスタンスとは通信しません。When the applications are executing, they might access some common data, but they do not 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.

Batch で実行できる本質的に並列なワークロードの例を、次にいくつか示します。Some examples of intrinsically parallel workloads you can bring to Batch:

  • モンテカルロ シミュレーションを使用した財務リスクのモデリングFinancial risk modeling using Monte Carlo simulations
  • VFX および 3D 画像のレンダリングVFX and 3D image rendering
  • 画像の分析と処理Image analysis and processing
  • メディア コード変換Media transcoding
  • 遺伝子配列の分析Genetic sequence analysis
  • 光学式文字認識 (OCR)Optical character recognition (OCR)
  • データの取り込み、処理、および ETL 操作Data ingestion, processing, and ETL operations
  • ソフトウェアのテストの実行Software test execution

また、Batch を使用して、密接に結合されたワークロードを実行することもできます。これらのワークロードでは、アプリケーションが独立して実行されるのではなく、互いに通信する必要があります。You can also use Batch to run tightly coupled workloads; these are workloads where the applications you run need to communicate with each other, as opposed to run independently. 密接に結合されたアプリケーションは、通常、Message Passing Interface (MPI) API を使用します。Tightly coupled applications normally use the Message Passing Interface (MPI) API. Microsoft MPI または Intel MPI を使用して、密接に結合されたワークロードを Batch で実行できます。You can run your tightly coupled workloads with Batch using Microsoft MPI or Intel MPI. 専用の HPC および GPU に最適な VM のサイズで、アプリケーションのパフォーマンスを向上させます。Improve application performance with specialized HPC and GPU-optimized VM sizes.

密接に結合されたワークロードのいくつかの例を次に示します。Some examples of tightly coupled workloads:

  • 有限要素の分析Finite element analysis
  • 流体力学Fluid dynamics
  • マルチノード AI トレーニングMulti-node AI training

密接に結合されたジョブの多くは、Batch を使用して並列で実行できます。Many tightly coupled jobs can be run in parallel using Batch. たとえば、パイプを流れる液体について、パイプの幅を変化させて複数のシミュレーションを実行します。For example, perform multiple simulations of a liquid flowing through a pipe with varying pipe widths.

その他の Batch 機能Additional Batch capabilities

Azure Batch では、より高レベルで、ワークロード固有の機能も使用できます。Higher-level, workload-specific capabilities are also available for Azure Batch:

  • Batch は、Autodesk Maya、3ds Max、Arnold、V-Ray などのレンダリング ツールでの大規模なレンダリング ワークロードをサポートしています。Batch supports large-scale rendering workloads with rendering tools including Autodesk Maya, 3ds Max, Arnold, and V-Ray.
  • R ユーザーは、doAzureParallel R パッケージをインストールして、Batch プールに対する R アルゴリズムの実行を容易にスケールアウトすることができます。R users can install the doAzureParallel R package to easily scale out the execution of R algorithms on Batch pools.

また、Batch ジョブを、Azure Data Factory などのツールで管理されているより大きな Azure ワークフローの一部として実行して、データを変換することができます。You can also run Batch jobs as part of a larger Azure workflow to transform data, managed by tools such as Azure Data Factory.

動作のしくみHow it works

Batch の一般的なシナリオでは、3D シーンの画像のレンダリングなどの本質的に並列な作業を、コンピューティング ノードのプール上でスケールアウトします。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 of compute nodes can be your "render farm" that provides tens, hundreds, or even thousands of cores to your rendering job.

次の図は一般的な Batch ワークフローの手順を示しています。クライアント アプリケーションまたはホステッド サービスが Batch を利用し、並列ワークロードを実行します。The following diagram shows steps in a common Batch workflow, with a client application or hosted service using Batch to run a parallel workload.

Batch ソリューションの手順

手順Step 説明Description
1.入力ファイルとそのファイルを処理するアプリケーションを Azure Storage アカウントにアップロードします。1. Upload input files and the applications to process those files to your Azure Storage account. 入力ファイルは、財務モデリング データやトランスコードする動画ファイルなど、アプリケーションが処理する任意のデータです。The input files can be any data that your application processes, such as financial modeling data, or video files to be transcoded. アプリケーション ファイルには、メディア トランスコーダーなど、データを処理するスクリプトまたはアプリケーションを含めることができます。The application files can include scripts or applications that process the data, such as a media transcoder.
2.Batch アカウント内のコンピューティング ノードの Batch プール、プールでワークロードを実行するジョブ、およびジョブ内のタスクを作成します。2. Create a Batch pool of compute nodes in your Batch account, a job to run the workload on the pool, and tasks in the job. プール ノードは、タスクを実行する VM です。Pool nodes are the VMs that execute your tasks. ノードの数とサイズ、Windows または Linux の VM イメージ、ノードがプールに参加するときにインストールするアプリケーションなど、プロパティを指定します。Specify properties such as the number and size of the nodes, a Windows or Linux VM image, and an application to install when the nodes join the pool. 優先度の低い VM を使用するか、ワークロードの変化に応じてノードの数を自動的にスケーリングすることで、プールのコストとサイズを管理します。Manage the cost and size of the pool by using low-priority VMs or automatically scaling the number of nodes as the workload changes.

ジョブにタスクを追加すると、Batch サービスは、プールのコンピューティング ノードでタスクを実行するように自動的にスケジュールします。When you add tasks to a job, the Batch service automatically schedules the tasks for execution on the compute nodes in the pool. 各タスクでアップロードしたアプリケーションが使用され、入力ファイルが処理されます。Each task uses the application that you uploaded to process the input files.
手順 3.入力ファイルアプリケーションを Batch にダウンロードします3. Download input files and the applications to Batch 各タスクは、実行前に、割り当てられているコンピューティング ノードに処理する入力データをダウンロードすることができます。Before each task executes, it can download the input data that it is to process to the assigned compute node. アプリケーションがまだプール ノードにインストールされていない場合、代わりにここでダウンロードできます。If the application isn't already installed on the pool nodes, it can be downloaded here instead. Azure Storage からのダウンロードが完了すると、割り当てられているノードでタスクが実行されます。When the downloads from Azure Storage complete, the task executes on the assigned node.
4.タスクの実行を監視します4. Monitor task execution タスクの実行中に、Batch にクエリを実行し、ジョブとそのタスクの進捗状況を監視します。As the tasks run, query Batch to monitor the progress of the job and its tasks. クライアント アプリケーションまたはサービスは、HTTPS 経由で Batch サービスと通信します。Your client application or service communicates with the Batch service over HTTPS. 数千のコンピューティング ノードで実行されている数千のタスクを監視している場合があるため、Batch サービスに対して効率的にクエリを実行するようにしてください。Because you may be monitoring thousands of tasks running on thousands of compute nodes, be sure to query the Batch service efficiently.
5.タスク出力をアップロードします5. Upload task output タスクが完了すると、結果データを Azure Storage にアップロードできます。As the tasks complete, they can upload their result data to Azure Storage. コンピューティング ノードのファイル システムからファイルを直接取得することもできます。You can also retrieve files directly from the file system on a compute node.
6.出力ファイルをダウンロードします6. Download output files ジョブのタスクが完了したことが監視により検出された場合、クライアント アプリケーションまたはサービスで出力データをダウンロードし、さらに処理することができます。When your monitoring detects that the tasks in your job have completed, your client application or service can download the output data for further processing.

これは Batch の利用方法の 1 つにすぎません。このシナリオでは、機能のほんの一部のみを紹介しています。Keep in mind this is just one way to use Batch, and this scenario describes just some of its features. たとえば、各コンピューティング ノードで、複数のタスクを並列で実行できます。For example, you can execute multiple tasks in parallel on each compute node. または、ジョブの準備と完了のタスクを利用してジョブのノードを準備し、後で消去することができます。Or, use job preparation and completion tasks to prepare the nodes for your jobs, then clean up afterward.

プール、ノード、ジョブ、タスクの詳細や、Batch アプリケーションを構築するときに使用できる多くの API 機能の詳細については、開発者向けの Batch 機能の概要に関するページを参照してください。See the Batch feature overview for developers for more detailed information about pools, nodes, jobs, and tasks, and the many API features that you can use while building your Batch application. また、最新の Batch サービスの更新も参照してください。Also see the latest Batch service updates.

次の手順Next steps

以下のクイック スタートのいずれかに従って、実際に Azure Batch を使ってみましょう。Get started with Azure Batch with one of these quickstarts: