./configure --with-verbs
命令。之后执行make
和make install
完成编译安装过程。通过设置环境变量或直接指定参数运行程序,如mpirun -mca ib_
来利用IB驱动的Open MPI功能。安装和使用IB驱动自带的Open MPI
一、检查IB驱动是否已安装
在开始安装Open MPI之前,需要确认系统上是否已经安装了IB驱动,执行以下命令来查询:
sudo su which mpirun
如果没有输出,表示未安装IB驱动,继续下一步进行安装,如果已有输出,表示IB驱动已安装,可以直接配置环境变量。
二、下载并安装IB驱动
以CentOS 7.3为例,推荐安装4.2.1版本的IB驱动,访问Mellanox官网,选择相应版本的InfiniBand网卡驱动下载并按照指导进行安装,具体步骤如下:
安装tk和tcl yum install tk tcl 下载并解压驱动程序包 tar -xvf MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.3-x86_64.tgz cd MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.3-x86_64/ 运行安装脚本 ./mlnxofedinstall
三、配置环境变量
安装完成后,需配置相关环境变量,编辑~/.bashrc
文件,添加以下内容:
export PATH=$PATH:/usr/mpi/gcc/openmpi-4.1.5rc2/bin export LD_LIBRARY_PATH=/usr/mpi/gcc/openmpi-4.1.5rc2/lib
然后导入配置的环境变量:
source ~/.bashrc
验证环境变量配置是否正确:
which mpirun
四、测试MPI环境
使用Open MPI自带的测试工具进行验证,编译一个简单的“Hello World”程序:
// hello_mpi.c #include <mpi.h> #include <stdio.h> int main(int argc, char** argv) { MPI_Init(&argc, &argv); int world_rank; MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size); printf("Hello world from processor %d out of %d processors ", world_rank, world_size); MPI_Finalize(); return 0; }
使用以下命令编译和运行该程序:
mpicc hello_mpi.c -o hello_mpi mpirun -np 4 ./hello_mpi
你应该会看到类似以下的输出:
Hello world from processor 0 out of 4 processors Hello world from processor 1 out of 4 processors Hello world from processor 2 out of 4 processors Hello world from processor 3 out of 4 processors
五、多节点配置(可选)
对于多节点运行,需要进行免密SSH登录配置,生成SSH密钥并将公钥复制到其他节点:
ssh-keygen -t rsa -b 2048 ssh-copy-id user@remote_host
创建一个主机文件hosts
,
192、168.1.1 slots=2 192、168.1.2 slots=2
运行多节点MPI程序:
mpirun --hostfile hosts -np 4 ./hello_mpi
六、归纳与FAQs
通过上述步骤,可以成功安装并配置IB驱动自带的Open MPI,以下是一些常见问题及解答:
Q1: CCI是否支持高速IB(Infiniband)网络?
A1: 是的,CCI支持高速IB网络。
Q2: 如何给IB网卡手动配置IP地址?
A2: 使用以下命令获取pkey值:
cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/* | grep -v 0000
然后在~/.bashrc
中添加:
export MPI_ROOT=/opt/ibm/platform_mpi
小伙伴们,上文介绍了“mpirun -mca ib_安装和使用IB驱动自带的Open MPI”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。