Criando uma instância de VM pronta para HPC


Introdução

Cargas de trabalho de computação de alto desempenho (HPC) fortemente acopladas geralmente usam a Message Passing Interface (MPI) para se comunicar entre processos e instâncias de máquinas virtuais (VM). Mas construir sua própria imagem de VM ajustada para desempenho ideal de MPI requer experiência em sistemas, Google Cloud conhecimento e tempo extra para manutenção. Para criar rapidamente instâncias de VM para suas cargas de trabalho de HPC, você pode usar a imagem de VM de HPC . Como alternativa, você pode criar VMs usando a série de máquinas H3 .

A imagem de VM de HPC é uma imagem de VM baseada em CentOS 7.9 ou Rocky Linux 8 otimizada para cargas de trabalho de HPC fortemente acopladas. Inclui parâmetros pré-configurados de ajuste de kernel e rede necessários para criar instâncias de VM que alcançam desempenho ideal de MPI em Google Cloud.

Você pode criar uma VM pronta para HPC usando as seguintes opções:

Benefícios

A imagem da VM HPC oferece os seguintes benefícios:

  1. VMs prontas para HPC prontas para uso . Não há necessidade de ajustar manualmente o desempenho, gerenciar reinicializações de VM ou manter-se atualizado com as últimas novidades.Google Cloud atualizações para cargas de trabalho de HPC fortemente acopladas.
  2. Otimizações de rede para cargas de trabalho fortemente acopladas . Estão incluídas otimizações que reduzem a latência para mensagens pequenas, o que beneficia aplicativos que dependem fortemente de comunicações ponto a ponto e coletivas.
  3. Otimizações de computação para cargas de trabalho de HPC . Estão incluídas otimizações que reduzem a instabilidade do sistema, o que torna o alto desempenho de nó único mais previsível.
  4. Desempenho consistente e reproduzível . A padronização de imagens de VM oferece desempenho consistente e reproduzível em nível de aplicativo.
  5. Melhor compatibilidade de aplicativos . O alinhamento com os requisitos de nível de nó da especificação da plataforma Intel HPC permite um alto grau de interoperabilidade entre sistemas.

Características

Desative atualizações automáticas

As atualizações automáticas podem ter um impacto negativo no desempenho dos aplicativos HPC. As atualizações automáticas podem ser desativadas ao usar imagens de VM HPC, definindo a entrada de metadados google_disable_automatic_updates como TRUE ao criar uma VM. A forma como os metadados devem ser definidos durante a criação da VM depende da ferramenta usada para criar a VM.

Por exemplo, ao usar o comando gcloud compute instances create para criar uma VM, forneça o argumento --metadata . Para obter mais informações, consulte Sobre metadados de VM .

Ajustes coletivos Intel MPI

A imagem da VM HPC inclui ajustes coletivos Intel MPI realizados em instâncias c2-standard-60 e c2d-standard-112 usando políticas de posicionamento compactas .

RPMs pré-instalados

A imagem da VM HPC vem com os seguintes pacotes RPM pré-instalados:

  • daos-client
  • gcc-gfortran
  • gcc-toolset-12
  • Lmod
  • dkms
  • htop
  • hwloc
  • hwloc-devel
  • infiniband-diags
  • kernel-devel
  • kmod-idpf-irdma
  • libfabric
  • librdmacm-utils
  • libibverbs-utils
  • libXt
  • ltrace
  • nfs-utils
  • numactl
  • numactl-devel
  • papi
  • pciutils
  • pdsh
  • perf
  • perftest
  • rdma-core
  • redhat-lsb-core
  • redhat-lsb-cxx
  • rsh
  • screen
  • strace
  • wget
  • zsh
  • Grupo de pacotes "Ferramentas de Desenvolvimento"

Guias de início rápido

Antes de começar

  1. Para usar a CLI do Google Cloud neste guia de início rápido, primeiro instale e inicialize a CLI do Google Cloud :
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie umGoogle Cloud projeto.

Crie uma instância de VM HPC

Crie a VM

É altamente recomendável escolher um tipo de máquina otimizada para computação, como C2 , C2D ou H3 . Essas VMs têm mapeamento fixo de núcleo virtual para físico e expõem a arquitetura de células NUMA ao sistema operacional convidado, sendo que ambos são essenciais para o desempenho de aplicativos HPC fortemente acoplados.

Console

  1. No console do Google Cloud, acesse a página HPC VM Cloud Marketplace. Acesse a página do HPC VM Cloud Marketplace

  2. Clique em Iniciar .

  3. Na página de implantação da VM HPC, insira um Nome de implantação . Este nome se torna a raiz do nome da sua VM. O Compute Engine anexa -vm a esse nome ao nomear sua instância.

  4. Escolha uma zona e um tipo de máquina . Para este início rápido, você pode deixar todas as configurações como estão ou alterá-las. É altamente recomendável escolher um tipo de máquina otimizada para computação, como C2 , C2D ou H3 .

  5. Deixe o tipo de disco de inicialização , o tamanho do disco de inicialização e a interface de rede com as configurações padrão.

  6. Clique em Implementar .

Depois que a criação da instância de VM for concluída, o Cloud Deployment Manager será aberto, onde você poderá gerenciar sua VM de HPC e outras implantações.

gcloud

Crie uma VM de HPC usando o comando instances create . Recomendamos fortemente que você crie VMs de HPC usando políticas de posicionamento compacto para obter baixa latência de rede. Se você precisar de mais VMs do que cabem em uma única política de posicionamento compacta, divida suas VMs em diversas políticas de posicionamento. Recomendamos usar o número mínimo de políticas de posicionamento que cabem nas suas VMs.

gcloud compute instances create VM_NAME \
        --zone=ZONE \
        --image-family=IMAGE_FAMILY \
        --image-project=cloud-hpc-image-public \
        --maintenance-policy=TERMINATE \
        --machine-type=MACHINE_TYPE

Substitua o seguinte:

  • VM_NAME : nome da VM HPC a ser criada.
  • ZONE : zona na qual criar a VM.
  • IMAGE_FAMILY : a família de imagens da imagem com a qual criar instâncias de VM. Use hpc-centos-7 para uma imagem baseada em CentOS ou hpc-rocky-linux-8 para uma imagem baseada em Rocky Linux 8.
  • MACHINE_TYPE : tipo de máquina para a nova VM.

Depois de algum tempo, a criação da instância de VM será concluída. Para verificar a VM e ver seu status, execute o seguinte comando:

gcloud compute instances describe VM_NAME

Acesse a VM

Console

Depois de criar sua instância de VM de HPC, ela será iniciada automaticamente. Para acessá-lo, faça o seguinte:

  1. No console do Google Cloud, acesse a página de instâncias de VM .

    Acesse as instâncias de VM

  2. Clique no nome da sua instância de VM.

  3. Na seção Acesso remoto , clique na primeira lista suspensa e escolha como deseja acessar a instância.

O Compute Engine propaga suas chaves SSH e cria seu usuário. Para obter mais informações, consulte Conectando-se a VMs Linux .

gcloud

Depois de criar sua instância de VM de HPC, ela será iniciada automaticamente. Para acessá-lo usando SSH, use o comando compute ssh :

gcloud compute ssh VM_NAME

O Compute Engine propaga suas chaves SSH e cria seu usuário. Para obter mais informações, consulte Conectando-se a instâncias .

Limpar

Para evitar incorrer em cobranças ao seu Google Cloud Considere os recursos usados ​​neste início rápido, exclua a instância de VM de HPC que você criou.

Console

  1. No console do Google Cloud, acesse a página Implantações .

    Vá para implantações

  2. Marque a caixa de seleção ao lado da implantação da VM de HPC.

  3. Clique em Excluir .

gcloud

Use o comando instances delete :

gcloud compute instances delete VM_NAME

Crie VMs de HPC com políticas de posicionamento compactas

Você pode reduzir a latência entre VMs criando uma política de posicionamento compacta. Uma política de posicionamento compacta garante que as VMs na mesma zona de disponibilidade estejam localizadas próximas umas das outras.

Para criar VMs de HPC que especifiquem uma política de posicionamento compacto, siga estas etapas:

  1. Crie uma política de posicionamento compacta .

  2. Faça um dos seguintes:

Configure sua VM HPC de acordo com as práticas recomendadas

Para obter um desempenho melhor e mais previsível para sua VM de HPC, recomendamos que você use as práticas recomendadas a seguir.

Desativar multithreading simultâneo

A imagem HPC VM permite multithreading simultâneo (SMT), também conhecido como Hyper-Threading em processadores Intel , por padrão. Desativar o SMT pode tornar seu desempenho mais previsível e diminuir o tempo de trabalho.

Você pode usar os seguintes métodos para desativar o SMT:

  • Para desabilitar o SMT ao criar uma nova VM de HPC, siga as etapas para criar uma VM de HPC e inclua a sinalização --threads-per-core=1 .

  • Para desabilitar o SMT em uma VM de HPC existente, conecte-se à VM e execute o seguinte comando na VM:

    sudo google_mpi_tuning --nosmt
    

Para obter mais informações, consulte Definir o número de threads por núcleo .

Use gVNIC como interface de rede virtual

A imagem HPC VM suporta Virtio-net e Google Virtual NIC (gVNIC) como interfaces de rede virtuais. Usar gVNIC em vez de Virtio-net pode melhorar a escalabilidade de aplicativos MPI, fornecendo melhor desempenho de comunicação e maior rendimento. Além disso, o gVNIC é um pré-requisito para redes avançadas , que fornece maior largura de banda e permite maior rendimento.

Quando você cria uma nova VM, o Virtio-net é usado como interface de rede virtual por padrão. Para usar o gVNIC, siga as etapas para criar uma VM HPC e inclua o sinalizador --network-interface=nic-type=GVNIC . A imagem HPC VM inclui o driver gVNIC como um Dynamic Kernel Module Support (DKMS) . Para obter mais informações, consulte Usando o Google Virtual NIC .

Desative as mitigações Meltdown e Spectre

A imagem da VM HPC habilita as mitigações Meltdown e Spectre por padrão. Em alguns casos, estas mitigações podem resultar na degradação do desempenho específico da carga de trabalho. Para desabilitar essas mitigações e incorrer nos riscos de segurança associados, faça o seguinte:

  1. Execute o seguinte comando em sua VM HPC:

    sudo google_mpi_tuning --nomitigation
    
  2. Reinicie a VM.

Melhore o desempenho da rede

Para melhorar o desempenho da rede da sua VM, defina uma ou mais das seguintes configurações:

  • Configure uma largura de banda maior . Para configurar o desempenho de rede por VM Tier_1, use o comando gcloud compute instances create para criar a VM e especifique a sinalização --network-performance-configs . Para obter mais informações, consulte Criando uma VM com configuração de alta largura de banda .

  • Use molduras jumbo . Para ajudar a minimizar a sobrecarga de processamento de pacotes de rede, recomendamos usar um tamanho de pacote maior. Você precisa validar tamanhos de pacotes maiores para as especificidades do seu aplicativo. Para obter informações sobre o uso de jumbo frames e tamanhos de pacotes, consulte Guia da unidade máxima de transmissão .

  • Aumente os limites de memória TCP . Maior largura de banda requer maior memória TCP. Siga as etapas para aumentar as configurações de tcp_*mem .

  • Use o perfil de latência de rede . Avalie a latência do seu aplicativo e habilite a sondagem ocupada que reduz a latência no caminho de recebimento da rede. Ajuste as configurações net.core.busy_poll e net.core.busy_read em /etc/sysctl.conf ou use tuned-adm .

Usar Intel MPI 2021

O Google recomenda usar a biblioteca Intel MPI 2021 para executar trabalhos MPI em Google Cloud.

As implementações de MPI possuem muitos parâmetros de configuração internos que podem afetar o desempenho da comunicação. Esses parâmetros são especialmente relevantes para a comunicação Coletiva MPI, que permite especificar algoritmos e parâmetros de configuração que podem funcionar de maneira muito diferente no Google Cloud ambiente.

A imagem HPC VM inclui um utilitário, Google-hpc-compute , para instalar convenientemente as bibliotecas MPI recomendadas e usar Google Cloud provedores libfabric personalizados sobre o transporte TCP.

Use o utilitário google-hpc-compute para suporte IntelMPI 2021

O script google_install_intelmpi é a ferramenta relacionada ao MPI no utilitário Google-hpc-compute . Ajuda a instalar e configurar o IntelMPI.

O utilitário Google-hpc-compute está incluído na imagem da VM HPC.

Instale Intel MPI 2021

Para instalar a biblioteca IntelMPI ao criar uma nova VM de HPC, siga as etapas para criar uma VM de HPC e inclua o seguinte ao criar a instância de VM:

--metadata=google_install_intelmpi="--impi_2021"

Para instalar a biblioteca em uma VM HPC existente, execute o seguinte comando nessa VM:

sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI

O local padrão para install_dir é definido como /opt/intel .

Intel MPI 2018 na imagem HPC CentOS 7

O suporte Intel MPI 2018 está disponível na imagem HPC CentOS 7 em Google Cloud. Verifique o guia do usuário do utilitário google_install_mpi para obter mais informações.

Para casos de uso adicionais relacionados ao Intel MPI 2018, como a execução de aplicativos MPI criados com Intel Parallel Studio XE, use o tempo de execução completo do Intel Parallel Studio XE (PSXE) substituindo intel_mpi por intel_psxe_runtime nos comandos acima. O tempo de execução PSXE inclui diversas bibliotecas que são importantes para a execução de aplicativos MPI, como a Intel Math Kernel Library (MKL).

Crie uma imagem personalizada usando a imagem da VM HPC

  1. Crie uma VM personalizada que use a imagem da VM de HPC .

  2. Personalize a VM com ajustes de MPI .

  3. Crie uma imagem personalizada usando o disco de inicialização da sua imagem de VM de HPC como disco de origem. Você pode fazer isso usando o console do Google Cloud ou a CLI do Google Cloud .

Console

  1. No console do Google Cloud, acesse a página Imagens .

    Vá para Imagens

  2. Clique em Criar imagem .

  3. Especifique um nome para sua imagem.

  4. Em Disco de origem , selecione o nome do disco de inicialização na sua VM HPC.

  5. Escolha outras propriedades restantes para sua imagem.

  6. Clique em Criar .

gcloud

Crie a imagem personalizada usando o comando images create .

gcloud compute images create IMAGE_NAME \
         --source-disk=VM_NAME \
         --source-disk-zone=VM_ZONE \
         --family=IMAGE_FAMILY \
         --storage-location=LOCATION

Substitua o seguinte:

  • IMAGE_NAME : nome da imagem personalizada.
  • VM_NAME : nome da sua VM HPC.
  • INSTANCE_ZONE : zona onde sua VM HPC está localizada.
  • IMAGE_FAMILY : opcional. A família de imagens à qual esta imagem pertence.
  • LOCATION : opcional. Região na qual armazenar a imagem personalizada. O local padrão é a multirregião mais próxima do local do disco de origem.

Preços

A imagem HPC VM está disponível sem custo adicional. Como a imagem da VM de HPC é executada no Compute Engine, você pode incorrer em cobranças por recursos do Compute Engine, como vCPUs C2 e memória. Para saber mais, consulte Preços do Compute Engine .

Limitações

Os benefícios do ajuste variam de aplicação para aplicação. Em alguns casos, um ajuste específico pode ter um efeito negativo no desempenho. Considere comparar seus aplicativos para encontrar a configuração mais eficiente ou econômica.

O que vem a seguir