全部產品
Search
文件中心

Elastic Compute Service:基於RDMA增強型執行個體部署HPC應用

更新時間:Feb 28, 2024

使用彈性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叢集以及使用者。

  1. 登入彈性高效能運算控制台
  2. 建立HPC叢集。
    1. 叢集頁面右上方,單擊建立叢集
    2. 按嚮導順序逐步完成硬體、軟體、基本配置。
      本文樣本配置如下表所示,完整配置項的說明,請參見使用嚮導建立叢集
      配置類型配置項樣本配置
      硬體設定可用性區域必須選擇支援c7re規格類型系列的可用性區域,目前邀測地區為華北2(北京)可用性區域K。
      部署方式本文以精簡為例,登入節點、管控節點混合部署在一台執行個體上。
      計算節點必須為計算節點選擇c7re規格(ecs.c7re.4xlarge),節點數量為2。
      登入節點可以根據需要選擇執行個體規格。
      軟體配置鏡像類型、鏡像本文以公用鏡像CentOS_7.6_64為例。
      調度器本文以pbs為例。
      域帳號服務本文以nis為例。
      名稱本文以c7recluster為例。
      基礎配置登入節點方式選擇密碼方式,並輸入和確認密碼。
      說明 該配置項對應root使用者的密碼。
    3. 選中《E-HPC服務條款》,然後在頁面右上方單擊確認
  3. 查看計算節點的名稱。
    1. 叢集頁面中找到新建立的HPC叢集(下文統一稱為c7recluster叢集),單擊右上方的節點
    2. 節點與隊列頁面,查看主機名稱列中的名稱。
      本文中2個計算節點的名稱分別為compute000和compute001。compute-node-name
  4. 建立使用者。
    1. 在左側導覽列,選擇資源管理 > 使用者
    2. 單擊新增使用者
    3. 新增使用者對話方塊,完成使用者配置。
      配置項樣本配置
      使用者名稱本文以c7reclusterUser為例。新增使用者後,在所有節點中均會建立一個普通使用者,對應的路徑為/home/c7reclusterUser
      使用者組需要執行sudo命令安裝軟體,必須選擇sudo許可權組
      密碼輸入和確認該普通使用者的登入密碼。
    4. 單擊確定

步驟二:準備工具

您需要提前下載以下工具的安裝檔案:
  • multi-nic-util:用於在CentOS 7.6鏡像中配置識別彈性網卡。
  • ERI驅動:用於啟用ERI。
  • Intel® oneAPI安裝包:用於部署IMB。
  1. 登入彈性高效能運算控制台
  2. 下載multi-nic-util以及ERI驅動。
    1. 叢集頁面找到c7recluster叢集,在右上方單擊遠端連線
    2. 遠端連線面板,輸入普通使用者的使用者名稱c7reclusterUser及其密碼,然後單擊ssh串連
    3. 分別運行以下命令下載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
      說明 在登入節點下載檔案後,會自動同步到其他節點。
  3. 下載Intel® oneAPI。
    下載地址和相關說明,請參見Intel® oneAPI下載頁面。本文以Offline的方式安裝Intel® oneAPI 2021版本,在下載頁面的選項如下圖所示,下載的安裝包名稱樣本為l_HPCKit_p_2021.4.0.3347_offline.sh
    說明 您可以在本地下載後,通過OSS等方式傳輸到登入節點。
    download-oneapi

步驟三:為計算節點啟用ERI

如需使用ERI,必須為計算節點綁定彈性RDMA網卡,並安裝相應驅動以啟用ERI。

  1. 登入ECS管理主控台
  2. 建立彈性RDMA網卡。
    重複以下步驟,建立2張彈性RDMA網卡。
    1. 在左側導覽列,單擊網路與安全 > 彈性網卡
    2. 在頂部功能表列左上方處,選擇地區華北2(北京)
    3. 彈性網卡頁面,單擊建立彈性網卡
    4. 建立彈性網卡對話方塊,完成彈性網卡配置。
      本文樣本配置如下表所示,完整配置項的說明,請參見建立輔助彈性網卡
      配置項樣本配置
      專用網路選擇和c7recluster叢集相同的專用網路。
      交換器選擇和c7recluster叢集相同的交換器。
      彈性RDMA介面開啟彈性RDMA介面開關。
      安全性群組選擇和c7recluster叢集相同的安全性群組。
    5. 單擊確定
  3. 將彈性RDMA網卡綁定至c7recluster叢集的計算節點。
    重複以下步驟,分別為計算節點compute000和compute001綁定彈性RDMA網卡。
    1. 找到新建立的彈性RDMA網卡,在操作列中,單擊綁定執行個體
    2. 選擇計算節點對應的執行個體,然後單擊確定
  4. 為計算節點配置彈性網卡並安裝ERI驅動。
    CentOS 7.6不支援自動識別輔助彈性網卡,因此需要手動設定。
    1. 在左側導覽列,單擊執行個體與鏡像 > 執行個體
    2. 找到並遠端連線計算節點對應的執行個體。
      遠端連線執行個體的方法介紹,請參見串連方式概述
      說明 登入執行個體時輸入普通使用者的使用者名稱c7reclusterUser及其密碼。
      如下圖所示,multi-nic-util和ERI驅動的安裝檔案已同步到計算節點。eri-tools
    3. 分別運行以下命令配置彈性網卡。
      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使用者的密碼,按提示輸入即可。
    4. 返回普通使用者的目錄。
      本文中以普通使用者c7reclusterUser登入,樣本命令如下:
      cd /home/c7reclusterUser
    5. 分別運行以下命令安裝ERI驅動。
      tar -xf aliyun-erdma-installer-1.0.0.tar.gz
      cd aliyun-erdma-installer
      sudo sh ./erdma_install.sh -y
      說明 包含sudo的命令可能要求輸入root使用者的密碼,按提示輸入即可。

步驟四:在叢集登入節點上部署IMB

  1. 切換至登入節點的遠端連線視窗(普通使用者登入)。
  2. 安裝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安裝指南
  3. 設定環境變數。
    source /home/c7reclusterUser/oneAPIDIR/setvars.sh
  4. 分別運行以下命令編譯IMB。
    cd /home/c7reclusterUser/oneAPIDIR/mpi/latest/benchmarks/imb/src_c
    make
    編譯成功後,會產生名為IMB-MPI1的可執行檔。

步驟五:在計算節點上執行IMB測試

  1. 切換至計算節點的遠端連線視窗(普通使用者登入)。
  2. 修改/home/c7reclusterUser/.bashrc檔案。
    在檔案尾部添加以下內容:
    export FI_VERBS_RX_IOV_LIMIT=1
  3. 修改/etc/security/limits.conf檔案。
    在檔案尾部添加以下內容:
    * hard memlock unlimited
    * soft memlock unlimited
    說明 該步驟需要在所有計算節點上執行。
  4. 關閉當前的遠端連線視窗,重新登入任一個計算節點(普通使用者登入)。
  5. 執行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
    說明 可執行檔路徑、計算節點名稱必須和上方步驟保持一致。