Compartilhar via


Práticas recomendadas para usar VMs HB e HC

Visão geral

As VMs ( máquinas virtuais) da série H são as ofertas de HPC mais recentes no Azure. As VMs da série HB oferecem processadores EPYC AMD de 60 núcleos, otimizados para executar aplicativos com requisitos de alta largura de banda de memória, como análise explícita de elemento finito, dinâmica de fluidos e modelagem meteorológica. As VMs da série HC têm processadores Intel Xeon Skylake de 44 núcleos e são otimizadas para aplicativos que exigem cálculos intensivos de CPU, como dinâmica molecular e análise implícita de elemento finito. As VMs HB e HC apresentam 100 Gb/s EDR InfiniBand e dão suporte aos tipos e versões mais recentes de MPI. O Guia de Dimensionamento de Aplicativos HPC tem mais informações sobre como dimensionar aplicativos HPC em VMs HB e HC.

O Azure CycleCloud dá suporte às novas VMs da série H prontas, mas para obter a melhor experiência e desempenho, siga as diretrizes e as práticas recomendadas nesta página.

Imagem do CentOS 7.6 HPC Marketplace

A imagem do CentOS 7.6 HPC Marketplace contém todos os drivers para habilitar a interface InfiniBand, bem como versões pré-compiladas de todas as variantes comuns de MPI instaladas em /opt. Para obter detalhes sobre o que exatamente a imagem tem a oferecer, consulte esta postagem no blog.

Para usar a imagem HPC centOS 7.6 ao criar seu cluster, marque a caixa Imagem Personalizada no parâmetro Configurações Avançadas e insira o valor OpenLogic:CentOS-HPC:7.6:latest.

Imagem HPC do CentOS

Para dar suporte à série de VM H16r mais antiga e manter os nós de cabeçalho do cluster bloqueados para a mesma versão do CentOS, a imagem padrão "Cycle CentOS 7" na lista suspensa do sistema operacional base implanta o CentOS 7.4. Embora isso seja bom para a maioria das séries de VMs, as VMs HB/HC exigem CentOS 7.6 ou mais recentes e um driver Mellanox diferente.

Desabilitar o SElinux no CycleCloud < 7.7.4

Por padrão, o SElinux considera apenas /root e /home como caminhos válidos para diretórios domésticos. Todos os usuários com diretórios domésticos fora desses caminhos fazem com que o SElinux bloqueie o SSH de usar quaisquer keypairs SSH no diretório base do usuário. Nos clusters do CycleCloud, os diretórios domésticos do usuário são criados em /shared/home. Embora as versões do CycleCloud mais recentes que a 7.7.4 definam automaticamente o caminho /shared/home como um contexto de homedir do SElinux válido, as versões mais antigas não dão suporte a isso. Para garantir que o SSH funcione corretamente para os usuários no cluster, você precisa desabilitar o SElinux no modelo de cluster:

[[node defaults]]
    [[[configuration]]]
    cyclecloud.selinux.policy = permissive

Executando trabalhos de MPI com Slurm

Trabalhos de MPI em execução em VMs HB/HC precisam ser executados no mesmo VM (VMSS). Para garantir o posicionamento adequado de dimensionamento automático de VMs para trabalhos de MPI em execução com o Slurm, defina o seguinte atributo em seu modelo de cluster:

[[nodearray execute]]
Azure.SingleScaleset = true
Azure.MaxScalesetSize = 300
Azure.Overprovision = true

Obtendo pkeys para uso com OpenMPI e MPICH

Algumas variantes de MPI exigem que você especifique o PKEY InfiniBand ao executar o trabalho. A seguinte função Bash pode ser usada para determinar o PKEY:

get_ib_pkey()
{
    key0=$(cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/0)
    key1=$(cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/1)

    if [ $(($key0 - $key1)) -gt 0 ]; then
        export IB_PKEY=$key0
    else
        export IB_PKEY=$key1
    fi

    export UCX_IB_PKEY=$(printf '0x%04x' "$(( $IB_PKEY & 0x0FFF ))")
}