Implante um cluster E-HPC com suporte a elastic Remote Direct Memory Access (eRDMA), verifique o ambiente RDMA e execute testes OSU-Benchmark para medir os ganhos de latência e largura de banda em comparação ao tcp.
Contexto
Cargas de trabalho HPC paralelas multinó — como previsão climática, simulação industrial e dinâmica molecular — dependem de alta largura de banda e baixa latência para execução eficiente. O eRDMA oferece desempenho de rede equivalente ao de ambientes on-premises na nuvem, sem necessidade de controladores de interface de rede (NICs) adicionais, permitindo integração perfeita do cluster à sua rede existente.
Pré-requisitos
Antes de começar, certifique-se de ter:
Uma conta Alibaba Cloud com acesso ao E-HPC
Permissões para criar instâncias ECS e clusters E-HPC na região de Shanghai
Etapa 1: Configure o cluster
Crie um cluster E-HPC
Acesse a página Create Cluster e crie um cluster com a configuração a seguir. Para obter instruções completas de configuração, consulte Create a Standard Edition cluster.
|
Seção |
Configuração |
Valor |
|
Cluster Configuration |
Region |
Shanghai |
|
Network and Availability Zone |
Zone |
Zone L |
|
Series |
Standard Edition |
|
|
Deployment mode |
Public Cloud Cluster |
|
|
Cluster type |
SLURM |
|
|
Management node |
Instance type |
ecs.c7.xlarge (4 vCPUs, 8 GiB memory) |
|
Image |
aliyun_2_1903_x64_20G_alibase_20240628.vhd |
|
|
Compute Node and Queue |
Number of queue nodes |
2 (initial) |
|
Inter-node interconnection |
eRDMA Network |
|
|
Instance type |
ecs.c8ae.xlarge ou outras instâncias AMD da mesma geração |
|
|
Image |
aliyun_2_1903_x64_20G_alibase_20240628.vhd |
|
|
Shared File Storage |
Cluster mount directories |
|
|
Software and Service Component |
Software to install |
erdma-installer, mpich-aocc |
|
Installable service components |
Logon node instance type |
ecs.c7.xlarge (4 vCPUs, 8 GiB memory) |
|
Logon node image |
aliyun_2_1903_x64_20G_alibase_20240628.vhd |
Apenas algumas especificações de nó suportam Elastic RDMA Interconnect (ERI). Para mais detalhes, consulte elastic Remote Direct Memory Access (eRDMA) e Enable eRDMA on enterprise-level instances.
O pacote OSU-Benchmark deste tutorial foi compilado com base na imagem Alibaba Cloud Linux 2.1903 LTS 64 bits. Utilize esta imagem tanto para os nós do plano de controle quanto para os nós de computação.
Crie um usuário do cluster
Crie um usuário do cluster para executar jobs. Para obter instruções, consulte User management.
Etapa 2: Verifique o ambiente eRDMA
Antes de executar os testes de benchmark, confirme se o eRDMA está configurado corretamente em todos os nós de computação.
Faça logon no console Elastic High Performance Computing e clique em cluster criado.
-
Acesse Nodes and Queues > Node, selecione todos os nós de computação e clique em Send Command.

-
Envie o seguinte comando para todos os nós de computação para verificar o status da rede eRDMA e o suporte de hardware e software:
hpcacc erdma check
-
Se a verificação retornar um resultado positivo, a configuração do eRDMA está correta. Prossiga para a Etapa 3. Caso ocorra um erro, execute o comando a seguir para reparar a configuração:
hpcacc erdma repairApós a conclusão do reparo, execute
hpcacc erdma checknovamente para confirmar a resolução do problema. Se o problema persistir, entre em contato com o suporte técnico e forneça a saída completa do comandohpcacc erdma check.
Etapa 3: Execute testes OSU-Benchmark
O OSU-Benchmark mede o desempenho de comunicação ponto a ponto em diferentes protocolos de rede. Este tutorial utiliza dois benchmarks:
osu_latency — mede a latência unidirecional para mensagens pequenas (de 1 B a alguns KB). A baixa latência reduz diretamente a sobrecarga de comunicação em simulações em tempo real e na sincronização de parâmetros para jobs de ML distribuído.
osu_bw — mede a largura de banda sustentável para mensagens maiores (de alguns KB a vários MB). O desempenho de largura de banda afeta transferências de grandes volumes de dados, como trocas de matrizes em computação científica.
Ambos os benchmarks são executados com eRDMA (protocolo Verbs) e tcp, permitindo comparação direta entre os dois.
Execute o benchmark
Conecte-se ao cluster como o usuário criado.
-
Confirme se os módulos de ambiente necessários estão instalados:
module avail -
Baixe e extraia o pacote OSU-Benchmark pré-compilado:
cd ~ && wget https://ehpc-perf.oss-cn-hangzhou.aliyuncs.com/AMD-Genoa/osu-bin.tar.gz tar -zxvf osu-bin.tar.gz -
Navegue até o diretório de teste ponto a ponto e abra o script de job do Slurm:
cd ~/pt2pt vim slurm.job -
Substitua o conteúdo de
slurm.jobpelo script a seguir:Parâmetro
Descrição
Valor utilizado
-npNúmero total de processos MPI
2-ppnProcessos por nó
1(um processo por nó de computação)-genvVariável de ambiente aplicada a todos os processos
—
FI_PROVIDER="verbs;ofi_rxm"Protocolo Verbs (baseado em RDMA) com a camada de confiabilidade RXM. Utilize esta opção para desempenho eRDMA.
Testes eRDMA
FI_PROVIDER="tcp;ofi_rxm"tcp com a camada de confiabilidade RXM. Utilize esta opção como linha de base para comparação.
Testes tcp
#!/bin/bash #SBATCH --job-name=osu-bench #SBATCH --ntasks-per-node=1 #SBATCH --nodes=2 #SBATCH --partition=comp #SBATCH --output=%j.out #SBATCH --error=%j.out # Load environment parameters module purge module load aocc/4.0.0 gcc/12.3.0 libfabric/1.16.0 mpich-aocc/4.0.3 # Run MPI latency test: eRDMA echo -e "++++++ use erdma for osu_lat: START" mpirun -np 2 -ppn 1 -genv FI_PROVIDER="verbs;ofi_rxm" ./osu_latency echo -e "------ use erdma for osu_lat: END\n" # Run MPI latency test: TCP echo -e "++++++ use tcp for osu_lat: START" mpirun -np 2 -ppn 1 -genv FI_PROVIDER="tcp;ofi_rxm" ./osu_latency echo -e "------ use tcp for osu_lat: END\n" # Run MPI bandwidth test: eRDMA echo -e "++++++ use erdma for osu_bw: START" mpirun -np 2 -ppn 1 -genv FI_PROVIDER="verbs;ofi_rxm" ./osu_bw echo -e "------ use erdma for osu_bw: END\n" # Run MPI bandwidth test: TCP echo -e "++++++ use tcp for osu_bw: START" mpirun -np 2 -ppn 1 -genv FI_PROVIDER="tcp;ofi_rxm" ./osu_bw echo -e "------ use tcp for osu_bw: END\n"O script executa os quatro testes sequencialmente. Os principais parâmetros do
mpirunsão: para desempenho eRDMA, utilizeFI_PROVIDER="verbs;ofi_rxm". Para mais informações, consulte Alibaba Cloud eRDMA. -
Envie o job:
sbatch slurm.jobA saída exibe o id do job.

-
Verifique o status do job:
squeueTambém é possível monitorar o status de armazenamento, jobs e nós no console E-HPC. Para mais detalhes, consulte View monitoring information.

Analise os resultados
Quando o job for concluído, abra o arquivo de log chamado {job-id}.out no diretório ~/pt2pt.
Resultados de latência (osu_latency)
A saída mostra a latência unidirecional em microssegundos para tamanhos de mensagem de 1 B a 4 MB.
eRDMA (protocolo Verbs)

tcp

Para mensagens pequenas (de 1 B a 8 KB), a latência do eRDMA é significativamente menor que a do tcp.
Resultados de largura de banda (osu_bw)
A saída apresenta a largura de banda em MB/s para tamanhos de mensagem de 1 B a 4 MB.
eRDMA (protocolo Verbs)

tcp

Para tamanhos de mensagem entre 16 KB e 64 KB, o eRDMA utiliza totalmente a largura de banda de rede disponível. O tcp introduz sobrecarga adicional de processamento para os mesmos tamanhos de mensagem.