Criar uma instância de VM pronta para HPC

As cargas de trabalho de computação de alto desempenho (HPC, na sigla em inglês) de acoplamento rígido usam a interface de transmissão de mensagens (MPI, na sigla em inglês) para comunicação entre processos e instâncias de máquina virtual (VM, na sigla em inglês). No entanto, para criar uma imagem de VM ajustada para o desempenho ideal do MPI, é necessário ter experiência com sistemas, conhecimento do Trusted Cloud by S3NS e mais tempo para manutenção. Para configurar rapidamente um ambiente otimizado para suas cargas de trabalho de HPC, use a imagem de VM de HPC.

A imagem de VM de HPC é uma imagem de VM baseada no Rocky Linux 8 e otimizada para cargas de trabalho de HPC com acoplamento rígido. Ela inclui parâmetros pré-configurados de ajuste de rede e kernel necessários para criar instâncias de VM que alcançam o desempenho ideal do MPI no Trusted Cloud by S3NS.

Para ter os melhores resultados, implante a imagem de VM de HPC em um tipo de máquina de uma série otimizada para HPC, como H4D ou H3, ou uma série otimizada para computação, como C2 ou C2D. Esses tipos de máquina são projetados para aplicativos de HPC com alta integração. Para usar o RDMA com H4D, use a versão 20241125 ou mais recente da imagem de VM de HPC.

É possível criar uma instância de VM pronta para HPC usando as seguintes opções:

Vantagens

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

  1. Instâncias de VM prontas para uso de cargas de trabalho de HPC. Não é necessário ajustar manualmente o desempenho, gerenciar reinicializações de instâncias de VM ou ficar por dentro das atualizações mais recentes do Trusted Cloud para cargas de trabalho de HPC de acoplamento rígido.
  2. Otimizações de rede para cargas de trabalho de acoplamento rígido. Otimizações que reduzem a latência para pequenas mensagens estão incluídas, o que beneficia aplicativos que dependem muito de comunicações ponto a ponto e coletivas. Se você estiver usando a série de máquinas H4D, a imagem da VM de HPC vai conter os drivers do Cloud RDMA necessários.
  3. otimização 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 um nó único mais previsível.
  4. Desempenho consistente e reproduzível. A padronização de imagens de VM oferece desempenho consistente e reproduzível no nível do aplicativo.
  5. Melhoria na compatibilidade de apps. O alinhamento com os requisitos no nível do nó da especificação da plataforma Intel HPC permite um alto grau de interoperabilidade entre sistemas.

Recursos da imagem de VM de HPC

A imagem de VM de HPC oferece vários recursos projetados para otimizar o desempenho de cargas de trabalho de computação de alto desempenho (HPC):

  • Atualizações automáticas desativadas
  • Ajustes coletivos da Intel MPI
  • RPMs pré-instaladas

Atualizações automáticas desativadas

As atualizações automáticas podem ter um impacto negativo no desempenho das cargas de trabalho de HPC. As atualizações automáticas podem ser desativadas ao usar as imagens de VM do HPC definindo a entrada de metadados google_disable_automatic_updates como TRUE ao criar uma instância de VM. A forma como essa entrada de metadados é definida durante a criação da instância depende da ferramenta usada para criar a instância.

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

Biblioteca Intel MPI

O Google recomenda usar a biblioteca Intel MPI 2021 para executar jobs de MPI no Trusted Cloud by S3NS. Para saber mais, consulte as seguintes seções:

RPMs pré-instaladas

A imagem da VM de 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 para desenvolvedores"

Guias de início rápido

Estes tutoriais descrevem as etapas para configurar uma instância de VM otimizada para HPC. Os procedimentos descrevem como:

  • Criar uma instância de VM de HPC (sem configurar o Cloud RDMA)
  • Especificar uma política de posicionamento compacto ao criar instâncias de VM de HPC
  • Criar uma instância de VM de HPC que use o Cloud RDMA (pré-lançamento)

Não é possível adicionar o Cloud RDMA a uma instância de VM de HPC atual. Portanto, siga as etapas adequadas ao criar a instância.

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 Trusted Cloud , na página do seletor de projetos, selecione ou crie um projeto doTrusted Cloud .

Crie uma instância de VM de HPC

Recomendamos escolher um tipo de máquina das seguintes séries:

Essas VMs têm mapeamento fixo de núcleo virtual para físico e expõem a arquitetura de célula NUMA ao sistema operacional convidado, sendo ambos essenciais para o desempenho de aplicativos HPC fortemente acoplados.

Console

  1. No console Trusted Cloud , acesse a página de VM de HPC no Cloud Marketplace. Acessar a página de VM de HPC no Cloud Marketplace

  2. Clique em Primeiros passos.

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

  4. Escolha uma zona e um tipo de máquina. Para este guia de início rápido, deixe todas as configurações como estão ou altere-as.

  5. Mantenha as configurações padrão de Tipo de disco de inicialização, Tamanho do disco de inicialização e Interface de rede.

  6. Clique em Implantar.

Após a conclusão da criação da instância da VM, o Cloud Deployment Manager é aberto para gerenciar a VM de HPC e outras implantações.

gcloud

Crie uma VM de HPC usando o comando instances create. Se você estiver criando várias instâncias de VM de HPC interconectadas, crie VMs de HPC com políticas de posicionamento compactas para alcançar baixa latência de rede.

Para criar uma instância de VM de HPC sem uma política de posicionamento, use um comando semelhante a este:

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

Substitua:

  • INSTANCE_NAME: um nome para a instância de VM de HPC.
  • ZONE: a zona em que a instância será criada.
  • IMAGE_FAMILY: a família de imagens da imagem a ser usada ao criar as instâncias de VM. Use hpc-rocky-linux-8 para a imagem mais recente baseada no Rocky Linux 8.
  • MACHINE_TYPE: o tipo de máquina a ser usado ao criar a instância de VM.

Após um tempo, a criação da instância de VM é concluída. Para verificar a configuração da instância e ver o status dela, execute o seguinte comando:

gcloud compute instances describe INSTANCE_NAME

Criar instâncias de VM de HPC com políticas de posicionamento compacto

É possível reduzir a latência entre instâncias de VM criando uma política de posicionamento compacto. Uma política de colocação de compactação garante que as instâncias na mesma zona de disponibilidade estejam localizadas próximas umas das outras.

Se você precisar de mais instâncias de VM do que cabe em uma única política de posicionamento compacta, divida as instâncias em várias políticas de posicionamento. Use o número mínimo de políticas de posicionamento que se encaixam em todas as instâncias.

Para criar instâncias de VM de HPC que especifiquem uma política de posicionamento compacto, siga estas etapas:

  1. Crie uma política de posicionamento compacto.

  2. Escolha uma destas opções:

Criar uma instância de VM de HPC que use o Cloud RDMA

Para criar uma instância de VM de HPC que use o Cloud RDMA, primeiro crie pelo menos uma rede VPC regular e uma rede VPC do Falcon. A rede VPC do Falcon usa um perfil de rede RDMA que permite o tráfego RDMA entre instâncias de computação. Essa rede é separada da rede VPC regular que transporta tráfego não RDMA para outros serviços doTrusted Cloud by S3NS ou para a Internet.

Para criar uma instância de VM de HPC que use o Cloud RDMA, as tarefas a serem concluídas são as seguintes:

  1. Identifique ou crie pelo menos duas redes VPC:

    • Uma rede VPC comum para o tráfego que passa pela interface de rede gVNIC
    • Uma rede VPC do Falcon para o tráfego RDMA
  2. Crie uma instância de VM de HPC.

    1. Para a imagem de origem, use a imagem de VM de HPC. Essa imagem inclui os drivers necessários para o Cloud RDMA.
    2. Durante a criação da instância, configure pelo menos duas interfaces de rede: uma que usa o driver gVNIC e outra que usa o driver IRDMA.

      Para uma explicação mais completa, consulte Criar uma instância que usa o Cloud RDMA.

  3. Se você planeja executar aplicativos MPI nas instâncias de VM de HPC que usam o Cloud RDMA, siga as etapas de configuração do MPI em Configurar e escalonar aplicativos MPI em VMs H4D com o Cloud RDMA.

Acessar a instância de VM de HPC

Depois de criar a instância de VM de HPC, ela é iniciada automaticamente. Para acessar a instância, faça o seguinte:

Console

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

    Acessar instâncias de VM

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

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

O Compute Engine propaga as chaves SSH e cria o usuário. Para mais informações, consulte Como se conectar a VMs do Linux.

gcloud

Para acessar a instância usando SSH, use o comando gcloud compute ssh:

gcloud compute ssh INSTANCE_NAME

O Compute Engine propaga as chaves SSH e cria o usuário. Para mais informações, consulte Como se conectar a instâncias.

Limpar

Para evitar cobranças na sua conta do Trusted Cloud by S3NS pelos recursos usados nestes guias de início rápido, exclua as instâncias de VM de HPC que você criou.

Console

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

    Acessar "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 INSTANCE_NAME

Configurar sua instância de VM de HPC de acordo com as práticas recomendadas

Para ter um desempenho melhor e mais previsível para sua instância de VM de HPC, recomendamos que você siga as práticas recomendadas a seguir.

Desativar multissegmentação simultânea

Por padrão, a imagem de VM de HPC permite multissegmentação simultânea (SMT, na sigla em inglês), também conhecida como Hyper-Threading em processadores Intel. Desativar a SMT pode tornar seu desempenho mais previsível e diminuir os tempos de job.

Use os seguintes métodos para desativar a SMT:

  • Para desativar a 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 desativar a SMT em uma VM de HPC atual, conecte-se à VM e execute o seguinte comando na VM:

    sudo google_mpi_tuning --nosmt
    

Para ver mais informações, consulte Definir número de linhas de execução por núcleo.

Configurar a gVNIC como o tipo de interface de rede para instâncias C2 e C2D

A imagem de VM de HPC é compatível com o Virtio-net e o Google Virtual NIC (gVNIC) como interfaces de rede virtual. Usar o gVNIC em vez da Virtio-net pode melhorar a escalonabilidade dos aplicativos de MPI, fornecendo melhor desempenho de comunicação e maior capacidade. Além disso, a gVNIC é um pré-requisito para o desempenho de rede por VM de Tier_1, que oferece maior largura de banda e permite maior capacidade.

Se você criar uma instância C2 ou C2D, o Virtio-net será usado por padrão para a interface de rede virtual. Para usar a gVNIC, siga as etapas para criar uma VM de HPC e faça uma destas ações:

Console

Para definir a gVNIC como a interface de rede, ao criar a instância, clique em Rede no menu de navegação. No painel "Rede" exibido, faça o seguinte:

  1. Acesse a seção Interfaces de rede.
  2. Em Place de rede, selecione gVNIC.

gcloud

Inclua a flag --network-interface=nic-type=GVNIC no comando gcloud compute instances create.

A imagem de VM de HPC inclui o driver da gVNIC como um Dynamic Kernel Module Support (DKMS). Para mais informações, consulte Como usar a NIC virtual do Google.

Desativar a mitigação de Meltdown e Spectre

A imagem de VM de HPC é compatível com a mitigação e redução de ruído por padrão. Em alguns casos, essas mitigações podem prejudicar a desempenho da carga de trabalho. É possível desativar essas mitigações, mas você estará assumindo os riscos de segurança associados. Para desativá-las faça o seguinte:

  1. Execute o seguinte comando na instância de HPC:

    sudo google_mpi_tuning --nomitigation
    
  2. Reinicie a instância.

Melhorar o desempenho da rede

Para melhorar o desempenho da rede da instância, defina uma ou mais das seguintes configurações:

  • Configure uma largura de banda maior. Para configurar a rede Tier_1 para VMs C2 ou C2D, use o comando gcloud compute instances create para criar a VM e especificar a flag --network-performance-configs. Para mais informações, consulte Como criar uma VM com configuração de alta largura de banda.

  • Usar frames Jumbo. Para ajudar a minimizar a sobrecarga de processamento de pacotes de rede, recomendamos o uso de um tamanho de pacote maior. É preciso validar tamanhos de pacote maiores para as especificidades do aplicativo. Para ver informações sobre o uso de frames enormes e tamanhos de pacote, consulte Guia de unidade de transmissão máxima.

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

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

Use Intel MPI 2021

O Google recomenda usar a biblioteca Intel MPI 2021 para executar jobs de MPI no Trusted Cloud.

As implementações de MPI têm 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 de MPI, que permite especificar algoritmos e parâmetros de configuração que podem ter um desempenho muito diferente no ambiente Trusted Cloud by S3NS .

A imagem da VM de HPC inclui um utilitário, google-hpc-compute, que instala as bibliotecas MPI recomendadas e usa provedores de libfabric sob medida para Trusted Cloud by S3NS sobre o transporte TCP.

Limitações

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

Usar o utilitário google-hpc-compute para compatibilidade com Intel MPI 2021

O script google_install_intelmpi é a ferramenta relacionada à MPI no utilitário Google-hpc-compute. Ele ajuda a instalar e configurar o Intel MPI.

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

Instalar a Intel MPI 2021

Para instalar a biblioteca Intel MPI 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 de HPC existente, execute o seguinte comando nessa VM:

sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI

O local padrão de install_dir está definido como /opt/intel.

Biblioteca Intel MPI 2018 e ajustes coletivos da MPI

A imagem da VM de HPC inclui ajustes coletivos da Intel MPI executados nas instâncias c2-standard-60 e c2d-standard-112 que usam políticas de colocação de compactação. Esses ajustes estão disponíveis no diretório /usr/share/google-hpc-compute/mpitune-configs/intelmpi-2018.

Para aplicar essas configurações de ajuste em uma biblioteca MPI instalada, execute o script de shell mpivars para configurar o ambiente adequado. Em seguida, instale as otimizações diretamente com o seguinte comando. Use a opção --sudo se precisar de acesso raiz ao diretório: google_install_mpitune

Use mpitune para especificar manualmente os algoritmos e parâmetros de configuração referentes à comunicação coletiva da MPI e gerar arquivos de configuração.

Por exemplo, para ajustar 22 instâncias de VM e 30 vCPUs por instância, forneça o script de shell mpivars para configurar o ambiente adequado e execute o comando a seguir. É preciso ter acesso write ao diretório ou executar o comando como o usuário raiz.

mpitune -hf hostfile -fl 'shm:tcp' -pr 30:30 -hr 22:22

Esse comando gera um arquivo de configuração no diretório Intel MPI, que pode ser usado posteriormente para executar aplicativos. Para usar a configuração de ajuste em um aplicativo, adicione a opção -tune à linha de comando mpirun. Por exemplo:

mpirun -tune -hostfile HOSTFILE -genv I_MPI_FABRICS 'shm:tcp' -np 660 -ppn 30 ./APPLICATION_NAME

Substitua:

  • HOSTFILE: o nome de um arquivo no SO convidado que lista os nomes de rede das instâncias de VM.
  • APPLICATION_NAME: o nome do arquivo do aplicativo a ser executado.

Criar uma imagem personalizada usando a imagem de VM de HPC

Para implementar as práticas recomendadas em grande escala, crie uma imagem de SO personalizada para usar com suas instâncias de VM de HPC. Conclua as tarefas a seguir para criar uma imagem personalizada que será usada ao criar instâncias de VM de HPC:

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

  2. Personalize a VM com ajustes de MPI.

  3. Crie uma imagem personalizada usando o disco de inicialização da imagem de VM de HPC como o disco de origem. Para isso, use o consoleTrusted Cloud ou a Google Cloud CLI.

Console

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

    Acessar "Imagens"

  2. Clique em Criar imagem.

  3. Especifique um Nome para a imagem.

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

  5. Escolha outras propriedades restantes para a imagem.

  6. Clique em Criar.

gcloud

Crie a imagem personalizada usando o comando images create.

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

Substitua:

  • IMAGE_NAME: nome da imagem personalizada.
  • INSTANCE_NAME: nome da VM de HPC.
  • INSTANCE_ZONE: zona em que a VM de HPC está localizada.
  • IMAGE_FAMILY: opcional. A família de imagens à qual essa imagem pertence.
  • LOCATION: opcional. Região em que a imagem personalizada será armazenada. O local padrão é a multirregião mais próxima da localização do disco de origem.

Preços

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

A seguir