基于soft-RoCE运行OSU Micro Benchmark

news2024/11/17 11:53:47

之前的文章描述了如何运行Benchmark,但是那个是基于TCP的。现在想要跑一个基于RoCEv2的结果。虚拟机上没有支持infiniband的网卡,那就用Soft RoCE了。

Soft-RoCE的安装和调试

  • 系统版本信息
admin@osu-1:~$ uname -a
Linux osu-1 5.11.0-44-generic #48~20.04.2-Ubuntu SMP Tue Dec 14 15:36:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
  • 安装rdma-core和verbs应用
admin@osu-1:~$ sudo apt install rdma-core ibverbs-utils -y
  • 基于已有网口ens8添加ib端口,命名为ib5
admin@osu-1:~$ sudo  rdma link add ib5 type rxe netdev ens8
admin@osu-1:~$  rdma link show
link ib5/1 state ACTIVE physical_state LINK_UP netdev ens8 

安装调试MPI

  • 支持MPI有很多选择:openmpi/mpich/mvapich
  • 经过各种测试和挫折,最后选择mvapich2,谁让它跟OSU Micro Benchmark是一家的呢
  • 提前安装编译过程中需要的软件
admin@osu-1:~$  sudo apt install byacc -y
  • 获取源码
admin@osu-1:~$ wget http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.7-1.tar.gz
  • 解压后进入目录
admin@osu-1:~$ tar zxvf mvapich2-2.3.7-1.tar.gz 
admin@osu-1:~$ cd mvapich2-2.3.7-1/
admin@osu-1:~/mvapich2-2.3.7-1$ 
  • configure的时候,注意要带的参数
admin@osu-1:~/mvapich2-2.3.7-1$ ./configure --with-device=ch3:mrail --with-rdma=gen2
  • 然后编译安装
admin@osu-1:~/mvapich2-2.3.7-1$ make -j$(nproc) 
admin@osu-1:~/mvapich2-2.3.7-1$ sudo make install
  • Benchmark已经同步编译好了
admin@osu-1:~/mvapich2-2.3.7-1$ cd osu_benchmarks/mpi/pt2pt/
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ 
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ ls -lt
total 320
-rwxrwxr-x 1 admin admin  6332 11月 17 10:40 osu_multi_lat
-rwxrwxr-x 1 admin admin  6342 11月 17 10:40 osu_latency_mt
-rwxrwxr-x 1 admin admin  6312 11月 17 10:40 osu_latency
-rwxrwxr-x 1 admin admin  6262 11月 17 10:40 osu_bw
-rwxrwxr-x 1 admin admin  6342 11月 17 10:40 osu_latency_mp
-rwxrwxr-x 1 admin admin  6302 11月 17 10:40 osu_mbw_mr
-rwxrwxr-x 1 admin admin  6282 11月 17 10:40 osu_bibw
-rw-rw-r-- 1 admin admin 11904 11月 17 10:40 osu_bibw.o
-rw-rw-r-- 1 admin admin 18072 11月 17 10:40 osu_mbw_mr.o
-rw-rw-r-- 1 admin admin 16872 11月 17 10:40 osu_latency_mt.o
-rw-rw-r-- 1 admin admin 11456 11月 17 10:40 osu_bw.o
-rw-rw-r-- 1 admin admin 10976 11月 17 10:40 osu_latency_mp.o
-rw-rw-r-- 1 admin admin  9688 11月 17 10:40 osu_latency.o
-rw-rw-r-- 1 admin admin  9872 11月 17 10:40 osu_multi_lat.o
-rw-rw-r-- 1 admin admin 28374 11月 17 10:23 Makefile
-rw-r--r-- 1 admin admin 28795 5月  24 01:46 Makefile.in
-rw-r--r-- 1 admin admin  1446 5月  17  2022 Makefile.am
-rw-r--r-- 1 admin admin 13925 5月  17  2022 osu_bibw.c
-rw-r--r-- 1 admin admin 13046 5月  17  2022 osu_bw.c
-rw-r--r-- 1 admin admin  9926 5月  17  2022 osu_latency.c
-rw-r--r-- 1 admin admin  7763 5月  17  2022 osu_latency_mp.c
-rw-r--r-- 1 admin admin 12654 5月  17  2022 osu_latency_mt.c
-rw-r--r-- 1 admin admin 19056 5月  17  2022 osu_mbw_mr.c
-rw-r--r-- 1 admin admin 10070 5月  17  2022 osu_multi_lat.c
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ 
  • 确保mpi的路径加入到PATH
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ which mpirun
/usr/local/bin/mpirun
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ 
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ 
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ PATH=$PATH:/usr/local/bin
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ 

运行

  • 另外一台虚拟做完全相同的配置,包括安装路径都要相同,两台虚拟机并可以通过5.5.5.3和5.5.5.4互相ping通
  • 运行osu_latency,开头有一些WARNING,先不管
admin@osu-1:~/mvapich2-2.3.7-1/osu_benchmarks/mpi/pt2pt$ mpirun_rsh -np 2 5.5.5.3 5.5.5.4 MV2_USE_RoCE=1 MV2_IBA_HCA=ib5 ./osu_latency
[osu-1:mpi_rank_0][rdma_find_network_type] Unable to find the numa process is bound to. Disabling process placement aware hca mapping.
[osu-1:mpi_rank_0][mv2_get_hca_type] **********************WARNING***********************
[osu-1:mpi_rank_0][mv2_get_hca_type] Failed to automatically detect the HCA architecture.
[osu-1:mpi_rank_0][mv2_get_hca_type] This may lead to subpar communication performance.
[osu-1:mpi_rank_0][mv2_get_hca_type] ****************************************************
[osu-1:mpi_rank_0][mv2_get_hca_type] **********************WARNING***********************
[osu-1:mpi_rank_0][mv2_get_hca_type] Failed to automatically detect the HCA architecture.
[osu-1:mpi_rank_0][mv2_get_hca_type] This may lead to subpar communication performance.
[osu-1:mpi_rank_0][mv2_get_hca_type] ****************************************************
[osu-1:mpi_rank_0][mv2_get_hca_type] **********************WARNING***********************
[osu-1:mpi_rank_0][mv2_get_hca_type] Failed to automatically detect the HCA architecture.
[osu-1:mpi_rank_0][mv2_get_hca_type] This may lead to subpar communication performance.
[osu-1:mpi_rank_0][mv2_get_hca_type] ****************************************************
[osu-1:mpi_rank_0][rdma_open_hca] Unknown HCA type: this build of MVAPICH2 does not fully support the HCA found on the system (try with other build options)
[osu-1:mpi_rank_0][mv2_new_get_hca_type] **********************WARNING***********************
[osu-1:mpi_rank_0][mv2_new_get_hca_type] Failed to automatically detect the HCA architecture.
[osu-1:mpi_rank_0][mv2_new_get_hca_type] This may lead to subpar communication performance.
[osu-1:mpi_rank_0][mv2_new_get_hca_type] ****************************************************
[osu-2:mpi_rank_1][rdma_find_network_type] Unable to find the numa process is bound to. Disabling process placement aware hca mapping.
[osu-2:mpi_rank_1][rdma_open_hca] Unknown HCA type: this build of MVAPICH2 does not fully support the HCA found on the system (try with other build options)
[osu-1:mpi_rank_0][rdma_param_handle_heterogeneity] All nodes involved in the job were detected to be homogeneous in terms of processors and interconnects. Setting MV2_HOMOGENEOUS_CLUSTER=1 can improve job startup performance on such systems. The following link has more details on enhancing job startup performance. http://mvapich.cse.ohio-state.edu/performance/job-startup/.
[osu-1:mpi_rank_0][rdma_param_handle_heterogeneity] To suppress this warning, please set MV2_SUPPRESS_JOB_STARTUP_PERFORMANCE_WARNING to 1
# OSU MPI Latency Test v5.9
# Size          Latency (us)
0                     139.61
1                     144.72
2                     141.35
4                     140.04
8                     139.94
16                    140.42
32                    139.10
64                    137.50
128                   142.40
256                   143.07
512                   140.62
1024                  143.64
2048                  175.03
4096                  222.74
  • 同时在另外一台上对ens8做tcpdump,可以抓到UDP的dest_port为1791的报文,正是RoCEv2报文
10:51:43.782588 52:54:00:28:f8:36 > 52:54:00:3c:a8:a3, ethertype IPv4 (0x0800), length 222: 5.5.5.4.63843 > 5.5.5.3.4791: UDP, length 180
10:51:43.782725 52:54:00:3c:a8:a3 > 52:54:00:28:f8:36, ethertype IPv4 (0x0800), length 62: 5.5.5.3.63843 > 5.5.5.4.4791: UDP, length 20
10:51:43.782857 52:54:00:3c:a8:a3 > 52:54:00:28:f8:36, ethertype IPv4 (0x0800), length 222: 5.5.5.3.63843 > 5.5.5.4.4791: UDP, length 180
10:51:43.782865 52:54:00:28:f8:36 > 52:54:00:3c:a8:a3, ethertype IPv4 (0x0800), length 62: 5.5.5.4.63843 > 5.5.5.3.4791: UDP, length 20
10:51:43.782885 52:54:00:28:f8:36 > 52:54:00:3c:a8:a3, ethertype IPv4 (0x0800), length 222: 5.5.5.4.63843 > 5.5.5.3.4791: UDP, length 180
10:51:43.783040 52:54:00:3c:a8:a3 > 52:54:00:28:f8:36, ethertype IPv4 (0x0800), length 62: 5.5.5.3.63843 > 5.5.5.4.4791: UDP, length 20
10:51:43.783146 52:54:00:3c:a8:a3 > 52:54:00:28:f8:36, ethertype IPv4 (0x0800), length 222: 5.5.5.3.63843 > 5.5.5.4.4791: UDP, length 180
10:51:43.783154 52:54:00:28:f8:36 > 52:54:00:3c:a8:a3, ethertype IPv4 (0x0800), length 62: 5.5.5.4.63843 > 5.5.5.3.4791: UDP, length 20
10:51:43.783173 52:54:00:28:f8:36 > 52:54:00:3c:a8:a3, ethertype IPv4 (0x0800), length 222: 5.5.5.4.63843 > 5.5.5.3.4791: UDP, length 180
10:51:43.783312 52:54:00:3c:a8:a3 > 52:54:00:28:f8:36, ethertype IPv4 (0x0800), length 62: 5.5.5.3.63843 > 5.5.5.4.4791: UDP, length 20
10:51:43.783423 52:54:00:3c:a8:a3 > 52:54:00:28:f8:36, ethertype IPv4 (0x0800), length 222: 5.5.5.3.63843 > 5.5.5.4.4791: UDP, length 180
10:51:43.783431 52:54:00:28:f8:36 > 52:54:00:3c:a8:a3, ethertype IPv4 (0x0800), length 62: 5.5.5.4.63843 > 5.5.5.3.4791: UDP, length 20
10:51:43.783451 52:54:00:28:f8:36 > 52:54:00:3c:a8:a3, ethertype IPv4 (0x0800), length 222: 5.5.5.4.63843 > 5.5.5.3.4791: UDP, length 180
  • 如果报文写入文件并用wireshark解析,可以看到是RoCEv2的RC报文
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.1 极限的概念

1.1 极限的概念 1.1.1 数列的极限 引言 在物理实验中,如果涉及到测量,那么误差总是存在的。误差是在正确实验的情况下实验测量值与理论值之间的差值。如果理论是正确的并且使用更精密的实验仪器或改进实验方法,那么测量值就会更加接近理论…

sql server卡慢问题定位和排查

一、数据库服务器资源排查 二、数据库sql性能排查 2.1、查询哪些资源被阻塞了 和 堵进程 1)、查询哪些资源被阻塞了(spid为阻塞进程id) select * from sys.sysprocesses where status suspended 2)、查询堵进程…

基于springboot的疫情防控管理系统

1、项目介绍 基于springboot的疫情防控管理系统拥有两种角色:管理员和用户 管理员:用户管理、隔离地点管理、隔离人员管理、防护用具管理、消毒管理、生活需求管理、体温上报管理、核酸结果管理、配餐管理、物资配送管理、隔离解除管理等 用户&#x…

linux make和makefile

目录linux make和makefilemake小程序进度条linux make和makefile make 会不会写makefifile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefifile定义了一系列…

一文快速学会linux shell 编程基础!!!

文章目录前言一、shell脚本执行的方式1.格式要求2.脚本常用执行方式2.1 . 输入脚本的绝对路径或相对路径进行执行2.2 使用 sh 脚本的方式shell 的注释语法二、shell 变量1.shell变量介绍2.shell 变量的定义定义变量定义变量的规则将命令的返回值赋给变量3.设置环境变量3.位置参…

多功能电力仪表在物联网的应用

安科瑞 华楠 有线多功能电力仪表场景 应用场景 功能: 1.支持全电力参数测量;以及2-31次分次谐波测量;支持双向有功电能计量,支持四套时段表、4个时区、14个日时段、4种费率的电能统计;需量及发生时间统计&#xff1…

智慧党务管理源码,竞赛答题+阅读学习一套系统全搞定

智慧党务源码系统是利用互联网技术实现党建信息资源整合、逐步提升现代化党建知识水平的党务学习答题系统平台。今天万岳科技就来讲一讲如果开发一套智慧党务源码需要满足哪些功能?智慧党务学习答题系统主要功能为: 1、党组织管理:对各级党务…

我参加NVIDIA Sky Hackathon 环境安装(基本系统环境)

我的硬件环境 x86的物理机RTX 3060 12G16G 的 U盘 软件环境 Ubuntu 20.04 LTSssh 命令行输入 apt install ssh 即可 第一个坑: 18.04 的 Ubuntu 系统在安装过程中无法显示, 99% 的场景显示器会黑屏所以 3060 最好使用 Ubuntu 20.04 及以上版本 安装…

SpringMVC ---- SpringMVC的视图

SpringMVC ---- SpringMVC的视图1. ThymeleafView2. 转发视图3. 重定向视图4. 视图控制器view-controllerSpringMVC 中的视图是 View 接口,视图的作用是渲染数据,将模型 Model 中的数据展示给用户 SpringMVC 的视图种类很多,默认有转发视图和…

[附源码]SSM计算机毕业设计“云味坊”购物网站JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

振弦采集模块的通讯协议( IIC)

振弦采集模块的通讯协议( IIC) IIC 通讯协议本身即是基于设备地址和寄存器的物理层通讯协议, VMXXX 使用 IIC 接口对传感器的访问,请遵循前述硬件接口时序及协议说明即可。 IIC 访问时使用与 UART 相同的寄存器地址,地…

【云原生-Docker】使用 Docker Compose 管理容器

🍁博客主页:👉不会压弯的小飞侠 ✨欢迎关注:👉点赞👍收藏⭐留言✒ ✨系列专栏:👉Docker学习专栏 ✨学习社区:👉不会压弯的小飞侠 ✨知足上进,不负…

5种方法实现(a==1 a==2 a==3) == true

乍一看,这个咋能相等呢?深入思考就发现不仅可以相等,还有不少方法,下面就来讲讲这些方法都是如何实现的。 一、valueOf && toString 直接上代码: 比较运算分为2种, 一种为严格比较(),…

【设计模式】类图

本文主要介绍类图的概念、类之间的关系以及如何用类图表示类和类之间的关系 类图: 是一种静态结构图,是系统分析和设计阶段的重要产物。 类图画法: 1. 类的表示方式 类的表示中包含类名、属性 和 方法, 其中, 表示…

C++ Reference: Standard C++ Library reference: Containers: deque: deque: empty

C官网参考链接&#xff1a;https://cplusplus.com/reference/deque/deque/empty/ 公有成员函数 <deque> std::deque::empty C98 bool empty() const; C11 bool empty() const noexcept;测试容器是否为空 返回deque容器是否为空&#xff08;即其size是否为0&#xff09;…

大一Web课程设计:企业网站——HTML+CSS+JavaScript电子购物商城(37页面)

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

VIAVI唯亚威FI-10/-11 光纤识别仪

FI-10 和 FI-11 手持式光纤识别仪稳固可靠&#xff0c;易于安装和维护&#xff0c;能够检测通过单模光纤传输的光信号&#xff0c;从而识别出光纤。它们采用局部检测技术&#xff08;非破坏性宏弯检测&#xff09;&#xff0c;从而不再需要在接合点处打开光纤进行识别&#xff…

【好文鉴赏】优秀的后端应该有哪些开发习惯

关键词&#xff1a;[后端] [编程习惯] [代码风格] 原文链接&#xff1a; https://juejin.cn/post/7072252275002966030https://www.51cto.com/article/721104.html 这里涉及到的主要是 Java 语言&#xff0c;当然也有通用的一些习惯&#xff1b; 拆分合理的目录结构 受传统的…

Spring Cloud网关路由谓词

目录 一、前言 1、注意事项 2、词汇表 3、工作原理 二、配置路由谓词工厂 1、快捷方式 1.1、快捷方式配置 1.2、完全展开的参数 2、路由谓词工厂 2.1、路由谓词工厂之后 2.2、路线谓词工厂之前 2.3、路由谓词工厂之间 3、Cookie路线谓词工厂 4、标头路由谓词工厂 …

Rust机器学习之Polars

Rust机器学习之Polars 本文将带领大家学习Polars的基础用法&#xff0c;通过数据加载→\rarr→数据探索→\rarr→数据清洗→\rarr→数据操作一整个完整数据处理闭环&#xff0c;让大家学会如何用Polars代替Pandas进行数据处理。 本文是“Rust替代Python进行机器学习”系列文…