更新时间:2022-08-29 GMT+08:00
分享

安装和使用IB驱动自带的Open MPI

操作场景

本节操作指导用户在BMS上安装和使用IB驱动自带的Open MPI(以版本4.0.2a1为例)。

对于集群中的每台BMS,都需要执行该操作。

前提条件

已配置BMS集群间互相免密登录。

操作步骤

  1. 查询是否安装了IB驱动

    1. 执行以下命令,查询是否已成功安装IB驱动。

      $ ls /usr/mpi/gcc/openmpi-4.0.2a1/bin/mpirun

      $ rpm -qa | grep mlnx-ofa

      图1 检查IB驱动
    2. 查看回显结果。
      • 如果回显如图1所示,表示已安装IB驱动,执行步骤3
      • 如果未安装IB驱动,执行步骤2

  2. 安装IB驱动。

    1. 下载安装包“MLNX_OFED_LINUX-4.6-1.0.1.1-rhel7.6alternate-aarch64.tgz”。

      下载地址:https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/

      图2 IB驱动的下载页面
    2. 执行以下命令,安装软件包。

      # yum install tk tcl -y

      # tar -xvf MLNX_OFED_LINUX-4.6-1.0.1.1-rhel7.6alternate-aarch64.tgz

      # cd MLNX_OFED_LINUX-4.6-1.0.1.1-rhel7.6-x86_64/

      # ./mlnxofedinstall

  3. 安装配置ucx。

    1. 下载ucx安装包

      # cd /opt && wget https://github.com/openucx/ucx/releases/download/v1.6.0/ucx-1.6.0.tar.gz

    1. 解压ucx包

      # tar -xvf ucx-1.6.0.tar.gz

    2. 编译安装ucx

    # cd /opt/ucx-1.6.0

    # yum install autoconf automake libtool numactl-devel -y

    # ./contrib/configure-release --prefix=/opt/ucx160 --enable-optimizations

    # make && make install

  4. 配置ucx。

    1. 创建非root用户rhel

      # useradd rhel; su - rhel

    2. 查询pkey,将查询到的值去掉第三位替换4.d中的{pkey}。

      # cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/* | grep -v 0000 | head -n1

      例如 查询到是0x8f05,去掉第三位后0xf05。

      图3 查询pkey
    3. 获取ucx PKEY。

      # ucx_info -c | grep -i pkey > ucx.env

    4. 替换ucx中的PKEY。

      # sed -i 's/0x[a-f0-9]*/{pkey}/g' ucx.env

      本例中执行sed -i 's/0x[a-f0-9]*/0xf05/g' ucx.env

      图4 替换ucx中的PKEY
    5. 将ucx pkey设置为环境变量。

      # sed -i 's/^UCX/export UCX/g' ucx.env

      # cat ucx.env >> ~/.bashrc

  5. 配置mpi环境变量。

    1. 使用vim编辑“~/.bashrc”文件,添加如下配置内容:

      export PATH=$PATH:/usr/mpi/gcc/openmpi-4.0.2a1/bin

      export LD_LIBRARY_PATH=/usr/mpi/gcc/openmpi-4.0.2a1/lib64

    2. 执行以下命令,查看MPI环境变量是否正常。

      $ which mpirun

      图5 查看IB 驱动自带的Open MPI 环境变量

      如果回显如图5所示,表示环境变量配置成功。

    3. 执行以下命令,在单台BMS上运行IB驱动自带的Open MPI。

      #mpirun -np 2 -mca btl_openib_if_include "mlx5_0:1" -x MXM_IB_USE_GRH=y /usr/mpi/gcc/openmpi-3.1.0rc2/tests/imb/IMB-MPI1 PingPong

      图6 运行IB驱动自带的Open MPI

相关文档