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's 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, you can 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.

Azure에서 Batch 및 다른 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 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.

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, where the applications you run need to communicate with each other, rather than running independently. 긴밀하게 결합된 애플리케이션은 일반적으로 Message Passing Interface(MPI) API를 사용합니다.Tightly coupled applications normally use the Message Passing Interface (MPI) API. Batch를 통해 Microsoft MPI 또는 Intel MPI를 사용하는 긴밀하게 결합된 워크로드를 실행할 수 있습니다.You can run your tightly coupled workloads with Batch using Microsoft MPI or Intel MPI. 특수화된 HPCGPU에 최적화된 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.

또한 Azure Data Factory와 같은 도구에서 관리하는 대규모 데이터 변환 Azure 워크플로의 일부로 Batch 작업을 실행할 수도 있습니다.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 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 DescriptionDescription
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입니다.Compute nodes are the VMs that execute your tasks. 노드의 수와 크기, Windows 또는 Linux VM 이미지 및 노드가 풀에 조인할 때 설치할 애플리케이션과 같은 풀에 대한 속성을 지정합니다.Specify properties for your pool, 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 by 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 will process to the assigned 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를 사용하는 한 가지 방법일 뿐이며, 다른 많은 기능과 옵션이 있습니다.Keep in mind that the workflow described above is just one way to use Batch, and there are many other features and options. 예를 들어 각 컴퓨팅 노드에서 여러 태스크를 병렬로 실행할 수 있습니다.For example, you can execute multiple tasks in parallel on each compute node. 또는 작업 준비 및 완료 태스크를 사용하여 작업용 노드를 준비한 후 나중에 정리할 수 있습니다.Or you can use job preparation and completion tasks to prepare the nodes for your jobs, then clean up afterward.

풀, 노드, 작업 및 태스크와 같은 기능에 대한 개요는 Batch 서비스 워크플로 및 리소스를 참조하세요.See Batch service workflow and resources for an overview of features such as pools, nodes, jobs, and tasks. 또한 최신 Batch 서비스 업데이트를 참조하세요.Also see the latest Batch service updates.

지역 내 데이터 보존In-region data residency

Azure Batch는 배포된 지역 외부에 고객 데이터를 이동하거나 저장하지 않습니다.Azure Batch does not move or store customer data out of the region in which it is deployed.

다음 단계Next steps

다음 요약 설명서를 통해 Azure Batch를 시작해 보세요.Get started with Azure Batch with one of these quickstarts: