Informações gerais
P: O que é o AWS Batch?
O AWS Batch é um conjunto de capacidades de gerenciamento de lote que permite a desenvolvedores, cientistas e engenheiros executar com facilidade e eficiência centenas de milhares de trabalhos de computação em lote na AWS. O AWS Batch provisiona dinamicamente a quantidade e o tipo ideais de recursos de computação (p. ex., recursos de computação otimizados para CPU ou memória) com base nos requisitos de volume e de recursos específicos dos trabalhos em lote enviados. Com o AWS Batch, não é necessário instalar e gerenciar clusters de servidores ou software de computação em lote, permitindo que você se concentre em analisar resultados e solucionar problemas. O AWS Batch planeja, programa e executa suas workloads de computação em lote usando o Amazon ECS. o AWS EKS e o AWS Fargate com a opção de usar instâncias spot.
P: O que é computação em lote?
A computação em lotes é a execução de uma série de programas (“trabalhos”) em um ou mais computadores sem intervenção manual. Os parâmetros de entrada são predefinidos por meio de scripts, argumentos de linha de comando, arquivos de controle ou linguagem de controle de trabalhos. Um determinado trabalho em lotes pode depender da conclusão de trabalhos anteriores ou da disponibilidade de determinadas entradas. Com isso, a sequência e a programação de vários trabalhos passam a ser importantes, inviabilizando o processamento interativo.
- Permite deslocar o período de processamento de trabalhos para horários com disponibilidade de capacidade mais ou menos cara.
- Evita recursos de computação ociosos, com intervenção e supervisão manuais frequentes.
- Aumenta a eficiência promovendo maior utilização dos recursos de computação.
- Ela também permite priorizar trabalhos, alinhando a alocação de recursos aos objetivos empresariais.
Quando devo executar meus trabalhos no EKS, no Fargate ou no ECS?
Por que usar o AWS Batch
P: Por que devo usar o AWS Batch?
O AWS Batch se encarrega da execução de trabalhos e do gerenciamento de recursos computacionais, permitindo que você se concentre no desenvolvimento de aplicações ou na análise de resultados, em vez de na configuração e gerenciamento de infraestrutura. Se você está considerando a execução ou migração de cargas de trabalho na AWS, deve considerar o uso do AWS Batch.
P: Para quais casos de uso o AWS Batch é otimizado?
O AWS Batch é otimizado para computação em lotes e aplicações que permitem alterar a escala por meio da execução de vários trabalhos em paralelo. Aprendizado profundo, análises genômicas, modelos de riscos financeiros, simulações de Monte Carlo, renderização de animações, transcodificação de mídia, processamento de imagens e simulações de engenharia são exemplos excelente de aplicações de computação em lotes.
Recursos
P: Quais são os principais recursos do AWS Batch?
O AWS Batch gerencia ambientes de computação e filas de trabalho, permitindo que você execute facilmente milhares de trabalhos em qualquer escala usando o Amazon ECS, Amazon EKS e AWS Fargate com uma opção entre spot e recursos sob demanda. Basta definir e enviar os trabalhos em lote para uma fila. Como resposta, o AWS Batch escolhe onde executar os trabalhos, iniciando capacidade adicional da AWS quando necessário. O AWS Batch monitora com cuidado o andamento dos seus trabalhos. Quando a capacidade deixar de ser necessária, o AWS Batch a removerá. Além disso, o AWS Batch oferece a capacidade de enviar trabalhos como parte de um fluxo ou fluxo de trabalho, permitindo exprimir todas as interdependências existentes entre os trabalhos durante o seu envio.
P: Quais tipos de trabalhos em lotes podem ser feitos no AWS Batch?
O AWS Batch é compatível com qualquer trabalho que possa ser executado como um contêiner de docker. Os trabalhos especificam os requisitos de memória e o número de vCPUs.
P: O que é um recurso de computação?
Um recurso de computação do AWS Batch é uma instância do EC2 ou um recurso de computação do AWS Fargate.
P: O que é um ambiente de computação?
Um ambiente de computação do AWS Batch é uma coleção de recursos de computação onde os trabalhos são executados. O AWS Batch permite dois tipos de ambientes de computação: ambientes de computação gerenciados, que são provisionados e gerenciados pela AWS, e ambientes de computação não gerenciados, que são gerenciados pelos clientes. Os ambientes de computação não gerenciados oferecem um mecanismo para usar recursos especializados, como hosts dedicados, maiores configurações de armazenamento e o Amazon EFS.
P: O que é uma definição de trabalho?
Uma definição de trabalho descreve a atividade a ser executada, os parâmetros, as variáveis ambientais, os requisitos de computação e outras informações usadas para otimizar a execução de um trabalho. As definições de trabalho são estabelecidas antes de enviar um trabalho e podem ser compartilhadas com outros.
P: O que é o agente do Amazon ECS e como ele é usado pelo AWS Batch?
O AWS Batch usa o Amazon ECS para executar trabalhos em contêineres e, portanto, exige a instalação do agente do ECS nos recursos computacionais dentro dos ambientes de computação do AWS Batch. O agente do ECS é pré-instalado em ambientes de computação gerenciados.
P: Como o AWS Batch facilita o uso de instâncias spot?
Os ambientes de computação do AWS Batch podem ser compostos por Instâncias Spot EC2. Durante a criação de um ambiente de computação gerenciado, basta especificar que você gostaria de usar a Instâncias Spot EC2 e fornecer uma porcentagem de definição de preço sob demanda que você está disposto a propor e o AWS Batch se encarregará do resto. Os ambientes de computação não gerenciados também podem incluir Instâncias Spot que você executou, incluindo as executadas pela Frota Spot EC2.
Definição de preço
P: P: Qual é a definição de preço do AWS Batch
Não há cobrança adicional para o AWS Batch. Você paga apenas pelos recursos da AWS (p. ex., instâncias do EC2 ou AWS Fargate) criados para armazenar e executar seus trabalhos em lote.
Programação de GPUs
P: Posso usar aceleradores com o AWS Batch?
Sim, você pode usar o Batch para especificar o número e o tipo de aceleradores necessários para as tarefas, como variáveis de entrada de definição de tarefa, juntamente com as opções atuais de vCPU e memória. O AWS Batch aumentará as instâncias para o nível adequado para as tarefas com base nos aceleradores necessários e isolará os aceleradores de acordo com as necessidades de cada tarefa para que somente os contêineres adequados possam acessá-los.
P: Por que devo usar aceleradores com o AWS Batch?
Ao usar aceleradores com o Batch, você pode programar e provisionar dinamicamente suas tarefas segundo as necessidades dos respectivos aceleradores, e o Batch garantirá que o número adequado de aceleradores seja reservado para suas tarefas. O Batch aumentará as instâncias aceleradas do EC2 quando você precisar delas e as diminuirá quando você terminar, permitindo que você se concentre nos seus aplicativos. O Batch tem uma integração nativa com o Spot do EC2, o que significa que suas tarefas aceleradas podem se beneficiar de uma economia de até 90% quando usarem instâncias aceleradas.
Da API:
{
"containerProperties": {
"vcpus": 1,
"image": "nvidia/cuda:9.0-base",
"memory": 2048,
"resourceRequirements" : [
{
"type" : "GPU",
"value" : "1"
}
],
P: As variáveis do acelerador na definição da tarefa podem ser substituídas no envio da tarefa?
De forma similar aos requisitos de vCPU e memória, você pode substituir o número e o tipo dos aceleradores no envio da tarefa.
P: Instâncias aceleradas podem ser usadas para tarefas que não precisam de aceleradores?
Com o comportamento atual, o Batch evitará programar tarefas que não necessitam de aceleração em instâncias aceleradas, quando possível. Isso servirá para evitar casos em que tarefas de longa execução ocupem a instância acelerada sem aproveitar o acelerador, aumentando o custo. Em raros casos, com a definição de preço do Spot e com instâncias aceleradas como tipo permitido, é possível que o Batch determine que uma instância acelerada é a maneira menos dispendiosa para executar sua tarefa, independentemente da necessidade de acelerador.
Se você enviar uma tarefa a uma CE que só permita que o Batch inicie instâncias aceleradas, o Batch executará as tarefas nestas instâncias, independentemente da necessidade de acelerador.
P: Como o Batch usa a AMI otimizada pela GPU do ECS?
Daqui por diante, instâncias do tipo p serão iniciadas, por padrão, com a AMI otimizada pela GPU do ECS. Essa AMI contém bibliotecas e tempos de execução necessários para executar aplicativos baseados na GPU. Você sempre pode indicar uma AMI personalizada, se necessário, quando criar uma CE.
Conceitos básicos
P: Como faço para começar?
Siga o guia de conceitos básicos em nossa documentação para começar a usar.
P: P: O que preciso provisionar para começar a usar?
Não é necessário lançar manualmente seus próprios recursos de computação para começar a usar. O console web do AWS Batch oferece orientação durante o processo de criação do primeiro ambiente de computação e da primeira fila de trabalhos, permitindo que você envie seu primeiro trabalho. A escala dos recursos no ambiente de computação será aumentada conforme trabalhos adicionais fiquem prontos para execução, e será diminuída com a redução do número de trabalhos executáveis.
Saiba mais sobre quando usar o AWS Batch