本文以IMB軟體和MPI通訊庫為例介紹如何測試E-HPC叢集的通訊效能。
背景資訊
IMB(Intel MPI Benchmarks)用於評估HPC叢集在不同訊息粒度下節點間點對點、全域通訊的效率。
MPI(Message Passing Interface)是支援多程式設計語言編程的並行計算通訊庫,具有高效能、大規模性、可移植性、可擴充性等特點。
準備工作
建立一個E-HPC叢集。具體操作,請參見使用嚮導建立叢集。
配置叢集時,軟硬體參數配置如下:
參數
說明
硬體參數
部署方式為精簡,包含1個管控節點和2個計算節點,其中計算節點請選擇vCPU核心數≥8的規格,本文使用2個ecs.c7.2xlarge作為樣本。
軟體參數
鏡像選擇CentOS 7.6公用鏡像,調度器選擇pbs。
建立一個叢集使用者。具體操作,請參見建立使用者。
叢集使用者用於登入叢集,進行編譯軟體、提交作業等操作。本文建立的使用者樣本如下:
使用者名稱:mpitest
使用者組:sudo許可權組
安裝軟體。具體操作,請參見安裝軟體。
需安裝的軟體如下:
intel-mpi,版本為2018。
intel-mpi-benchmarks,版本為2019。
步驟一:串連叢集
選擇以下一種方式串連叢集。本文使用的使用者名稱為mpitest,串連叢集後會預設登入到/home/mpitest。
通過用戶端
該方式僅支援使用PBS調度器的叢集。操作前,請確保您已下載安裝E-HPC用戶端,且已配置用戶端所需環境。具體操作,請參見配置用戶端所需環境。
開啟並登入E-HPC用戶端。
在用戶端左側導覽列,單擊會話管理。
在會話管理頁面的右上方,單擊terminal,開啟Terminal視窗。
通過控制台
登入彈性高效能運算控制台。
在頂部功能表列左上方處,選擇地區。
在左側導覽列,單擊叢集。
在叢集頁面,找到目的地組群,單擊遠端連線。
在遠端連線頁面,輸入集群使用者名稱、登入密碼和連接埠,單擊ssh串連。
步驟二:提交作業
執行以下命令建立作業指令檔,指令檔命名為imb.pbs。
vim imb.pbs指令碼內容樣本如下:
#!/bin/sh #PBS -j oe #PBS -l select=2:ncpus=8:mpiprocs=1 export MODULEPATH=/opt/ehpcmodulefiles/ module load intel-mpi/2018 module load intel-mpi-benchmarks/2019 echo "run at the beginning" /opt/intel/impi/2018.3.222/bin64/mpirun -genv I_MPI_DEBUG 5 -np 2 -ppn 1 -host compute000,compute001 /opt/intel-mpi-benchmarks/2019/IMB-MPI1 pingpong > IMB-pingpong #請根據實際調整參數指令碼樣本使用2個計算節點,每個節點為8 vCPU,使用一個MPI任務進行高效能運算。實際測試中請根據節點配置修改
#PBS -l select=2:ncpus=8:mpiprocs=1。您可以根據實際需求修改指令碼中
/opt/intel/impi/2018.3.222/bin64/mpirun命令的參數。參數說明如下:-ppn:指定每個節點的進程數
-host:指定任務節點列表
-npmin:指定最少啟動並執行進程數
-msglog:指定訊息片粒度範圍
說明通過
/opt/intel-mpi-benchmarks/2019/IMB-MPI1 -h可以查看IMB支援的通訊模式及詳細參數說明。命令樣本如下:
樣本一:測試N個節點間allreduce通訊模式效率,每個節點開啟2個進程,擷取不同訊息粒度下的通訊時間。
/opt/intel/impi/2018.3.222/bin64/mpirun -genv I_MPI_DEBUG 5 -np <N*2> -ppn 2 -host <node0>,...,<nodeN> /opt/intel-mpi-benchmarks/2019/IMB-MPI1 -npmin 2 -msglog 19:21 allreduce樣本二:測試N個節點間alltoall通訊模式效率,每個節點開啟1個進程,擷取不同訊息粒度下的通訊時間。
/opt/intel/impi/2018.3.222/bin64/mpirun -genv I_MPI_DEBUG 5 -np <N> -ppn 1 -host <node0>,...,<nodeN> /opt/intel-mpi-benchmarks/2019/IMB-MPI1 -npmin 1 -msglog 15:17 alltoall
執行以下命令提交作業。
qsub imb.pbs預期返回如下,表示產生的作業ID為0.manager。
0.manager
步驟三:查看作業結果
查看作業運行情況。
qstat -x 0.manager預期返回如下,當返回資訊中
S為R時,表示作業正在運行中;當返回資訊中S為F時,表示作業已經運行結束。Job id Name User Time Use S Queue ---------------- ---------------- ---------------- -------- - ----- 0.manager imb.pbs mpitest 00:00:04 F workq查看作業結果。
cat /home/mpitest/IMB-pingpong本次測試結果如下:
