Présentation d’Azure BatchWhat is Azure Batch?

Utilisez Azure Batch pour exécuter des programmes de traitement par lots de calcul haute performance (HPC) en parallèle, efficacement et à grande échelle dans Azure.Use Azure Batch to run large-scale parallel and high-performance computing (HPC) batch jobs efficiently in Azure. Azure Batch crée et gère un pool de nœuds de calcul (machines virtuelles), installe les applications que vous souhaitez exécuter, et planifie les travaux à exécuter sur les nœuds.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. Il n’y a aucun logiciel de planificateur de travail ou de cluster à installer, gérer ou mettre à l’échelle.There is no cluster or job scheduler software to install, manage, or scale. Au lieu de cela, vous utilisez des outils et des API Batch, des scripts de ligne de commande, ou le portail Azure pour configurer, gérer et surveiller vos travaux.Instead, you use Batch APIs and tools, command-line scripts, or the Azure portal to configure, manage, and monitor your jobs.

Les développeurs peuvent utiliser Azure Batch en tant que service de plateforme pour générer des applications SaaS ou des applications clientes où l’exécution à grande échelle est requise.Developers can use Batch as a platform service to build SaaS applications or client apps where large-scale execution is required. Par exemple, créez un service avec Batch pour exécuter une simulation de risque Monte Carlo pour une société de services financiers, ou un service pour traiter de nombreuses images.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.

L’utilisation d’Azure Batch n’engendre pas de frais supplémentaires.There is no additional charge for using Batch. Vous payez uniquement pour les ressources sous-jacentes consommées, telles que les machines virtuelles, le stockage et la mise en réseau.You only pay for the underlying resources consumed, such as the virtual machines, storage, and networking.

Pour obtenir une comparaison entre Batch et d’autres solutions HPC utilisées dans Azure, voir calcul haute performance (HPC) sur Azure.For a comparison between Batch and other HPC solution options in Azure, see High Performance Computing (HPC) on Azure.

Exécuter des charges de travail parallèlesRun parallel workloads

Le service Batch fonctionne parfaitement avec les charges de travail intrinsèquement parallèles (ou « massivement parallèles »).Batch works well with intrinsically parallel (also known as "embarrassingly parallel") workloads. Les charges de travail intrinsèquement parallèles sont celles où les applications peuvent s’exécuter indépendamment et chaque instance termine une partie du travail.Intrinsically parallel workloads are those where the applications can run independently, and each instance completes part of the work. Lorsque les applications sont en cours d’exécution, elles peuvent accéder à certaines données communes, mais elles ne communiquent pas avec d’autres instances de l’application.When the applications are executing, they might access some common data, but they do not communicate with other instances of the application. Les charges de travail intrinsèquement parallèles peuvent donc être exécutées à grande échelle, déterminée par la quantité de ressources de calcul disponibles pour exécuter simultanément des applications.Intrinsically parallel workloads can therefore run at a large scale, determined by the amount of compute resources available to run applications simultaneously.

Voici quelques exemples de charges de travail intrinsèquement parallèles que vous pouvez utiliser dans Azure Batch :Some examples of intrinsically parallel workloads you can bring to Batch:

  • Modélisation de risques financiers à l’aide de simulations Monte CarloFinancial risk modeling using Monte Carlo simulations
  • Rendu d’image VFX et 3DVFX and 3D image rendering
  • Analyse et traitement d’imagesImage analysis and processing
  • Transcodage multimédiaMedia transcoding
  • Analyse de séquence génétiqueGenetic sequence analysis
  • Reconnaissance optique de caractères (OCR)Optical character recognition (OCR)
  • Ingestion de données, traitement et opérations ETLData ingestion, processing, and ETL operations
  • Exécution de tests logicielsSoftware test execution

Vous pouvez également utiliser Azure Batch pour exécuter des charges de travail fortement couplées ; dans ces charges de travail, les applications que vous exécutez doivent communiquer entre elles, et non s’exécuter indépendamment.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. Les applications fortement couplées utilisent normalement l’API d’interface MPI (Message Passing Interface).Tightly coupled applications normally use the Message Passing Interface (MPI) API. Vous pouvez exécuter vos charges de travail fortement couplées avec Azure Batch à l’aide de Microsoft MPI ou Intel MPI.You can run your tightly coupled workloads with Batch using Microsoft MPI or Intel MPI. Améliorez les performances de l’application avec les tailles de machine virtuelle spécialisées HPC et Optimisé pour le GPU.Improve application performance with specialized HPC and GPU-optimized VM sizes.

Voici quelques exemples de charges de travail fortement couplées :Some examples of tightly coupled workloads:

  • Analyse des éléments finisFinite element analysis
  • Dynamique des fluidesFluid dynamics
  • Formation d’intelligence artificielle à nœuds multiplesMulti-node AI training

De nombreux travaux fortement couplés peuvent être exécutés en parallèle à l’aide d’Azure Batch.Many tightly coupled jobs can be run in parallel using Batch. Par exemple, effectuez plusieurs simulations de liquide transitant via un canal avec des largeurs de canal différentes.For example, perform multiple simulations of a liquid flowing through a pipe with varying pipe widths.

Fonctionnalités supplémentaires d’Azure BatchAdditional Batch capabilities

Des fonctionnalités de niveau supérieur, spécifiques à la charge de travail sont également disponibles pour Azure Batch :Higher-level, workload-specific capabilities are also available for Azure Batch:

  • Azure Batch prend en charge les charges de travail de rendu à grande échelle avec les outils de rendu notamment Autodesk Maya, 3ds Max, Arnold et V-Ray.Batch supports large-scale rendering workloads with rendering tools including Autodesk Maya, 3ds Max, Arnold, and V-Ray.
  • Les utilisateurs R peuvent installer le package doAzureParallel R pour augmenter facilement la taille de l’exécution d’algorithmes R sur les pools Batch.R users can install the doAzureParallel R package to easily scale out the execution of R algorithms on Batch pools.

Vous pouvez également exécuter des travaux Batch dans le cadre d’un plus grand flux de travail Azure pour transformer des données, gérées par des outils comme 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.

FonctionnementHow it works

Un scénario courant pour Azure Batch suppose une montée en charge de travaux intrinsèquement parallèles, par exemple, le rendu d’images pour les scènes 3D, sur un pool de nœuds de calcul.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. Ce pool de nœuds de calcul peut être une « ferme de rendu » qui fournit des dizaines, des centaines voire des milliers de cœurs à votre travail de rendu.This pool of compute nodes can be your "render farm" that provides tens, hundreds, or even thousands of cores to your rendering job.

Le schéma suivant illustre les étapes d’un flux de travail Batch courant, dans lequel une application cliente ou un service hébergé utilise Batch pour exécuter une charge de travail parallèle.The following diagram shows steps in a common Batch workflow, with a client application or hosted service using Batch to run a parallel workload.

Procédure pas à pas de solution Azure Batch

ÉtapeStep DescriptionDescription
1. Charger les fichiers d’entrée et les applications nécessaires pour le traitement des fichiers dans votre compte Stockage Azure.1. Upload input files and the applications to process those files to your Azure Storage account. Les fichiers d’entrée peuvent correspondre à des données que votre application traite (par exemple, des données de modélisation financière ou des fichiers vidéo à transcoder).The input files can be any data that your application processes, such as financial modeling data, or video files to be transcoded. Les fichiers d’application peuvent inclure des scripts ou applications qui traitent les données, comme un transcodeur média.The application files can include scripts or applications that process the data, such as a media transcoder.
2. Créer un pool Batch de nœuds de calcul dans votre compte Batch, un travail pour exécuter la charge de travail sur le pool et des tâches dans le travail.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. Les nœuds de pool sont les machines virtuelles qui exécutent vos tâches.Pool nodes are the VMs that execute your tasks. Spécifiez des propriétés telles que le nombre et la taille des nœuds, une image de machine virtuelle Windows ou Linux et une application à installer lorsque les nœuds rejoignent le 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. Gérez le coût et la taille du pool à l’aide de machines virtuelles de faible priorité ou en mettant à l’échelle automatiquement le nombre de nœuds durant que la charge de travail change.Manage the cost and size of the pool by using low-priority VMs or automatically scaling the number of nodes as the workload changes.

Lorsque vous ajoutez des tâches à un travail, le service Batch planifie automatiquement l’exécution des tâches sur les nœuds de calcul du pool.When you add tasks to a job, the Batch service automatically schedules the tasks for execution on the compute nodes in the pool. Chaque tâche utilise l’application que vous avez téléchargée pour traiter les fichiers d’entrée.Each task uses the application that you uploaded to process the input files.
3. Télécharger des fichiers d’entrée et des applications vers Azure Batch3. Download input files and the applications to Batch Avant son exécution, chaque tâche peut charger les données d’entrée qu’elle devra traiter dans le nœud de calcul assigné.Before each task executes, it can download the input data that it is to process to the assigned compute node. Si l’application n’a pas déjà été installée sur les nœuds du pool, vous pouvez la télécharger à cet emplacement.If the application isn't already installed on the pool nodes, it can be downloaded here instead. Lorsque les téléchargements depuis Stockage Azure se terminent, la tâche s’exécute sur le nœud assigné.When the downloads from Azure Storage complete, the task executes on the assigned node.
4. Surveiller l’exécution d’une tâche4. Monitor task execution Au cours de l’exécution des tâches, interrogez le service Batch pour surveiller la progression du travail et des tâches associées.As the tasks run, query Batch to monitor the progress of the job and its tasks. Votre application cliente ou le service communique avec le service Batch par le biais de HTTPS.Your client application or service communicates with the Batch service over HTTPS. Étant donné que vous surveillez peut-être des milliers de tâches qui s’exécutent sur des milliers de nœuds de calcul, veillez à interroger le service Batch efficacement.Because you may be monitoring thousands of tasks running on thousands of compute nodes, be sure to query the Batch service efficiently.
5. Charger les sorties des tâches5. Upload task output Une fois les tâches exécutées, elles peuvent chargent leurs données de sortie dans Azure Storage.As the tasks complete, they can upload their result data to Azure Storage. Vous pouvez également extraire des fichiers directement du système de fichiers ou d’un nœud de calcul.You can also retrieve files directly from the file system on a compute node.
6. Télécharger les fichiers de sortie6. Download output files Lorsque votre analyse détecte la fin de l’exécution des tâches de votre travail, votre application cliente ou votre service peut télécharger les données de sortie afin de les traiter.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.

N’oubliez pas qu’il ne s’agit ici que d’une des nombreuses façons d’utiliser Azure Batch et que ce scénario ne décrit que quelques-unes de ses fonctionnalités.Keep in mind this is just one way to use Batch, and this scenario describes just some of its features. Par exemple, vous pouvez exécuter plusieurs tâches en parallèle sur chaque nœud de calcul.For example, you can execute multiple tasks in parallel on each compute node. Ou, utiliser des Tâches d’achèvement et de préparation des travaux pour préparer les nœuds pour vos travaux, puis nettoyer par la suite.Or, use job preparation and completion tasks to prepare the nodes for your jobs, then clean up afterward.

Consultez la Présentation des fonctionnalités du service Batch pour les développeurs pour des informations plus détaillées sur les pools, les nœuds, les travaux et les tâches, ainsi que sur les nombreuses fonctionnalités d’API que vous pouvez utiliser lors de la création de votre application 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. Consultez également les dernières mises à jour du service Batch.Also see the latest Batch service updates.

Étapes suivantesNext steps

Bien démarrer avec Azure Batch grâce à l’un de ces guides de démarrage rapide :Get started with Azure Batch with one of these quickstarts: