使用彈性RDMA網卡(ERI)可以獲得超低的延遲,更快地處理請求。本文介紹如何建立以RDMA增強型執行個體作為計算節點的HPC叢集,並部署IMB測試基於eRDMA的通訊效能。
背景資訊
Intel® oneAPI是一個統一的編程模型,致力於為跨CPU、GPU、FPGA、專用加速器等不同計算架構的應用程式提供統一的編程體驗,同時基於該模型提供了Intel® oneAPI Base Toolkit、Intel® oneAPI HPC Toolkit、Intel® AI Analytics Toolkit等一系列產品。
IMB(Intel® MPI Benchmarks)用於評估HPC叢集在不同訊息粒度下節點間點對點、全域通訊的效率。
步驟一:準備HPC叢集
使用彈性高效能運算建立HPC叢集以及使用者。
- 登入彈性高效能運算控制台。
- 建立HPC叢集。
- 在叢集頁面右上方,單擊建立叢集。
- 按嚮導順序逐步完成硬體、軟體、基本配置。本文樣本配置如下表所示,完整配置項的說明,請參見使用嚮導建立叢集。
配置類型 配置項 樣本配置 硬體設定 可用性區域 必須選擇支援c7re規格類型系列的可用性區域,目前邀測地區為華北2(北京)可用性區域K。 部署方式 本文以精簡為例,登入節點、管控節點混合部署在一台執行個體上。 計算節點 必須為計算節點選擇c7re規格(ecs.c7re.4xlarge),節點數量為2。 登入節點 可以根據需要選擇執行個體規格。 軟體配置 鏡像類型、鏡像 本文以公用鏡像和CentOS_7.6_64為例。 調度器 本文以pbs為例。 域帳號服務 本文以nis為例。 名稱 本文以c7recluster為例。 基礎配置 登入節點方式 選擇密碼方式,並輸入和確認密碼。 說明 該配置項對應root使用者的密碼。 - 選中《E-HPC服務條款》,然後在頁面右上方單擊確認。
- 查看計算節點的名稱。
- 在叢集頁面中找到新建立的HPC叢集(下文統一稱為c7recluster叢集),單擊右上方的節點。
- 在節點與隊列頁面,查看主機名稱列中的名稱。本文中2個計算節點的名稱分別為compute000和compute001。
- 建立使用者。
- 在左側導覽列,選擇 。
- 單擊新增使用者。
- 在新增使用者對話方塊,完成使用者配置。
配置項 樣本配置 使用者名稱 本文以c7reclusterUser為例。新增使用者後,在所有節點中均會建立一個普通使用者,對應的路徑為/home/c7reclusterUser。 使用者組 需要執行sudo命令安裝軟體,必須選擇sudo許可權組。 密碼 輸入和確認該普通使用者的登入密碼。 - 單擊確定。
步驟二:準備工具
您需要提前下載以下工具的安裝檔案:
- multi-nic-util:用於在CentOS 7.6鏡像中配置識別彈性網卡。
- ERI驅動:用於啟用ERI。
- Intel® oneAPI安裝包:用於部署IMB。
- 登入彈性高效能運算控制台。
- 下載multi-nic-util以及ERI驅動。
- 在叢集頁面找到c7recluster叢集,在右上方單擊遠端連線。
- 在遠端連線面板,輸入普通使用者的使用者名稱c7reclusterUser及其密碼,然後單擊ssh串連。
- 分別運行以下命令下載multi-nic-util工具和ERI驅動。
wget https://image-offline.oss-cn-hangzhou.aliyuncs.com/multi-nic-util/multi-nic-util-0.6.tgz wget https://elastic-rdma.oss-cn-hangzhou.aliyuncs.com/erdma_installer.tar.gz
說明 在登入節點下載檔案後,會自動同步到其他節點。
- 下載Intel® oneAPI。下載地址和相關說明,請參見Intel® oneAPI下載頁面。本文以Offline的方式安裝Intel® oneAPI 2021版本,在下載頁面的選項如下圖所示,下載的安裝包名稱樣本為l_HPCKit_p_2021.4.0.3347_offline.sh。說明 您可以在本地下載後,通過OSS等方式傳輸到登入節點。
步驟三:為計算節點啟用ERI
如需使用ERI,必須為計算節點綁定彈性RDMA網卡,並安裝相應驅動以啟用ERI。
- 登入ECS管理主控台。
- 建立彈性RDMA網卡。重複以下步驟,建立2張彈性RDMA網卡。
- 在左側導覽列,單擊 。
- 在頂部功能表列左上方處,選擇地區華北2(北京)。
- 在彈性網卡頁面,單擊建立彈性網卡。
- 在建立彈性網卡對話方塊,完成彈性網卡配置。本文樣本配置如下表所示,完整配置項的說明,請參見建立輔助彈性網卡。
配置項 樣本配置 專用網路 選擇和c7recluster叢集相同的專用網路。 交換器 選擇和c7recluster叢集相同的交換器。 彈性RDMA介面 開啟彈性RDMA介面開關。 安全性群組 選擇和c7recluster叢集相同的安全性群組。 - 單擊確定。
- 將彈性RDMA網卡綁定至c7recluster叢集的計算節點。重複以下步驟,分別為計算節點compute000和compute001綁定彈性RDMA網卡。
- 找到新建立的彈性RDMA網卡,在操作列中,單擊綁定執行個體。
- 選擇計算節點對應的執行個體,然後單擊確定。
- 為計算節點配置彈性網卡並安裝ERI驅動。CentOS 7.6不支援自動識別輔助彈性網卡,因此需要手動設定。
- 在左側導覽列,單擊 。
- 找到並遠端連線計算節點對應的執行個體。遠端連線執行個體的方法介紹,請參見串連方式概述。說明 登入執行個體時輸入普通使用者的使用者名稱c7reclusterUser及其密碼。如下圖所示,multi-nic-util和ERI驅動的安裝檔案已同步到計算節點。
- 分別運行以下命令配置彈性網卡。
tar -zxvf multi-nic-util-0.6.tgz cd multi-nic-util-0.6 sudo bash install.sh sudo systemctl restart eni.service
說明 包含sudo
的命令可能要求輸入root使用者的密碼,按提示輸入即可。 - 返回普通使用者的目錄。本文中以普通使用者c7reclusterUser登入,樣本命令如下:
cd /home/c7reclusterUser
- 分別運行以下命令安裝ERI驅動。
tar -xf aliyun-erdma-installer-1.0.0.tar.gz cd aliyun-erdma-installer sudo sh ./erdma_install.sh -y
說明 包含sudo
的命令可能要求輸入root使用者的密碼,按提示輸入即可。
步驟四:在叢集登入節點上部署IMB
- 切換至登入節點的遠端連線視窗(普通使用者登入)。
- 安裝Intel® oneAPI。以將下載的l_HPCKit_p_2021.4.0.3347_offline.sh安裝至/home/c7reclusterUser/oneAPIDIR目錄為例,樣本命令如下:
sh ./l_HPCKit_p_2021.4.0.3347_offline.sh -a --silent --eula accept --components intel.oneapi.lin.mpi.devel --install-dir /home/c7reclusterUser/oneAPIDIR --ignore-errors
說明 更多安裝操作的說明,請參見Intel® oneAPI安裝指南。 - 設定環境變數。
source /home/c7reclusterUser/oneAPIDIR/setvars.sh
- 分別運行以下命令編譯IMB。
cd /home/c7reclusterUser/oneAPIDIR/mpi/latest/benchmarks/imb/src_c make
編譯成功後,會產生名為IMB-MPI1的可執行檔。
步驟五:在計算節點上執行IMB測試
- 切換至計算節點的遠端連線視窗(普通使用者登入)。
- 修改/home/c7reclusterUser/.bashrc檔案。在檔案尾部添加以下內容:
export FI_VERBS_RX_IOV_LIMIT=1
- 修改/etc/security/limits.conf檔案。在檔案尾部添加以下內容:
* hard memlock unlimited * soft memlock unlimited
說明 該步驟需要在所有計算節點上執行。 - 關閉當前的遠端連線視窗,重新登入任一個計算節點(普通使用者登入)。
- 執行IMB測試。基於啟用了ERI的計算節點compute000和compute001執行IMB測試,瞭解在HPC叢集中MPI點到點訊息通訊的延遲和頻寬,樣本命令如下:
source /home/c7reclusterUser/oneAPIDIR/setvars.sh cd /home/c7reclusterUser/oneAPIDIR/mpi/latest/benchmarks/imb/src_c mpirun -n 2 -hosts compute001,compute000 -ppn 1 ./IMB-MPI1 pingpong
說明 可執行檔路徑、計算節點名稱必須和上方步驟保持一致。