Informations générales
Q : Qu'est-ce qu'AWS Batch ?
AWS Batch constitue un ensemble de capacités de gestion par lot qui permet aux développeurs, scientifiques et ingénieurs d'exécuter facilement et efficacement plusieurs centaines de milliers de tâches de calcul par lot sur AWS. AWS Batch alloue dynamiquement une quantité optimale et un type de ressources de calcul (par exemple, des ressources de calcul optimisées pour la mémoire ou un processeur) en fonction du volume et des besoins en ressources spécifiques des tâches par lots soumises. Avec AWS Batch, vous n'avez pas besoin d'installer ou de gérer des logiciels de calcul ou des clusters de serveurs par lot, ce qui vous permet de vous concentrer plutôt sur l'analyse des résultats et la résolution des problèmes. AWS Batch planifie, programme et exécute vos charges de travail de traitement par lots à l'aide d'Amazon ECS, Amazon EKS et AWS Fargate, avec la possibilité d'utiliser des instances spot.
Q : Qu'est-ce que le calcul par lot ?
Le traitement par lot représente l'exécution d'une série de programmes (connus sous le nom de « tâches ») sur un ou plusieurs ordinateurs sans aucune intervention manuelle de l'utilisateur. Les paramètres d'entrée sont prédéfinis par le biais de scripts, d'arguments de ligne de commande, de fichiers de contrôle ou de la langue de contrôle des tâches. Une tâche par lot donnée peut dépendre de la réalisation des tâches précédentes ou de la disponibilité de certaines entrées, ce qui rend le séquençage et la planification de plusieurs tâches considérables et incompatibles avec le traitement interactif.
- Le traitement par lot peut déplacer la date de traitement d'une tâche à une date où une capacité supérieure ou moins onéreuse est disponible.
- Il permet d'éviter que des ressources de calcul nécessitant des interventions manuelles et contrôles fréquents soient inactives.
- Il accroît le rendement en pilotant une utilisation accrue des ressources de calcul.
- Il permet d'établir des priorités dans les tâches en alignant l'allocation des ressources sur les objectifs commerciaux.
Quand est-il préférable d'exécuter mes tâches dans EKS plutôt que dans Fargate ou ECS ?
Pourquoi AWS Batch
Q : Pourquoi utiliser AWS Batch ?
AWS Batch s'occupe de l'exécution des tâches et de la gestion des ressources de calcul, ce qui vous permet de vous concentrer sur le développement d'applications et l'analyse des résultats plutôt que sur la configuration et la gestion de l'infrastructure. Si vous songez à exécuter ou déplacer des charges de travail par lot sur AWS, envisagez d'utiliser AWS Batch.
Q : Pour quels cas d'utilisation le service AWS Batch est-il optimisé ?
AWS Batch est optimisé pour le traitement par lot et les applications qui sont dimensionnés par le biais de l'exécution de plusieurs tâches en parallèle. L'apprentissage approfondi, l'analyse génomique, les modèles de gestion des risques financiers, les simulations Monte-Carlo, le rendu d'animations, le transcodage de fichiers multimédia, le traitement d'images et les simulations techniques constituent d'excellents exemples d'applications de traitement par lot.
Fonctionnalités
Q : Quelles sont les principales caractéristiques d'AWS Batch ?
AWS Batch gère les environnements de calcul et les files d'attente de tâches, vous permettant ainsi d'exécuter facilement des milliers de tâches, quelle que soit leur échelle, à l'aide d'Amazon ECS, Amazon EKS et AWS Fargate, avec le choix entre des ressources spot ou à la demande. Il vous suffit de définir et d'envoyer vos tâches par lot à une file d'attente. En réponse, AWS Batch décide de l'emplacement d'exécution des tâches, lançant des capacités AWS supplémentaires si nécessaire. AWS Batch surveille attentivement la progression de vos tâches. Lorsqu'une capacité n'est plus nécessaire, AWS Batch la supprime. AWS Batch vous offre également la possibilité d'envoyer des tâches faisant partie d'un pipeline ou d'un flux de travail, ce qui vous permet d'indiquer toutes les interdépendances existant entre celles-ci à mesure que vous les envoyez.
Q : Quels types de tâches par lot sont pris en charge par AWS Batch ?
AWS Batch prend en charge toute tâche pouvant être exécutée comme conteneur Docker. Les tâches spécifient leurs exigences en matière de mémoire et le nombre de vCPU.
Q : Qu'est-ce qu'une ressource de calcul ?
Une instance EC2 ou une ressource de calcul AWS Fargate représentent une ressource de calcul AWS Batch.
Q : Qu'est-ce qu'un environnement de calcul ?
Un ensemble de ressources de calcul sur lequel les tâches sont exécutées constitue un environnement de calcul AWS Batch. AWS Batch prend en charge deux types d'environnements de calcul : les environnements de calcul opérés qui sont mis en service et régis par AWS et les environnements de calcul non opérés qui sont administrés par les clients. Les environnements de calcul non opérés fournissent un mécanisme pour tirer parti des ressources spécialisées telles que les hôtes dédiés, les configurations de stockage supérieures et Amazon EFS.
Q : Qu'est-ce qu'une définition de tâches ?
Une définition de tâches décrit la tâche devant être exécutée, les paramètres, les variables environnementales, les exigences en matière de calcul et d'autres informations utilisées pour optimiser l'exécution d'une tâche. Les définitions de tâches sont déterminées préalablement à l'envoi d'une tâche et peuvent être partagées avec d'autres personnes.
Q : Qu'est-ce que l'agent Amazon ECS et comment est-il utilisé par AWS Batch ?
AWS Batch a recours à Amazon ECS pour exécuter les tâches conteneurisées et nécessite donc l'installation de l'agent ECS sur les ressources de calcul dans vos environnements de calcul AWS Batch. L'agent ECS est préinstallé dans les environnements de calcul gérés.
Question : Dans quelle mesure le service AWS Batch facilite-t-il l'utilisation d'instances Spot ?
Les environnements de calcul AWS Batch peuvent être composés d'instances Spot EC2. Lors de la création d'un environnement de calcul géré, il vous suffit de spécifier que vous souhaitez utiliser des instances Spot EC2, puis d'indiquer un pourcentage du coût à la demande que vous êtes prêt à payer et AWS Batch s'occupe du reste. Les environnements de calcul non gérés peuvent également comprendre les instances Spot que vous lancez, notamment celles lancées par le parc d'instances Spot EC2.
Tarification
Q : Quelle est la tarification applicable à AWS Batch ?
AWS Batch est disponible sans frais supplémentaires. Vous ne payez que pour les ressources AWS (par ex. : des instances EC2 ou AWS Fargate) que vous créez pour stocker et exécuter vos tâches par lot.
Planification GPU
Q : Puis-je utiliser les accélérateurs avec AWS Batch ?
Oui, vous pouvez utiliser Batch pour préciser le nombre et le type d’accélérateurs dont vos tâches ont besoin en tant que variables d’entrée de définition des tâches, avec les options actuelles du vCPU et de la mémoire. AWS Batch mettra à l’échelle les instances appropriées pour vos tâches sur la base des accélérateurs demandés et isolera les accélérateurs selon les besoins de chaque tâche, seuls les conteneurs peuvent donc y accéder.
Q : Pourquoi dois-je utiliser des accélérateurs avec AWS Batch ?
L’utilisation d’accélérateurs avec Batch vous permet de programmer et de fournir vos tâches de manière dynamique selon les besoins de leurs accélérateurs. Batch s’assure alors que le nombre approprié d’accélérateurs est réservé par rapport à vos tâches. Batch augmente vos instances EC2 accélérées lorsque vous en avez besoin et les réduit une fois que vous avez terminé, vous permettant de vous concentrer sur vos applications. Batch possède une intégration native dans EC2 Spot, ce qui signifie que vos tâches accélérées peuvent générer jusqu’à 90 % d’économie lorsque vous utilisez des instances accélérées.
À partir de l’API :
{
"containerProperties": {
"vcpus": 1,
"image": "nvidia/cuda:9.0-base",
"memory": 2048,
"resourceRequirements" : [
{
"type" : "GPU",
"value" : "1"
}
],
Q : Les variables des accélérateurs dans la définition de la tâche peuvent-elles être remplacées lors de la soumission de la tâche ?
Conformément aux exigences de vCPU et de mémoire, vous pouvez remplacer le nombre et le type d’accélérateurs lors de la soumission de la tâche.
Q : Les instances accélérées peuvent-elles être utilisées pour des tâches qui n’ont pas besoin d’accélérateurs ?
En raison du comportement de ce jour, Batch évitera de planifier des tâches qui n’ont pas besoin d’accélération sur les instances accélérées, dans la mesure du possible. Ceci afin d’éviter les cas où les tâches de longue durée occupent l’instance accélérée sans mettre à profit l’accélérateur, augmentant ainsi le coût. Dans de rares cas, lorsque la tarification Spot et les instances accélérées sont des types autorisés, il est possible que Batch détermine qu’une instance accélérée soit le moyen le moins onéreux pour exécuter vos tâches, indépendamment des besoins en accélérateurs.
Si vous soumettez une tâche à un EC qui permet uniquement à Batch de lancer des instances accélérées, Batch exécutera les tâches sur ces instances, indépendamment de leurs besoins en accélérateurs.
Q : De quelle manière Batch utilise-t-il l’AMI optimisée par des GPU ECS ?
Désormais, les instances de type P seront lancées par défaut avec l’AMI optimisée par des GPU ECS. Cette AMI contient les bibliothèques et les environnements d’exécution nécessaires pour exécuter des applications basées sur GPU. Vous pouvez toujours pointer vers une AMI personnalisée, si nécessaire, lors de la création de l’EC.
Mise en route
Q : Comment bénéficier du service ?
Consultez le guide de démarrage de notre documentation pour démarrer.
Q : Que dois-je mettre en service pour démarrer ?
Vous n'avez pas besoin de lancer manuellement vos ressources de calcul pour démarrer. La console Web AWS Batch vous guide tout au long du processus de création de votre premier environnement de calcul et de votre première file d'attente de tâches afin que vous puissiez envoyer votre toute première tâche. Les ressources de votre environnement de calcul augmentent à mesure que des tâches supplémentaires sont prêtes à être exécutées et diminuent à mesure que le nombre de tâches pouvant être exécutées baisse.
En savoir plus sur l'utilisation d’AWS Batch