Informações gerais

P: O que é o AWS Batch?
O AWS Batch é um conjunto de recursos de gerenciamento de lotes que permite que desenvolvedores, cientistas e engenheiros executem com facilidade e eficiência centenas de milhares de trabalhos de computação em lotes na AWS. O AWS Batch provisiona dinamicamente a quantidade e o tipo de recursos computacionais ideais (por exemplo, instâncias otimizadas para CPU ou memória) com base nos requisitos de volume e recursos específicos das tarefas em lote enviadas. Com o AWS Batch, não há necessidade de instalar e gerenciar software ou clusters de servidores de computação em lotes, e você pode se concentrar na análise de resultados e na solução de problemas. O AWS Batch planeja, programa e executa cargas de trabalho de computação usando o Amazon EC2 e instâncias spot.

P: O que é computação em lotes?
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.

P: Quais são os benefícios da computação em lotes?
  • 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.
  • Permite priorizar trabalhos, alinhando a alocação de recursos aos objetivos empresariais.

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 trabalhos, permitindo que você execute facilmente milhares de trabalhos em qualquer escala usando o Amazon EC2 e o spot do EC2. Basta definir e enviar os trabalhos em lotes 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 EC2.

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 do EC2?
Os ambientes de computação do AWS Batch podem ser compostos por instâncias EC2 Spot. Durante a criação de um ambiente de computação gerenciado, basta especificar que você gostaria de usar o EC2 Spot e fornecer uma porcentagem de definição de preço sob demanda que você está disposto a propor. 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 pelo EC2 Spot Fleet.

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 (por exemplo, instâncias EC2) criados para armazenar e executar os trabalhos em lotes.

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 mercado spot do EC2, o que significa que suas tarefas aceleradas podem se beneficiar de uma economia de até 90% quando usarem instâncias aceleradas.

P: Que aceleradores posso usar com o AWS Batch?
Atualmente, você pode usar GPUs em instâncias aceleradas P.

P: Como envio tarefas que requerem instâncias aceleradas ao Batch?
Você pode especificar o número e o tipo de aceleradores na definição da tarefa. Você especifica o acelerador descrevendo o tipo de acelerador (por exemplo, GPU - atualmente, o único acelerador suportado) e o número do tipo de que sua tarefa necessita. O tipo de acelerador que você tiver especificado deve estar presente em um dos tipos de instância especificados nos seus ambientes de computação. Por exemplo, se sua tarefa precisar de 2 GPUs, certifique-se também de ter especificado uma instância da família P no seu ambiente de computação.

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

Visite a página de casos de uso
Pronto para criar?
Comece a usar o AWS Batch
Mais dúvidas?
Entre em contato conosco