Estilo de arquitetura de macrocomputaçãoBig compute architecture style

O termo macrocomputação descreve as cargas de trabalho em grande escala que necessitam de um grande número de núcleos, atingindo, muitas vezes, as centenas ou milhares.The term big compute describes large-scale workloads that require a large number of cores, often numbering in the hundreds or thousands. Os cenários incluem composição de imagem, dinâmica de fluidos, modelação de riscos financeiros, exploração petrolífera, conceção de medicamentos e análise de tensões em engenharia, entre outros.Scenarios include image rendering, fluid dynamics, financial risk modeling, oil exploration, drug design, and engineering stress analysis, among others.

Diagrama lógico para o estilo de arquitetura de macrocomputação

Seguem-se algumas características típicas de aplicações de macrocomputação:Here are some typical characteristics of big compute applications:

  • O trabalho pode ser dividido em tarefas discretas, que podem ser executadas em simultâneo por vários núcleos.The work can be split into discrete tasks, which can be run across many cores simultaneously.
  • Cada tarefa é finita.Each task is finite. Obtém alguns dados de entrada, faz o processamento e produz um resultado.It takes some input, does some processing, and produces output. Toda a aplicação é executada durante um período de tempo finito (de minutos a dias).The entire application runs for a finite amount of time (minutes to days). Um padrão comum consiste em aprovisionar um grande número de núcleos de rajada e, em seguida, baixar para zero assim que a aplicação estiver concluída.A common pattern is to provision a large number of cores in a burst, and then spin down to zero once the application completes.
  • Não é necessário que a aplicação se mantenha ligada 24 horas por dia, sete dias por semana.The application does not need to stay up 24/7. No entanto, o sistema deve processar falhas de nó ou da aplicação.However, the system must handle node failures or application crashes.
  • Para algumas aplicações, as tarefas são independentes e podem ser executadas em paralelo.For some applications, tasks are independent and can run in parallel. Noutros casos, as tarefas estão fortemente conjugadas, o que significa que têm de interagir ou trocar resultados intermédios.In other cases, tasks are tightly coupled, meaning they must interact or exchange intermediate results. Nesse caso, considere a utilização de tecnologias de rede de alta velocidade, tais como InfiniBand e acesso remoto direto à memória (RDMA).In that case, consider using high-speed networking technologies such as InfiniBand and remote direct memory access (RDMA).
  • Consoante a carga de trabalho, poderá utilizar os tamanhos de VM de computação intensiva (H16r, H16mr e A9).Depending on your workload, you might use compute-intensive VM sizes (H16r, H16mr, and A9).

Quando utilizar esta arquiteturaWhen to use this architecture

  • Operações computacionalmente intensivas, como a simulação e o processamento estatístico.Computationally intensive operations such as simulation and number crunching.
  • Simulações que são computacionalmente intensivas e têm de ser divididas por CPUs em vários computadores (de 10 a milhares).Simulations that are computationally intensive and must be split across CPUs in multiple computers (10-1000s).
  • Simulações que requerem demasiada memória para um computador e têm de ser divididas por vários computadores.Simulations that require too much memory for one computer, and must be split across multiple computers.
  • Cálculos de longa execução que demorariam demasiado tempo a concluir num único computador.Long-running computations that would take too long to complete on a single computer.
  • Operações mais pequenas que têm de ser executadas centenas ou milhares de vezes, como as simulações Monte Carlo.Smaller computations that must be run 100s or 1000s of times, such as Monte Carlo simulations.

BenefíciosBenefits

  • Elevado desempenho com processamento “constrangedoramente paralelo”.High performance with "embarrassingly parallel" processing.
  • Pode tirar partido de centenas ou milhares de núcleos de computador para resolver rapidamente problemas grandes.Can harness hundreds or thousands of computer cores to solve large problems faster.
  • Acesso a hardware especializado de elevado desempenho, com redes InfiniBand dedicadas de alta velocidade.Access to specialized high-performance hardware, with dedicated high-speed InfiniBand networks.
  • Pode aprovisionar VMs conforme necessário para trabalhar e, em seguida, fechá-las.You can provision VMs as needed to do work, and then tear them down.

DesafiosChallenges

  • Gerir a infraestrutura de VM.Managing the VM infrastructure.
  • Gerir o volume de manipulação de númerosManaging the volume of number crunching
  • Aprovisionar milhares de núcleos atempadamente.Provisioning thousands of cores in a timely manner.
  • Para tarefas fortemente conjugadas, a adição de mais núcleos pode dar origem a devoluções diminutas.For tightly coupled tasks, adding more cores can have diminishing returns. Terá de testar para determinar o número ideal de núcleos.You may need to experiment to find the optimum number of cores.

Macrocomputação com o Azure BatchBig compute using Azure Batch

O Azure Batch é um serviço gerido para executar aplicações de computação de alto desempenho (HPC) em larga escala.Azure Batch is a managed service for running large-scale high-performance computing (HPC) applications.

Através do Azure Batch, pode configurar um conjunto de VMs e carregar as aplicações e os ficheiros de dados.Using Azure Batch, you configure a VM pool, and upload the applications and data files. O serviço Batch aprovisiona as VMs, atribui tarefas às VMs, executa as tarefas e monitoriza o progresso.Then the Batch service provisions the VMs, assign tasks to the VMs, runs the tasks, and monitors the progress. O Batch pode aumentar horizontalmente as VMs de forma automática em resposta à carga de trabalho.Batch can automatically scale out the VMs in response to the workload. O Batch também concede o agendamento de tarefas.Batch also provides job scheduling.

Diagrama de computação de grandes dimensões com o Azure Batch

Macrocomputação em execução em Máquinas VirtuaisBig compute running on Virtual Machines

Pode utilizar o Microsoft HPC Pack para administrar um cluster de VMs, e agendar e monitorizar tarefas HPC.You can use Microsoft HPC Pack to administer a cluster of VMs, and schedule and monitor HPC jobs. Com esta abordagem, tem de aprovisionar e gerir as VMs e a infraestrutura de rede.With this approach, you must provision and manage the VMs and network infrastructure. Considere esta abordagem se tiver cargas de trabalho HPC existentes e pretender mover algumas ou todas para o Azure.Consider this approach if you have existing HPC workloads and want to move some or all it to Azure. Pode mover todo o cluster HPC para o Azure, ou pode manter sua HPC cluster no local, mas utilizar o Azure para impulsar a capacidade.You can move the entire HPC cluster to Azure, or you can keep your HPC cluster on-premises but use Azure for burst capacity. Para obter mais informações, veja Soluções Batch e HPC para cargas de trabalho de computação em grande escala.For more information, see Batch and HPC solutions for large-scale computing workloads.

HPC Pack implementado no AzureHPC Pack deployed to Azure

Neste cenário, o cluster HPC é criado inteiramente no Azure.In this scenario, the HPC cluster is created entirely within Azure.

Diagrama do HPC Pack implementado no Azure

O nó principal fornece serviços de gestão e agendamento de tarefas ao cluster.The head node provides management and job scheduling services to the cluster. Para tarefas fortemente conjugadas, utilize uma rede RDMA que fornece uma largura de banda muito elevada e comunicação de baixa latência entre as VMs.For tightly coupled tasks, use an RDMA network that provides very high bandwidth, low latency communication between VMs. Para obter mais informações, veja Implementar um cluster HPC Pack 2016 no Azure.For more information see Deploy an HPC Pack 2016 cluster in Azure.

Impulsar um cluster HPC para o AzureBurst an HPC cluster to Azure

Neste cenário, uma organização está a executar o HPC Pack no local e utiliza as VMs do Azure para impulsar a capacidade.In this scenario, an organization is running HPC Pack on-premises, and uses Azure VMs for burst capacity. O nó principal do cluster está no local.The cluster head node is on-premises. O ExpressRoute ou o Gateway de VPN liga a rede no local à VNet do Azure.ExpressRoute or VPN Gateway connects the on-premises network to the Azure VNet.

Diagrama de um cluster de computação de grandes dimensões híbrida