Executar tarefas e adicionar pacotes de aplicativos

Concluído

Executar tarefas simultaneamente usando a API REST do Lote

O Lote do Azure usa tarefas paralelas para dividir um trabalho entre nós de computação. O Lote do Azure é especialmente adequado para a execução de trabalhos em lote de computação de alto desempenho e em paralelo em grande escala. O serviço do Lote cuida de tudo para você, inclusive o gerenciamento e o agendamento de todos os nós e aplicativos necessários para a execução dos seus cenários.

Com um número menor de nós em um pool, você pode maximizar o uso de recursos executando mais de uma tarefa ao mesmo tempo. Para determinadas cargas de trabalho, o compartilhamento de nós de computação entre várias tarefas pode resultar em tempos de trabalho e custos menores.

Alguns cenários podem exigir que você minimize as transferências de dados para tarefas que podem compartilhar dados. Você pode reduzir drasticamente os encargos de transferência de dados copiando os dados compartilhados para um número menor de nós e executando tarefas em paralelo em cada nó. Essa abordagem reduz o tempo necessário para transferir os dados para todos os nós em vez de compartilhar dados com um grande número de nós.

Habilitar a execução de tarefas paralelas

A execução de tarefa paralela controla quantas tarefas um único nó pode gerenciar simultaneamente em um pool.

No Lote, os slots controlam a execução paralela da tarefa. As tarefas têm uma propriedade chamada RequiredSlots, que denota o quanto uma tarefa faz uso intensivo de recursos. Tarefas com uso intensivo de recursos exigem mais slots do que as tarefas com uso leve de recursos.

Ao criar um pool, você especifica quantos slots de tarefa estarão disponíveis por nó definindo a propriedade taskSlotsPerNode. Essa propriedade controla a intensidade do recurso das tarefas que podem ser executadas simultaneamente em um nó.

Por exemplo, se a propriedade taskSlotsPerNode de um pool for definida como 16, as tarefas em execução simultânea em um nó nunca precisarão de mais de 16 slots. Essa configuração significa que, por exemplo:

  • Duas tarefas que exigem oito slots podem ser executadas ao mesmo tempo porque o número de slots é igual a 16 (2 * 8 = 16)
  • Três tarefas que exigem cinco slots podem ser executadas ao mesmo tempo porque o número de slots é menor que 16 (3 * 5 = 15)
  • Cinco tarefas que exigem quatro slots não podem ser executadas ao mesmo tempo porque o número de slots é maior que 16 (5 * 4 = 20)

A propriedade taskSlotsPerNode pode ter no máximo quatro vezes o número de vCPUs que um nó tem. Para descobrir quantos vCPUs estão disponíveis em um nó, confira Tamanho das máquinas virtuais no Azure.

Observação

Depois de definir a propriedade taskSlotsPerNode, você não poderá modificá-la. A alteração dele requer a criação de um novo pool.

Defina a propriedade RequiredSlots com base na quantidade de CPU ou memória que você espera que a tarefa precise ou na intensidade de E/S esperada para uma tarefa. Além disso, defina a propriedade taskSlotsPerNode com base em quantas tarefas podem ser executadas simultaneamente sem degradar os tempos de execução de tarefas.

Adicionar um pacote de aplicativos e executar um aplicativo de contêiner no Lote do Azure

pacotes de aplicativos

No Lote do Azure, um aplicativo refere-se a um conjunto de binários com versão que podem ser baixados automaticamente para os nós de computação no pool. Um aplicativo contém um ou mais pacotes de aplicativos, que representam versões diferentes do aplicativo.

Você pode especificar os pacotes de aplicativos no nível do pool e da tarefa. Os pacotes de aplicativos em pool são apropriados quando todos os nós em um pool executam as tarefas de um trabalho.

Você pode especificar mais de um pacote de aplicativos ao criar um pool. Os aplicativos são implantados quando um nó ingressa em um pool e quando o nó é reinicializado ou tem sua imagem refeita. Para instalar novos pacotes em um pool existente, você deve reiniciar seus nós.

Se você optar por implantar um pacote de aplicativos no nível da tarefa, ele será útil em ambientes de pool compartilhado. Nesses ambientes, trabalhos diferentes são executados em um pool e o pool não é excluído quando um trabalho é concluído. Se o trabalho tiver menos tarefas do que os nós do pool, os pacotes de aplicativos de tarefa poderão minimizar a transferência de dados, pois o aplicativo é implantado apenas nos nós que executam as tarefas.

Você pode usar o portal do Azure ou as APIs de Gerenciamento do Lote para gerenciar os pacotes de aplicativos em sua conta do Lote. Para usar pacotes de aplicativos, vincule uma conta do Armazenamento do Azure à sua conta do Lote. O serviço de Lote usa a conta de armazenamento associada para armazenar os pacotes de aplicativos. Recomendamos que você crie uma conta de armazenamento para usar especificamente com sua conta do Lote.

Aplicativos de contêiner

Os contêineres estão se tornando o modo preferido para empacotar, implantar e gerenciar aplicativos de nuvem. As Instâncias de Contêiner do Azure são uma ótima solução para qualquer cenário que possa ser usado em contêineres isolados, incluindo aplicativos simples, automação de tarefas e criação de trabalhos.

O uso de contêineres fornece uma maneira fácil para executar tarefas do Lote sem a necessidade de gerenciar um ambiente e as dependências para executar aplicativos. Os contêineres implantam aplicativos como unidades leves, portáteis e autossuficientes que podem ser executadas em vários ambientes diferentes. As tarefas baseadas em contêiner no Batch também podem aproveitar recursos de tarefas não baseadas em contêiner, incluindo pacotes de aplicativo e gerenciamento de arquivos de recurso e arquivos de saída.

Você pode criar um pool habilitado para contêiner com ou sem uma imagem de contêiner buscadas previamente. O processo de busca prévia permite que você carregue previamente imagens de contêiner do Docker Hub ou de outro registro de contêiner (como o Registro de Contêiner do Azure) da Internet.

A vantagem de buscar previamente as imagens de contêiner é que quando as tarefas começam a ser executadas, não é preciso que as tarefas esperem que a imagem de contêiner seja baixada. A configuração do contêiner efetua pull de imagens de contêiner para as máquinas virtuais quando o pool é criado. As tarefas executadas no pool podem fazer referência à lista de imagens de contêiner e a opções de execução do contêiner.