Introdução
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 Google Cloud e mais tempo para manutenção. Para criar instâncias de VM rapidamente para as cargas de trabalho de HPC, use a imagem de VM de HPC. Como alternativa, é possível criar VMs usando a série de máquinas H3.
A imagem de VM de HPC é uma imagem de VM baseada no CentOS 7.9 ou 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 Google Cloud.
É possível criar uma VM pronta para HPC usando as seguintes opções:
- CLI do Google Cloud
- Console do Google Cloud. No console, a imagem está disponível pelo Cloud Marketplace.
- Gerenciador de carga de trabalho Slurm da SchedMD, que usa a imagem da VM de HPC por padrão.
- CloudyCluster da Omnibond, que usa a imagem da VM de HPC por padrão.
Benefícios
A imagem de VM de HPC oferece os seguintes benefícios:
- VMs prontas para uso de HPC. Não é necessário ajustar manualmente o desempenho, gerenciar reinicializações de VMs ou manter-se informado sobre as atualizações mais recentes das cargas de trabalho de HPC de acoplamento rígido do Google Cloud.
- Otimizações de rede para cargas de trabalho de acoplamento rígido. Estão incluídas otimizações que reduzem a latência para pequenas mensagens, o que beneficia os aplicativos que dependem muito de comunicações ponto a ponto e de comunicação coletiva.
- 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.
- Desempenho consistente e reproduzível. A padronização de imagens de VM oferece desempenho consistente e reproduzível no nível do aplicativo.
- 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
Ajustes coletivos da Intel MPI
A imagem da VM de HPC inclui ajustes coletivos da Intel MPI executados nas
instâncias
c2-standard-60
and c2d-standard-112
que usam políticas de colocação de compactação.
RPMs pré-instaladas
A imagem da VM de HPC vem com os seguintes pacotes RPM pré-instalados:
gcc-gfortran
gcc-toolset-12
Lmod
dkms
htop
hwloc
hwloc-devel
kernel-devel
ltrace
libXt
nfs-utils
numactl
numactl-devel
papi
pciutils
pdsh
perf
redhat-lsb-core
redhat-lsb-cxx
rsh
screen
strace
wget
zsh
- grupo de pacotes "Ferramentas para desenvolvedores"
Guias de início rápido
Antes de começar
- Para usar a CLI do Google Cloud neste guia de início rápido, primeiro instale e inicialize a CLI do Google Cloud:
- No Console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
Crie uma instância de VM de HPC
criar a VM
É altamente recomendável escolher um tipo de máquina otimizado 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élula NUMA ao sistema operacional convidado, sendo ambos essenciais para o desempenho de aplicativos HPC fortemente acoplados.
Console
No Console do Google Cloud, acesse a página de VM de HPC no Cloud Marketplace. Acessar a página de VM de HPC no Cloud Marketplace
Clique em Iniciar.
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.Escolha uma zona e um tipo de máquina. Neste guia de início rápido, é possível 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.
Mantenha as configurações padrão de Tipo de disco de inicialização, Tamanho do disco de inicialização e Interface de rede.
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
.
É altamente recomendável criar VMs de HPC usando políticas de colocação
compactas
para alcançar baixa latência de rede. Se você precisar de mais VMs do que cabe em uma única política de posicionamento compacta, divida as VMs em várias políticas de posicionamento. Recomendamos usar o número mínimo de políticas de canal
que se encaixam nas 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:
VM_NAME
: nome da VM a ser criada;ZONE
: zona em que a VM será criada;IMAGE_FAMILY
: a família de imagens da imagem a ser usada para criar instâncias de VM. Usehpc-centos-7
para uma imagem baseada no CentOS ouhpc-rocky-linux-8
para uma imagem baseada no Rocky Linux 8.MACHINE_TYPE
: tipo de máquina para a nova VM.
Após um tempo, a criação da instância de VM é concluída. Para verificar a VM e ver o status dela, execute o seguinte comando:
gcloud compute instances describe VM_NAME
Acessar a VM
Console
Depois de criar a instância de VM de HPC, ela inicializa automaticamente. Para acessá-la, faça o seguinte:
No Console do Google Cloud, acesse a página Instâncias de VM.
Clique no nome da instância de VM.
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
Depois de criar a instância de VM de HPC, ela inicializa automaticamente. Para acessá-la
usando SSH, use o comando compute ssh
:
gcloud compute ssh VM_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 Google Cloud pelos recursos usados neste guia de início rápido, exclua a instância de VM de HPC que você criou.
Console
No Console do Google Cloud, acesse a página implantações.
Marque a caixa de seleção ao lado da implantação da VM de HPC.
Clique em Excluir.
gcloud
Use o comando instances delete
:
gcloud compute instances delete VM_NAME
Criar VMs de HPC com políticas de colocação de compactação
É possível reduzir a latência entre as VMs criando uma política de colocação de compactação. Uma política de colocação de compactação 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:
Siga uma das seguintes ações:
Configurar sua VM de HPC de acordo com as práticas recomendadas
Para ter um desempenho melhor e mais previsível para sua 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.
Usar o gVNIC como a interface de rede virtual
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, o gVNIC é um pré-requisito para a rede avançada, que fornece maior largura de banda e uma maior capacidade.
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 de HPC
e inclua a sinalização --network-interface=nic-type=GVNIC
. A imagem de VM de HPC
inclui o driver do gVNIC como 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:
Execute o seguinte comando na VM de HPC:
sudo google_mpi_tuning --nomitigation
Reinicialize a VM.
Melhorar o desempenho da rede
Para melhorar o desempenho da rede da VM, defina uma ou mais das seguintes configurações:
Configure uma largura de banda maior. Para configurar o desempenho de rede por VM de Tier_1, use o comando
gcloud compute instances create
para criar a VM e especificar a sinalização--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
enet.core.busy_read
em/etc/sysctl.conf
ou usetuned-adm
.
Use Intel MPI 2021
O Google recomenda usar a biblioteca Intel MPI 2021 para executar jobs de MPI no Google 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 do Google Cloud.
A imagem da VM de HPC inclui um utilitário, Google-hpc-compute
, para instalar
convenientemente as bibliotecas MPI recomendadas e usar provedores de libfabric
sob medida do Google Cloud sobre o transporte TCP.
Usar o utilitário google-hpc-compute
para compatibilidade com IntelMPI 2021
O script google_install_intelmpi
é a ferramenta relacionada à MPI no utilitário Google-hpc-compute
. Ele ajuda a instalar e configurar o IntelMPI
2021.11.
O utilitário Google-hpc-compute
está incluído na imagem da VM de HPC.
Instalar a 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 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
.
Intel MPI 2018 na imagem HPC CentOS 7
O suporte para Intel MPI 2018 está disponível na imagem HPC CentOS 7 no Google Cloud.
Consulte o guia do usuário do utilitário google_install_mpi
para mais informações.
Para outros casos de uso relacionados ao Intel MPI 2018, como a execução de aplicativos MPI criados com o Intel Parallel Studio XE, use o ambiente de execução completo do Intel Parallel Studio XE (PSXE) da substituindo intel_mpi
por intel_psxe_runtime
nos comandos acima. O ambiente de execução do PSXE inclui várias bibliotecas importantes para executar aplicativos de MPI, como a Intel Math Kernel Library (MKL).
Criar uma imagem personalizada usando a imagem de VM de HPC
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 Console do Google Cloud ou a CLI do Google Cloud.
Console
No console do Google Cloud, acesse a página Imagens.
Clique em Criar imagem.
Especifique um Nome para a imagem.
Em Disco de origem, selecione o nome do disco de inicialização na VM de HPC.
Escolha outras propriedades restantes para a imagem.
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:
IMAGE_NAME
: nome da imagem personalizada.VM_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 C2 e memória. Para saber mais, consulte Preços do Compute Engine.
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.
A seguir
- Saiba mais sobre a computação de alto desempenho no Google Cloud
- Saiba mais sobre a série de máquinas H3.
- Saiba como usar a API de instância em massa.
- Se você tiver comentários ou precisar de suporte, envie um e-mail para hpc-image-feedback@google.com.