Informazioni su Azure BatchWhat is Azure Batch?

Usare Azure Batch per eseguire in modo efficiente processi batch paralleli e HPC (High Performance Computing) su larga scala in Azure.Use Azure Batch to run large-scale parallel and high-performance computing (HPC) batch jobs efficiently in Azure. Azure Batch crea e gestisce un pool di nodi di calcolo (macchine virtuali), installa le applicazioni da eseguire e pianifica l'esecuzione dei processi nei nodi.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. Non è necessario installare, gestire o ridimensionare cluster o software di pianificazione dei processi.There is no cluster or job scheduler software to install, manage, or scale. Si usano invece API e strumenti Batch, script della riga di comando o il portale di Azure per configurare, gestire e monitorare i processi.Instead, you use Batch APIs and tools, command-line scripts, or the Azure portal to configure, manage, and monitor your jobs.

Gli sviluppatori possono usare Batch come un servizio di piattaforma per compilare applicazioni SaaS o app client in cui è richiesta l'esecuzione su larga scala.Developers can use Batch as a platform service to build SaaS applications or client apps where large-scale execution is required. Creare ad esempio un servizio con Batch per eseguire una simulazione di rischio Monte Carlo per un'azienda di servizi finanziari oppure un servizio per l'elaborazione di molte immagini.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.

Non sono previsti costi aggiuntivi per l'uso di Batch.There is no additional charge for using Batch. Si pagano solo le risorse sottostanti utilizzate, ad esempio macchine virtuali, archiviazione e rete.You only pay for the underlying resources consumed, such as the virtual machines, storage, and networking.

Per un confronto tra Batch e altre soluzioni HPC in Azure, vedere HPC, Batch, and Big Compute solutions (Soluzioni HPC, Batch e Big Compute).For a comparison between Batch and other HPC solution options in Azure, see HPC, Batch, and Big Compute solutions.

Eseguire carichi di lavoro paralleliRun parallel workloads

Batch funziona bene con carichi di lavoro intrinsecamente paralleli, a volte definiti "imbarazzantemente paralleli".Batch works well with intrinsically parallel (also known as "embarrassingly parallel") workloads. I carichi di lavoro intrinsecamente paralleli sono quelli in cui le applicazioni possono essere eseguite in modo indipendente e ogni istanza completa parte del lavoro.Intrinsically parallel workloads are those where the applications can run independently, and each instance completes part of the work. Quando sono in esecuzione, le applicazioni possono accedere ad alcuni dati comuni, ma non comunicano con altre istanze dell'applicazione.When the applications are executing, they might access some common data, but they do not communicate with other instances of the application. I carichi di lavoro intrinsecamente paralleli possono essere quindi eseguiti su larga scala, a seconda della quantità di risorse di calcolo disponibili per l'esecuzione simultanea di applicazioni.Intrinsically parallel workloads can therefore run at a large scale, determined by the amount of compute resources available to run applications simultaneously.

Alcuni esempi di carichi di lavoro intrinsecamente paralleli che possono essere usati in Batch sono i seguenti:Some examples of intrinsically parallel workloads you can bring to Batch:

  • Modellazione di rischi finanziari tramite simulazioni Monte CarloFinancial risk modeling using Monte Carlo simulations
  • Rendering di immagini VFX e 3DVFX and 3D image rendering
  • Analisi ed elaborazione di immaginiImage analysis and processing
  • Transcodifica multimedialeMedia transcoding
  • Analisi delle sequenze geneticheGenetic sequence analysis
  • Riconoscimento ottico dei caratteri (OCR)Optical character recognition (OCR)
  • Inserimento dati, elaborazione e operazioni ETLData ingestion, processing, and ETL operations
  • Esecuzione di test del softwareSoftware test execution

È inoltre possibile usare Batch per eseguire carichi di lavoro strettamente associati; si tratta di carichi di lavoro in cui le applicazioni in esecuzione devono comunicare tra loro, in contrapposizione all'esecuzione indipendente.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. Le applicazioni strettamente associate usano generalmente l'API MPI (Message Passing Interface).Tightly coupled applications normally use the Message Passing Interface (MPI) API. È possibile eseguire i carichi di lavoro strettamente associati con Batch usando Microsoft MPI o Intel MPI.You can run your tightly coupled workloads with Batch using Microsoft MPI or Intel MPI. Migliorare le prestazioni delle applicazioni con dimensioni delle macchine virtuali specializzate per HPC e ottimizzate per la GPU.Improve application performance with specialized HPC and GPU-optimized VM sizes.

Alcuni esempi di carichi di lavoro strettamente associati sono i seguenti:Some examples of tightly coupled workloads:

  • Analisi degli elementi limitatiFinite element analysis
  • FluidodinamicaFluid dynamics
  • Training di intelligenza artificiale multinodoMulti-node AI training

È possibile eseguire molti processi strettamente associati in parallelo con Batch.Many tightly coupled jobs can be run in parallel using Batch. Ad esempio, eseguire più simulazioni di un liquido che scorre in un tubo di vari diametri.For example, perform multiple simulations of a liquid flowing through a pipe with varying pipe widths.

Altre funzionalità BatchAdditional Batch capabilities

Per Azure Batch sono anche disponibili funzionalità di livello superiore e specifiche per i carichi di lavoro:Higher-level, workload-specific capabilities are also available for Azure Batch:

  • Batch supporta carichi di lavoro di rendering su larga scala con strumenti di rendering che includono Autodesk Maya, 3ds Max, Arnold e V-Ray.Batch supports large-scale rendering workloads with rendering tools including Autodesk Maya, 3ds Max, Arnold, and V-Ray.
  • Gli utenti di R possono installare il pacchetto doAzureParallel R per aumentare facilmente il numero di istanze di esecuzione di algoritmi R nei pool Batch.R users can install the doAzureParallel R package to easily scale out the execution of R algorithms on Batch pools.

È anche possibile eseguire processi Batch nell'ambito di un flusso di lavoro di Azure più ampio per la trasformazione dei dati, gestito da strumenti come 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.

FunzionamentoHow it works

Uno scenario comune per Batch comporta l'aumento del numero di istanze di lavoro intrinsecamente parallelo, ad esempio nel rendering di immagini per scene 3D, in un pool di nodi di calcolo.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. Il pool di nodi di calcolo può essere usato come una "farm di rendering" che può fornire fino a migliaia di core per il processo di rendering.This pool of compute nodes can be your "render farm" that provides tens, hundreds, or even thousands of cores to your rendering job.

Il diagramma seguente mostra i passaggi di un normale flusso di lavoro di Batch con un'applicazione client o un servizio ospitato che usa Batch per l'esecuzione di un carico di lavoro parallelo.The following diagram shows steps in a common Batch workflow, with a client application or hosted service using Batch to run a parallel workload.

Procedura dettagliata della soluzione Batch

PassaggioStep DESCRIZIONEDescription
1. Caricare i file di input e le applicazioni per l'elaborazione dei file nell'account di archiviazione di Azure.1. Upload input files and the applications to process those files to your Azure Storage account. I file di input possono essere tutti i dati elaborati dall'applicazione, ad esempio dati di modellazione finanziaria o file video da transcodificare.The input files can be any data that your application processes, such as financial modeling data, or video files to be transcoded. I file dell'applicazione possono includere script o applicazioni che elaborano i dati, ad esempio un transcodificatore di file multimediali.The application files can include scripts or applications that process the data, such as a media transcoder.
2. Creare un pool Batch di nodi di calcolo nell'account Batch, un processo per eseguire il carico di lavoro nel pool e attività nel processo.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. I nodi del pool sono le macchine virtuali che eseguono le attività.Pool nodes are the VMs that execute your tasks. Specificare le proprietà, ad esempio il numero e le dimensioni dei nodi, un'immagine di macchina virtuale Windows o Linux e l'applicazione da installare quando i nodi vengono aggiunti al pool.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. Gestire il costo e le dimensioni del pool usando macchine virtuali con priorità bassa oppure ridimensionando automaticamente il numero di nodi in funzione del carico di lavoro.Manage the cost and size of the pool by using low-priority VMs or automatically scaling the number of nodes as the workload changes.

Quando si aggiungono attività a un processo, il servizio Batch pianifica automaticamente le attività per l'esecuzione nei nodi di calcolo del pool.When you add tasks to a job, the Batch service automatically schedules the tasks for execution on the compute nodes in the pool. Ogni attività usa l'applicazione caricata per elaborare i file di input.Each task uses the application that you uploaded to process the input files.
3. Scaricare i file di input e le applicazioni in Batch3. Download input files and the applications to Batch Prima dell'esecuzione, l'attività può scaricare i dati di input che dovrà elaborare nel nodo di calcolo assegnato.Before each task executes, it can download the input data that it is to process to the assigned compute node. Se l'applicazione non è già installata nei nodi del pool, è possibile scaricarla a questo punto.If the application isn't already installed on the pool nodes, it can be downloaded here instead. Al termine del download da Archiviazione di Azure, l'attività viene eseguita nel nodo assegnato.When the downloads from Azure Storage complete, the task executes on the assigned node.
4. Monitorare l'esecuzione delle attività4. Monitor task execution Durante l'esecuzione delle attività, eseguire query sul servizio Batch per monitorare lo stato del processo e le relative attività.As the tasks run, query Batch to monitor the progress of the job and its tasks. L'applicazione o il servizio client comunica con il servizio Batch tramite HTTPS.Your client application or service communicates with the Batch service over HTTPS. Poiché è possibile che si monitorino migliaia di attività in esecuzione in migliaia di nodi di calcolo, assicurarsi di effettuare una query del servizio Batch in modo efficiente.Because you may be monitoring thousands of tasks running on thousands of compute nodes, be sure to query the Batch service efficiently.
5. Caricare l'output dell'attività5. Upload task output Man mano che vengono completate, le attività possono caricare i dati dei risultati in Archiviazione di Azure.As the tasks complete, they can upload their result data to Azure Storage. È anche possibile recuperare i file direttamente dal file system in un nodo di calcolo.You can also retrieve files directly from the file system on a compute node.
6. Scaricare i file di output6. Download output files Quando il monitoraggio rileva che sono state completate le attività nel processo, l'applicazione o il servizio client può scaricare i dati di output per l'ulteriore elaborazione.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.

Tenere presente che questo è soltanto uno dei modi in cui è possibile usare Batch e che questo scenario descrive solo alcune delle sue funzionalità.Keep in mind this is just one way to use Batch, and this scenario describes just some of its features. È ad esempio possibile eseguire più attività in parallelo in ogni nodo di calcolo,For example, you can execute multiple tasks in parallel on each compute node. nonché usare attività di preparazione e completamento di processi per preparare i nodi per i processi e quindi eseguire la pulizia in un secondo momento.Or, use job preparation and completion tasks to prepare the nodes for your jobs, then clean up afterward.

Vedere Panoramica delle funzionalità di Batch per sviluppatori per informazioni più dettagliate su pool, nodi, processi e attività e sulle numerose funzionalità delle API che è possibile usare durante la compilazione dell'applicazione 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. Vedere anche gli aggiornamenti più recenti per il servizio Batch.Also see the latest Batch service updates.

Passaggi successiviNext steps

Iniziare a usare Azure Batch con una di queste guide introduttive:Get started with Azure Batch with one of these quickstarts: