全部产品
Search
文档中心

云服务器 ECS:基于RDMA增强型实例部署HPC应用

更新时间:Dec 12, 2023

使用弹性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
    说明 可执行文件路径、计算节点名称必须和上方步骤保持一致。