一、准备步骤

1、查看centos版本

cat /etc/issue或者cat /etc/redhat-release


 2、查看linux版本

cat /proc/version或uname -a或uname -r 


 3、确定插在服务器节点上的IB网卡的信息以及是否插入成功

lspci |grep Mell 


如果返回如上信息,说明IB网卡插入成功,此外,返回的信息中,ConnectX-3说明了IB网卡的信息。特别说明,ConnectX-3、ConnectX-4、ConnectX-5、ConnectX-6的驱动有所不同,例如,ConnectX-3可能不支持最新版本的驱动,因此需要知道该信息!

二、下载驱动

结合Linux版本、IB网卡版本,选择合适的IB网卡驱动(特别注意版本问题)
下载地址:https://developer.nvidia.com/networking/infiniband-software

三、安装驱动

解压安装:

tar -zxvf MLNX_OFED_LINUX-5.6-1.0.3.3-rhel8.2-x86_64.tgz
cd MLNX_OFED_LINUX-5.6-1.0.3.3-rhel8.2-x86_64/
./mlnxofedinstall 

(安装程序会检查系统库,如果缺少库会直接提示使用yum install ‘缺少的库’安装,根据提示安装即可,-q参数静默安装)--force
安装完毕,加载驱动

/etc/init.d/openibd restart     (systemctl start openibd)

/etc/init.d/opensmd restart 


重启服务器:reboot

四、检查IB网络

1、检查IB网卡状态:ibstat

 2、查询IB设备信息
ibv_devices #显示系统中目前所有设备  查看本主机的infiniband设备

ibnodes  #查看网络中的infiniband设备

五、配置网络

首先,使用命令ifconfig查看是否存在ib0网卡:

 在/etc/sysconfig/network-scripts目录下,可以看到ifcfg-ib0文件,配置方法修改这个文件
(如果没有的话在nmtui中自己添加ib0的网)
也可以使用nmtui设置ib0网络的ip地址,
注意:不要使ib网的IP地址和以太网的IP地址一样

六、用MPI验证infiniband网络

vim hw.c

#include <stdio.h>
#include "mpi.h"
int main(int argc, char **argv)
{
int myrank,nprocs,len;
MPI_Status status; //状态信息
char Processorname[20]; MPI_Init(&argc,&argv); //初始化MPI并行环境
MPI_Comm_size(MPI_COMM_WORLD, &nprocs); //nprocs返回进程个数
MPI_Comm_rank(MPI_COMM_WORLD,&myrank); //myrank返回进程号(从0开始) MPI_Get_processor_name(Processorname, &len); //返回机器名字和名字长度
printf("Hello world! Process %d of %d on %s.\n",myrank,nprocs,Processorname);
MPI_Finalize(); //终止MPI处理
}
mpicc -o hw hw.c
mpiexec -f hosts -iface ib0 -np 5 ./hw

-f表示指定文件,我这个hosts文件表示在三台服务器上运行;-face表示指定哪个网络运行

七、卸载IB驱动

cd MLNX_OFED_LINUX-5.6-1.0.3.3-rhel8.2-x86_64/
./uninstall.sh  

卸载完成后重启主机

八、其它安装方式

yum安装
如果ib网卡不识别,或着识别后配置后无法启用,安装ib驱动

yum install -y infiniband-diags
yum install -y opensm
systemctl start opensm
systemctl enable opensm 

后期编译mvapich时需要ib库

yum install -y libibverbs
yum install -y libibverbs-devel
yum install -y libibmad-devel

再网络配置

最新文章

  1. CSS 魔法系列:纯 CSS 绘制图形(各种形状的钻石)
  2. Xcode常用快捷键
  3. max texture size of ios device
  4. 百度编辑器Ueditor的简单调用
  5. ZOJ Monthly, August 2014
  6. proguardgui.bat来混淆已有的jar包
  7. mybatis的辅助类
  8. jquery 获取 TABLE单元格的值
  9. php session 管理
  10. php_DWZ-JUI中碰到的问题解决方法详解(thinkphp+dwz)
  11. AngularJS之使用控制器封装业务逻辑
  12. eolinker——添加项目成员
  13. zabbix 常用监控模板
  14. Redis设计与实现:读书笔记之二
  15. Apache目录结构解释
  16. Linux中日期的加减运算
  17. Postgresql学习笔记
  18. [转]Httrack工具与使用指南
  19. swift UITextfield 添加点击方法 - 简单实现
  20. chrome打包程序

热门文章

  1. RabbitMQ 3.9( 基础 )
  2. MySQL双主双从配置
  3. zipper题解
  4. deepin安装jdk配置环境
  5. windows获取高精度时间戳 精度100ns
  6. 三面阿里,被Java面试官虐哭!现场还原真实的“被虐”场景
  7. C++:最大子数组差
  8. npm run serve修改为npm run dev
  9. Simple, Fast Malicious Multiparty Private Set Intersection-解读
  10. MySQL - 并发事务出现的问题