Partilhar via


Boas Práticas para a utilização de HB e HC VMs

Descrição Geral

As máquinas virtuais da série H (VMs) são as mais recentes ofertas de HPC no Azure. Os VMs da série HB oferecem processadores AMD EPYC de 60 núcleos, otimizados para aplicações de execução com elevados requisitos de largura de banda de memória, tais como análise explícita de elementos finitos, dinâmica de fluidos e modelação meteorológica. Os VMs da série HC têm processadores Intel Xeon Skylake de 44 núcleos e são otimizados para aplicações que requerem cálculos intensivos de CPU, como dinâmica molecular e análise implícita de elementos finitos. Os HB e HC VMs dispõem de 100 Gb/s EDR InfiniBand e suportam os mais recentes tipos e versões MPI. O Guia de Aplicações de Escala HPC tem mais informações sobre como escalar aplicações HPC em HB e HC VMs.

O Azure CycleCloud suporta os novos VMs da série H fora da caixa, mas para a melhor experiência e desempenho, siga as orientações e as melhores práticas nesta página.

CentOS 7.6 HPC Imagem de Mercado

A imagem centos 7.6 HPC Marketplace contém todos os controladores para permitir a interface InfiniBand, bem como versões pré-compiladas de todas as variantes comuns de MPI instaladas em /opt. Para mais detalhes sobre o que exatamente a imagem tem para oferecer veja este blog post.

Para utilizar a imagem CentOS 7.6 HPC ao criar o seu cluster, verifique a caixa de Imagem Personalizada no parâmetro Definições Avançadas e introduza o valor OpenLogic:CentOS-HPC:7.6:latest.

Imagem CentOS HPC

Para suportar a série VM VM mais antiga e manter os nós da cabeça do cluster bloqueados na mesma versão do CentOS, a imagem padrão "Ciclo CentOS 7" na base de dropdown implanta CentOS 7.4. Embora isto seja bom para a maioria das séries VM, os VMs HB/HC requerem CentOS 7.6 ou mais recente e um condutor Mellanox diferente.

Desativar o SElinux no CycleCloud < 7.7.4

Por padrão, o SElinux apenas considera /raiz e /casa como caminhos válidos para diretórios domésticos. Qualquer utilizador com diretórios domésticos fora destes caminhos faz com que o SElinux bloqueie o SSH de usar quaisquer chaves SSH no diretório do utilizador. Nos clusters CycleCloud, os diretórios de casa do utilizador são criados em /share/home. Enquanto as versões CycleCloud mais recentes do que 7.7.4 definem automaticamente o caminho /partilhado/casa como um contexto caseiro válido SElinux, as versões mais antigas não suportam isto. Para se certificar de que o SSH funciona corretamente para os utilizadores do cluster, é necessário desativar o SElinux no modelo de cluster:

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

Funcionando trabalhos de MPI com Slurm

Os postos de trabalho do MPI em funcionamento em HB/HC VMs precisam de ser executados no mesmo Conjunto de Escala VM (VMSS). Para garantir a colocação automática adequada de VMs para trabalhos de MPI em execução com Slurm, certifique-se de definir o seguinte atributo no seu modelo de cluster:

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

Obter pkeys para uso com OpenMPI e MPICH

Algumas variantes de MPI requerem que especifique o InfiniBand PKEY ao executar o trabalho. Pode utilizar-se a seguinte função Bash 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 ))")
}