Este tópico descreve como criar um cluster E-HPC com eRDMA habilitado (anteriormente E-HPC NEXT). O conteúdo também utiliza o aplicativo OSU-Benchmark para demonstrar como usar o eRDMA na aceleração da comunicação em aplicativos de computação de alto desempenho (HPC) multinó.
Informações básicas
Com o eRDMA, cargas de trabalho paralelas multinó de HPC em um cluster E-HPC (anteriormente E-HPC NEXT), como modelagem climática e meteorológica, simulação industrial e dinâmica molecular, alcançam desempenho de rede comparável ao de clusters on-premises. Isso inclui alta largura de banda e baixa latência, o que melhora significativamente a eficiência das simulações numéricas. Você pode utilizar o RDMA na rede existente sem implantar NICs RDMA adicionais. Essa abordagem oferece integração perfeita e facilidade de uso.
Pré-requisitos
-
Para criar um cluster E-HPC, acesse a página Create Cluster. Para mais informações, consulte Create a Standard Edition cluster.
A tabela a seguir descreve a configuração de exemplo do cluster.
-
Instance Specification: ecs.c7.xlarge com 4 vCPUs e 8 GiB de memória.
-
Image: aliyun_2_1903_x64_20G_alibase_20240628.vhd
NotaO pacote de instalação do osu-benchmark foi compilado com base na imagem Alibaba Cloud Linux 2.1903 LTS 64 bits.
-
erdma-installer
-
mpich-aocc
-
Instance Specification: ecs.c7.xlarge com 4 vCPUs e 8 GiB de memória.
-
Image: aliyun_2_1903_x64_20G_alibase_20240628.vhd
Crie um usuário de cluster. Para mais informações, consulte user management.
|
Parâmetro |
Configuração |
|
|
Cluster Configuration |
Region |
China (Shanghai) |
|
Network and Availability Zone |
Selecione Availability Zone L |
|
|
Series |
Standard Edition |
|
|
Deployment Mode |
Public cloud cluster |
|
|
Cluster Type |
SLURM |
|
|
Management node |
|
|
|
Compute Node and Queue |
Queue Compute Nodes |
Nós iniciais: |
|
Inter-node interconnection |
eRDMA network Nota
Apenas tipos específicos de instância suportam Elastic RDMA Interconnect (ERI). Para mais informações, consulte Elastic RDMA (eRDMA) e Enable eRDMA on enterprise-level instances. |
|
|
Instance type Group |
Instance Specification: ecs.c8ae.xlarge ou outras instâncias AMD da mesma geração. Image: aliyun_2_1903_x64_20G_alibase_20240628.vhd |
|
|
Shared File Storage |
/home cluster mount directory |
Por padrão, o sistema monta um sistema de arquivos nos diretórios |
|
/opt mount directory |
||
|
Software and Service Component |
Software not Installed |
|
|
Installable service components |
Logon Node: |
Verifique o ambiente eRDMA
Verifique a configuração do eRDMA nos nós de computação.
Faça logon no console Elastic High Performance Computing e clique no cluster desejado.
No painel de navegação à esquerda, escolha . Selecione todos os nós de computação do cluster e clique em Send Command.
-
Verifique o status da rede eRDMA e o suporte a RDMA nos nós de computação.
-
Envie o seguinte comando para todos os nós de computação.
hpcacc erdma checkNa caixa de diálogo Send Command do Cloud Assistant, selecione a instância de destino. Defina Execution Plan como Immediate, Command Type como Shell e Timeout como 60 segundos. Clique em Run.
-
Um resultado semelhante ao seguinte indica que a configuração do eRDMA está correta.
{"Success": true, "Message": {"Msg": "HPCACC eRDMA status check succeeded. No fault found."}} -
Se houver retorno de erro, execute o comando a seguir para reparar a configuração.
hpcacc erdma repair Após concluir o reparo, verifique novamente a configuração do eRDMA.
-
Execute testes OSU-Benchmark
O OSU-Benchmark avalia o desempenho de comunicação de clusters de computação de alto desempenho (HPC) e sistemas distribuídos. Este tópico utiliza os dois benchmarks a seguir para testar o desempenho da comunicação em diferentes protocolos de rede (TCP vs. RDMA):
Teste de latência (osu_latency): Mede a latência unidirecional para comunicação ponto a ponto (tempo entre o envio de uma mensagem pelo processo A e o recebimento pelo processo B, excluindo o tempo de retorno). O teste foca em mensagens pequenas, de 1 byte a vários kilobytes (KB). A latência de mensagens pequenas, métrica central para a capacidade de resposta de sistemas HPC, reflete o desempenho da rede de baixo nível (como recursos de aceleração RDMA) e a otimização da biblioteca MPI. Por exemplo, em simulações em tempo real ou sincronização de parâmetros de machine learning, a baixa latência reduz significativamente a sobrecarga de comunicação.
Teste de largura de banda (osu_bw): Mede a largura de banda ponto a ponto sustentável (quantidade de dados transferidos por unidade de tempo). O teste concentra-se em mensagens grandes, de vários kilobytes (KB) a vários megabytes (MB). O desempenho da largura de banda afeta diretamente a eficiência de transferências de grandes volumes de dados, como troca de matrizes em computação científica ou cenários de I/O de arquivos. Caso a largura de banda medida esteja muito abaixo do valor teórico, otimize as configurações do MPI (como comunicação multithread) ou verifique as definições de rede (como MTU e controle de fluxo).
Procedimento
Conecte-se ao cluster E-HPC com o usuário criado. Para mais informações, consulte Connect to a cluster.
-
Execute o comando a seguir para verificar se os módulos de ambiente dependentes estão instalados corretamente.
module avail -
Execute os comandos abaixo para baixar e descompactar o pacote de instalação pré-compilado do OSU-Benchmark.
cd ~ && wget https://ehpc-perf.oss-cn-hangzhou.aliyuncs.com/AMD-Genoa/osu-bin.tar.gz tar -zxvf osu-bin.tar.gz -
Execute os comandos a seguir para acessar o diretório de teste e editar o script de job do Slurm.
cd ~/pt2pt vim slurm.jobO conteúdo do script de teste é o seguinte:
#!/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 env params 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 erdma 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"Nota-np 2: Especifica o número total de processos. Neste caso, está definido como 2, o que significa que o job MPI inicia dois processos.-ppn 1: Define o número de processos por nó. Aqui, o valor é 1, indicando que cada nó executa um processo.-
-genv: Configura variáveis de ambiente aplicáveis a todos os processos.FI_PROVIDER="tcp;ofi_rxm": Utiliza o protocolo TCP e aumenta a confiabilidade da comunicação por meio do framework RXM.FI_PROVIDER="verbs;ofi_rxm": Prioriza o protocolo Verbs de alto desempenho, baseado em RDMA, e otimiza a transmissão de mensagens através do framework RXM. Neste tópico, Alibaba Cloud eRDMA fornece uma rede RDMA elástica de alto desempenho.
-
Execute o comando a seguir para enviar o job de teste.
sbatch slurm.jobA interface de linha de comando retorna o ID do job.
-
Execute o comando abaixo para visualizar o status do job. Durante o teste, também é possível acompanhar informações de monitoramento do cluster E-HPC, como métricas de armazenamento, jobs e nós, diretamente no console. Para mais informações, consulte View monitoring information.
squeue[zh***luster@login0 pt2pt]$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 11 comp slurm.jo zhtestcl R 0:01 2 compute[000-001]No diretório atual, visualize o arquivo de log correspondente ao ID do job. A saída será semelhante ao conteúdo abaixo:
-
Resultados do teste de latência de rede: Os resultados mostram a relação entre o tamanho da mensagem (Size em bytes, de 1 B a 4 MB) e a latência média da rede (Avg Latency).
Protocolo Verbs (eRDMA)
[zxxx@login0 pt2pt]$ cat 11.out ++++++ use erdma for osu_lat: START # OSU MPI Latency Test v7.5 # Datatype: MPI_CHAR. # Size Avg Latency(us) 1 11.01 2 11.04 4 11.48 8 11.33 16 11.02 32 11.10 64 11.15 128 11.29 256 11.36 512 11.39 1024 11.81 2048 12.99 4096 13.95 8192 15.92 16384 34.57 32768 37.15 65536 41.15 131072 47.10 262144 61.17 524288 143.06 1048576 332.54 2097152 659.65 4194304 1315.29 ------ use erdma for osu_lat: ENDProtocolo TCP
++++++ use tcp for osu_lat: START # OSU MPI Latency Test v7.5 # Datatype: MPI_CHAR. # Size Avg Latency(us) 1 16.07 2 16.02 4 16.03 8 16.03 16 16.01 32 16.27 64 16.37 128 16.87 256 17.36 512 17.89 1024 18.56 2048 33.78 4096 33.39 8192 30.74 16384 45.17 32768 94.50 65536 107.07 131072 124.95 262144 160.55 524288 238.40 1048576 374.89 2097152 639.81 4194304 1188.98 ------ use erdma for osu_lat: ENDOs dados do teste indicam que, para mensagens pequenas (1 B a 8 KB), a latência do eRDMA é significativamente menor que a do TCP.
-
Resultados do teste de largura de banda de rede: Os resultados apresentam a relação entre o tamanho da mensagem (Size em bytes, de 1 B a 4 MB) e a largura de banda (Bandwidth).
Protocolo Verbs (eRDMA)
++++++ use erdma for osu_bw: START # OSU MPI Bandwidth Test v7.5 # Datatype: MPI_CHAR. # Size Bandwidth (MB/s) 1 1.09 2 2.21 4 4.43 8 8.91 16 17.98 32 35.88 64 69.93 128 137.73 256 258.35 512 541.90 1024 1023.92 2048 1768.96 4096 2918.97 8192 3984.86 16384 5203.51 32768 6264.41 65536 1661.85 131072 1696.79 262144 1535.17 524288 1587.83 1048576 1637.65 2097152 1636.63 4194304 1637.17 ------ use erdma for osu_bw: ENDProtocolo TCP
++++++ use tcp for osu_bw: START # OSU MPI Bandwidth Test v7.5 # Datatype: MPI_CHAR. # Size Bandwidth (MB/s) 1 0.38 2 0.75 4 1.51 8 3.01 16 5.95 32 12.10 64 23.43 128 46.30 256 88.25 512 167.70 1024 343.96 2048 614.60 4096 1183.85 8192 1567.03 16384 1835.89 32768 1731.67 65536 2904.03 131072 3160.96 262144 1876.96 524288 1730.89 1048576 1733.18 2097152 1736.09 4194304 1735.78 ------ use tcp for osu_bw: ENDOs dados do teste indicam que, para tamanhos de mensagem entre 16 KB e 64 KB, o eRDMA aproveita totalmente a largura de banda da rede, enquanto a pilha de protocolos TCP introduz sobrecarga adicional.
-