本文介紹如何開通適配eRDMA的E-HPC Cluster(原E-HPC NEXT),並以OSU-Benchmark應用為例,提供配置運行時參數以使用eRDMA技術加速多節點HPC應用的通訊。
背景資訊
利用eRDMA技術,E-HPC Cluster(原E-HPC NEXT)中的氣候氣象、工業模擬、分子動力等HPC多節點並行任務可達到媲美線下叢集的高速網路效能,包括高頻寬和低延遲,可顯著提升數值類比、模擬的效率。同時,無需額外部署RDMA網卡,即可在現有業務組網中體驗到RDMA的優勢,實現無縫整合和便捷應用。
準備工作
-
單擊前往建立叢集頁面,建立一個E-HPC叢集。具體操作,請參見建立標準版叢集。
本文使用的叢集配置樣本如下:
-
執行個體規格:採用ecs.c7.xlarge執行個體規格,該規格配置為4 vCPU,8 GiB記憶體。
-
鏡像:aliyun_2_1903_x64_20G_alibase_20240628.vhd
說明osu-benchmark安裝包基於Alibaba Cloud Linux 2.1903 LTS 64位鏡像完成構建。
-
erdma-installer
-
mpich-aocc
-
執行個體規格:採用ecs.c7.xlarge執行個體規格,該規格配置為4 vCPU,8 GiB記憶體。
-
鏡像:aliyun_2_1903_x64_20G_alibase_20240628.vhd
-
建立一個叢集使用者,具體操作,請參見使用者管理。
|
配置項 |
配置 |
|
|
叢集配置 |
地區 |
上海 |
|
網路及可用區 |
選擇可用性區域L |
|
|
系列 |
標準版 |
|
|
部署模式 |
公用雲叢集 |
|
|
叢集類型 |
SLURM |
|
|
管理節點 |
|
|
|
計算節點與隊列 |
队列节点数 |
初始節點 |
|
節點間互聯 |
eRDMA網路 說明
僅部分節點規格支援ERI,更多資訊,請參見彈性RDMA(eRDMA)和在企業級執行個體上啟用eRDMA。 |
|
|
執行個體規格組 |
執行個體規格:採用ecs.c8ae.xlarge或同代的其他AMD執行個體。 鏡像:aliyun_2_1903_x64_20G_alibase_20240628.vhd |
|
|
共享檔案儲存體 |
/home 叢集掛載目錄 |
預設情況下,管理節點的 |
|
/opt 叢集掛載目錄 |
||
|
軟體與服務元件 |
待安裝軟體 |
|
|
可安裝服務元件 |
登入節點: |
檢查eRDMA環境
檢查計算節點eRDMA配置是否正確。
-
登入彈性高效能運算控制台,單擊目的地組群。
-
在頁面,選中叢集中所有計算節點,單擊發送命令。

-
檢查計算節點的 eRDMA 網路狀態 和 RDMA 硬體/軟體支援情況。
-
發送如下命令到所有計算節點。
hpcacc erdma check
-
返回如下結果,表示eRDMA配置正確。

-
如果返回資訊異常,執行以下命令進行修複。
hpcacc erdma repair -
修複完成後,再次確認eRDMA配置正確即可。
-
OSU-Benchmark測試
OSU-Benchmark用於評估Alibaba Cloud HPC叢集和分布式系統的通訊效能。本文利用以下2個基準測試,基於不同網路通訊協定(TCP vs. RDMA)測試通訊效能:
-
網路延遲測試(osu_latency):測量點對點通訊的單向延遲(從進程A發送訊息到進程B的時間,不含返回時間),尤其關注小訊息(如1位元組到數KB)的通訊效率。小訊息的延遲反映了網路硬體的底層效能(如RDMA加速能力)和MPI庫的最佳化水平,是HPC系統響應能力的核心指標。例如,在即時模擬或機器學習參數同步中,低延遲能顯著減少通訊開銷。
-
網路頻寬測試(osu_bw):測量點對點通訊的可持續頻寬(單位時間內傳輸的資料量),關注大訊息(如數KB到數MB)的傳輸效率。頻寬效能直接影響巨量資料傳輸的效率,如科學計算中的矩陣交換或檔案I/O情境。若實測頻寬遠低於理論值,可能需最佳化MPI配置(如多線程通訊)或檢查網路設定(如MTU、流控)。
測試過程如下:
-
使用已經建立的使用者,串連EHPC叢集。詳細資料,請參見串連叢集。
-
執行以下命令,檢查依賴環境組件是否正確安裝。
module avail -
執行以下命令,下載並解壓已先行編譯的osu-benchmark安裝包。
cd ~ && wget https://ehpc-perf.oss-cn-hangzhou.aliyuncs.com/AMD-Genoa/osu-bin.tar.gz tar -zxvf osu-bin.tar.gz -
執行以下命令,進入測試工作目錄並編輯slurm作業指令碼。
cd ~/pt2pt vim slurm.job測試指令碼內容如下:
#!/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"說明-
-np 2:指定總的進程數量,這裡設定為2,意味著整個MPI作業將啟動兩個進程。 -
-ppn 1:指定每個節點上的進程數,這裡設定為1,表示每個節點運行1個進程。 -
-genv:設定環境變數,對所有進程生效。-
FI_PROVIDER="tcp;ofi_rxm":使用TCP 協議,並通過 RXM 架構增強通訊可靠性。 -
FI_PROVIDER="verbs;ofi_rxm":優先使用高效能 Verbs 協議(基於 RDMA),並通過 RXM 架構最佳化訊息傳輸。本文中使用阿里雲eRDMA提供高效能彈性RDMA網路。
-
-
-
執行以下命令,提交測試作業。
sbatch slurm.job命令列輸出job id。

-
執行以下命令,查看作業運行。測試過程中,您也可以在控制台上查看E-HPC的監控資訊(包括儲存監控、作業監控、節點監控等)。詳細資料,請參見查看監控資訊。
squeue
您可以在目前的目錄下,查看job id對應的記錄檔,輸出內容如下所示:
-
網路延遲測試結果:訊息大小(Size,單位為位元組Bytes,範圍為1B到4MB)與網路延遲(Avg Latency)的關係。本文中測試結果樣本如下:
使用Verbs 協議(基於eRDMA)

使用TCP協議

通過測試資料可以發現,對於小訊息(1B~8KB),eRDMA的延遲明顯低於TCP。
-
網路頻寬測試結果:訊息大小(Size,單位為位元組Bytes,範圍為1B到4MB)與頻寬(Bandwidth)的關係。本文中測試結果樣本如下:
使用Verbs 協議(基於eRDMA)

使用TCP協議

通過測試資料可以發現,在訊息大小為16KB ~ 64KB時,eRDMA充分利用了網路頻寬,而TCP的協議棧處理引入額外開銷。
-