安装和使用IB驱动自带的Open MPI
操作场景
本节操作指导用户在BMS上安装和使用IB驱动自带的Open MPI(以版本4.0.2a1为例)。
对于集群中的每台BMS,都需要执行该操作。
前提条件
已配置BMS集群间互相免密登录。
操作步骤
- 查询是否安装了IB驱动
- 安装IB驱动。
- 下载安装包“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驱动的下载页面
- 执行以下命令,安装软件包。
# 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
- 下载安装包“MLNX_OFED_LINUX-4.6-1.0.1.1-rhel7.6alternate-aarch64.tgz”。
- 安装配置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
- 配置ucx。
- 创建非root用户rhel
- 查询pkey,将查询到的值去掉第三位替换4.d中的{pkey}。
# cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/* | grep -v 0000 | head -n1
例如 查询到是0x8f05,去掉第三位后0xf05。
图3 查询pkey
- 获取ucx PKEY。
- 替换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
- 将ucx pkey设置为环境变量。
# sed -i 's/^UCX/export UCX/g' ucx.env
# cat ucx.env >> ~/.bashrc
- 配置mpi环境变量。
- 使用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
- 执行以下命令,查看MPI环境变量是否正常。
如果回显如图5所示,表示环境变量配置成功。
- 执行以下命令,在单台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
- 使用vim编辑“~/.bashrc”文件,添加如下配置内容: