¿Qué es Azure Batch?What is Azure Batch?

Use Azure Batch para ejecutar aplicaciones de informática de alto rendimiento (HPC) en paralelo y a gran escala, de manera eficaz en Azure.Use Azure Batch to run large-scale parallel and high-performance computing (HPC) batch jobs efficiently in Azure. Azure Batch permite crear y administrar un conjunto de nodos de proceso (máquinas virtuales), instalar las aplicaciones que desea ejecutar y programar trabajos para que se ejecuten en los nodos.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. No hay ningún software de programador de clústeres o trabajos que instalar, administrar o escalar.There is no cluster or job scheduler software to install, manage, or scale. En su lugar, use API y herramientas de Batch, scripts de línea de comandos o Azure Portal para configurar, administrar y supervisar los trabajos.Instead, you use Batch APIs and tools, command-line scripts, or the Azure portal to configure, manage, and monitor your jobs.

Los desarrolladores pueden usar Batch como un servicio de plataforma para compilar aplicaciones SaaS o aplicaciones cliente en las que se requiere una ejecución a gran escala.Developers can use Batch as a platform service to build SaaS applications or client apps where large-scale execution is required. Por ejemplo, compile un servicio con Batch para que ejecute una simulación de riesgo Monte Carlo para una empresa de servicios financieros, o un servicio que procese muchas imágenes.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.

No hay ningún cargo adicional por el uso de Batch.There is no additional charge for using Batch. Solo deberá pagar por los recursos subyacentes que utilice como, por ejemplo, las máquinas virtuales, el almacenamiento y las redes.You only pay for the underlying resources consumed, such as the virtual machines, storage, and networking.

Para una comparación entre Batch y otras opciones de soluciones de HPC en Azure, consulte Informática de alto rendimiento (HPC) en Azure.For a comparison between Batch and other HPC solution options in Azure, see High Performance Computing (HPC) on Azure.

Ejecutar cargas de trabajo paralelasRun parallel workloads

Batch funciona bien con cargas de trabajo intrínsecamente paralelas (a veces llamadas "embarazosamente paralelas").Batch works well with intrinsically parallel (also known as "embarrassingly parallel") workloads. Las cargas de trabajo intrínsecamente paralelas son aquellas en las que las aplicaciones se pueden ejecutar de manera independiente y donde cada instancia completa una parte del trabajo.Intrinsically parallel workloads are those where the applications can run independently, and each instance completes part of the work. Cuando se ejecutan las aplicaciones, estas pueden acceder a algunos datos comunes, pero no se comunican con otras instancias de la aplicación.When the applications are executing, they might access some common data, but they do not communicate with other instances of the application. Las cargas de trabajo intrínsecamente paralelas pueden por tanto ejecutarse a gran escala en función de la cantidad de recursos de proceso disponibles para ejecutar las aplicaciones de forma simultánea.Intrinsically parallel workloads can therefore run at a large scale, determined by the amount of compute resources available to run applications simultaneously.

A continuación puede ver algunos ejemplos de cargas de trabajo intrínsecamente paralelas con las que puede trabajar en Batch:Some examples of intrinsically parallel workloads you can bring to Batch:

  • Modelado de riesgos financieros mediante simulaciones Monte CarloFinancial risk modeling using Monte Carlo simulations
  • Representación de imágenes VFX y 3DVFX and 3D image rendering
  • Análisis y procesamiento de imágenesImage analysis and processing
  • Transcodificación de elementos multimediaMedia transcoding
  • Análisis de secuencia genéticaGenetic sequence analysis
  • Reconocimiento óptico de caracteres (OCR)Optical character recognition (OCR)
  • Ingesta, procesamiento, extracción, transformación y carga de datosData ingestion, processing, and ETL operations
  • Ejecución de pruebas de softwareSoftware test execution

También puede usar Batch para ejecutar cargas de trabajo estrechamente acopladas; se trata de cargas de trabajo donde las aplicaciones que se ejecutan necesitan comunicarse entre sí, en lugar de hacerlo de forma independiente.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. Las aplicaciones estrechamente acopladas normalmente utilizan Message Passing Interface (MPI) API.Tightly coupled applications normally use the Message Passing Interface (MPI) API. Puede ejecutar cargas de trabajo estrechamente acopladas con Batch mediante Microsoft MPI o Intel MPI.You can run your tightly coupled workloads with Batch using Microsoft MPI or Intel MPI. Mejore el rendimiento de la aplicación con informática de alto rendimiento especializada y tamaños de máquina virtual optimizados para GPU.Improve application performance with specialized HPC and GPU-optimized VM sizes.

Estos son algunos ejemplos de cargas de trabajo estrechamente acopladas:Some examples of tightly coupled workloads:

  • Análisis de elementos finitosFinite element analysis
  • Dinámica de fluidosFluid dynamics
  • Aprendizaje de inteligencia artificial multinodoMulti-node AI training

Muchos trabajos estrechamente acoplados se pueden ejecutar en paralelo mediante Batch.Many tightly coupled jobs can be run in parallel using Batch. Por ejemplo, realice varias simulaciones con un líquido que fluye a través de tubos de varios diámetros.For example, perform multiple simulations of a liquid flowing through a pipe with varying pipe widths.

Funcionalidades adicionales de BatchAdditional Batch capabilities

Azure Batch también tiene funcionalidades disponibles de nivel más alto, específicas para cargas de trabajo:Higher-level, workload-specific capabilities are also available for Azure Batch:

Azure Batch también se puede ejecutar como parte de un flujo de trabajo mayor de Azure para transformar datos, administrado mediante herramientas como Azure Data Factory.You can also run Batch jobs as part of a larger Azure workflow to transform data, managed by tools such as Azure Data Factory.

FuncionamientoHow it works

Un escenario habitual de Batch implica el escalado horizontal de trabajos intrínsecamente paralelos como la representación de imágenes para escenas 3D, en un grupo de nodos de proceso.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. Este grupo de nodos de proceso puede ser la "granja de representación" que le proporciona decenas, cientos o incluso miles de núcleos para su trabajo de representación.This pool of compute nodes can be your "render farm" that provides tens, hundreds, or even thousands of cores to your rendering job.

El siguiente diagrama muestra los pasos de un flujo de trabajo común de Batch, con una aplicación cliente o un servicio hospedado usando Batch para ejecutar una carga de trabajo paralela.The following diagram shows steps in a common Batch workflow, with a client application or hosted service using Batch to run a parallel workload.

Tutorial sobre la solución Batch

PasoStep DescripciónDescription
1. Cargue los archivos de entrada y las aplicaciones que los procesarán en su cuenta de Azure Storage.1. Upload input files and the applications to process those files to your Azure Storage account. Los archivos de entrada pueden ser cualquier dato que vaya a procesar la aplicación, como diseños de modelos financieros, o archivos de vídeo que se van a transcodificar.The input files can be any data that your application processes, such as financial modeling data, or video files to be transcoded. Los archivos de aplicación pueden incluir scripts o aplicaciones que procesen datos, como un transcodificador multimedia.The application files can include scripts or applications that process the data, such as a media transcoder.
2. Cree un grupo de Batch de nodos de proceso en la cuenta de Batch, un trabajo para que ejecute la carga de trabajo en el grupo y tareas para ese trabajo.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. Los nodos de grupo son las máquinas virtuales que ejecutan las tareas.Pool nodes are the VMs that execute your tasks. Especifique propiedades como el número y el tamaño de los nodos, una imagen de máquina virtual Windows o Linux, y la aplicación que desea instalar cuando se unan los nodos al grupo.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. Administre el costo y el tamaño del grupo mediante máquinas virtuales de prioridad baja o con el escalado automático del número de nodos si la carga de trabajo cambia.Manage the cost and size of the pool by using low-priority VMs or automatically scaling the number of nodes as the workload changes.

Al agregar tareas a un trabajo, el servicio Batch programa automáticamente las tareas para su ejecución en los nodos de proceso en el grupo.When you add tasks to a job, the Batch service automatically schedules the tasks for execution on the compute nodes in the pool. Cada tarea usa la aplicación que ha cargado para procesar los archivos de entrada.Each task uses the application that you uploaded to process the input files.
3. Descargue los archivos de entrada y las aplicaciones en Batch.3. Download input files and the applications to Batch Antes de que cada tarea se ejecute, esta puede descargar los datos de entrada que va a procesar en el nodo de proceso al que está asignada.Before each task executes, it can download the input data that it is to process to the assigned compute node. Si la aplicación no está ya instalada en los nodos de proceso, se puede descargar aquí.If the application isn't already installed on the pool nodes, it can be downloaded here instead. Cuando las descargas de Azure Storage se completan, la tarea se ejecuta en el nodo asignado.When the downloads from Azure Storage complete, the task executes on the assigned node.
4. Supervise la ejecución de tareas.4. Monitor task execution Mientras se ejecutan las tareas, puede solicitar a Batch que supervise el progreso del trabajo y sus tareas.As the tasks run, query Batch to monitor the progress of the job and its tasks. Un servicio o una aplicación cliente se comunican con el servicio Batch a través de HTTPS.Your client application or service communicates with the Batch service over HTTPS. Dado que puede que supervise miles de tareas que se ejecutan en miles de nodos de proceso, asegúrese de consultar el servicio Batch de forma eficaz.Because you may be monitoring thousands of tasks running on thousands of compute nodes, be sure to query the Batch service efficiently.
5. Cargue la salida de la tarea.5. Upload task output Cuando se completan las tareas, estas cargan los datos de sus resultados en Azure Storage.As the tasks complete, they can upload their result data to Azure Storage. Los archivos también se pueden recuperar directamente del sistema de archivos de un nodo de proceso.You can also retrieve files directly from the file system on a compute node.
6. Descargue los archivos de salida.6. Download output files Cuando la supervisión detecta que se han completado las tareas en su trabajo, el servicio o la aplicación de cliente puede descargar los datos de salida para su posterior procesamiento.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.

No olvide que esta es simplemente una forma de usar Batch y que este escenario describe solo algunas de sus características.Keep in mind this is just one way to use Batch, and this scenario describes just some of its features. Por ejemplo, puede ejecutar varias tareas en paralelo en cada nodo de proceso.For example, you can execute multiple tasks in parallel on each compute node. O bien, usar tareas de preparación y finalización de trabajos para preparar los nodos para los trabajos y, a continuación, limpiarlos.Or, use job preparation and completion tasks to prepare the nodes for your jobs, then clean up afterward.

Consulte Introducción a las características de Batch para desarrolladores para obtener información más detallada acerca de los grupos, nodos, trabajos y tareas, así como las numerosas características de API que se pueden usar al compilar cualquier aplicación de 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. Consulte también la versión más reciente de las actualizaciones del servicio Batch.Also see the latest Batch service updates.

Pasos siguientesNext steps

Comience a usar Azure Batch con alguna de estas guías de inicio rápido:Get started with Azure Batch with one of these quickstarts: