问题标签 [infiniband]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sockets - SDP和VMA有什么区别?
众所周知,我们可以使用 Infiniband 或 RoCE-Ethernet:
VMA - Voltaire 消息加速器 (VMA) Mellanox 的消息加速器 (VMA) 提高了基于消息和流式应用程序的性能...结果是延迟减少了多达 300%,应用程序吞吐量增加了多达 200每台服务器的百分比...
SDP - 套接字直接协议 (SDP) 是一种字节流协议,它利用 InfiniBand 结构的功能透明地为现有的基于套接字的网络应用程序实现性能提升。
另外 - 第 9 页:http: //www.informatix-sol.com/docs/TCP_bypass_overview.pdf
众所周知,SDP 和 VMA 都使用 RDMA-Verbs,并且可以用于已编译的程序二进制文件(libpreload)LD_PRELOAD: http: //www.informatix-sol.com/low-latency.html
与 Openonload 一样,SDP 和 Mellanox 的 VMA 都预加载以加速现有的 TCP/IP 套接字程序。Openonload 保留了 TCP/IP 协议,因此可以单端使用。SDP 和 VMA 都映射到 VERBS,因此必须部署在线路的两端。
还从以下位置获取图像:
- 第15页图2-1: http: //lists.openfabrics.org/pipermail/general/attachments/20081016/3fe4fd45/attachment.obj
- 第 76 页:http: //ircc.fiu.edu/download/sc13/Infiniband_Slides.pdf
但如果 SDP 和 VMA 都:
- 绕过 TCP/IP 堆栈
- 使用 RDMA 动词
- 必须部署在电线的两端
- 可用于已编译的程序二进制文件为 (libpreload),运行 program.bin 为:
LD_PRELOAD=libsdp.so program.bin
或LD_PRELOAD=libvma.so program.bin
那么为什么速度(延迟和带宽)有如此大的差异?
- VMA 的延迟比 SDP 低 2.5 倍
- VMA 的带宽是 SDP 的 1.8 倍
mpi - Infiniband vs. Gigabit ethernet, how do I control which is used by an MPI program
I have an MPI program that runs on a computer cluster that has both ethernet and Infiniband connectivity. When I compile with mpavich2's mpicc, it automatically links to the Infiniband libraries.
Is there a way to control which network is used when compiling an mpi program?
I checked the man page for mpicc and it was not useful for this.
infiniband - 为 mellanox Connect-IB 卡增加 Memory Translation Table (MTT)
我有一个具有 2TB 内存的胖节点。使用新的 Connect-IB 卡,我想增加 MTT,这样我就可以注册一个大的内存区域。我发现这篇文章是关于如何增加Mellanox 适配器使用的内存大小,但它没有提到如何增加 Connect-IB 的内存大小。谁能给我任何建议?
infiniband - 没有映射内存的 RDMA 传输
我有应该通过 IB 网络交换文件的补充流程。然后这些文件将被其他进程使用。
工作流程如下:
- 在 /dev/shm 中创建文件
- 适当调整文件大小
- 映射进程虚拟机中的文件
- 使用 ibv_reg_mr 注册映射区域
- 为数据传输启动 RDMA 操作
原来我的方案的瓶颈是 ib_reg_mr(我单独测量了注册 3Gb 内存需要 1.78 秒)。似乎它触发了内存区域到进程地址空间的映射。不幸的是,不需要这个操作,因为接收进程不使用这块内存。该内存应该稍后被其他进程映射和使用。
因此,我认为避免更改接收过程的页表是明智之举,但我根本无法找到它是否可能。
您能否建议我,如果有一种方法可以在内存区域上启动数据传输而不将其映射到进程的地址空间?
wireshark - Infiniband 的 Pcap 链路类型
我正在尝试使用 pcap 格式捕获 Infiniband 数据包,为此我认为我应该使用 tcpdump 的 LINK-LAYER HEADER TYPESLINKTYPE_INFINIBAND 247 DLT_INFINIBAND
中提到的方法。
当我尝试在 Wireshark 中打开 pcap 文件时,我收到此错误消息 -
文件“ib.pcap”是 Wireshark 不支持的网络类型的捕获。(pcap:网络类型 247 未知或不受支持)
此外,在wireshark 样本捕获中 - InfiniBand样本是 -
文件 infiniband.pcap (8.7KB)
描述 DLT_ERF 格式的低级 InfiniBand帧的 libpcap 跟踪文件。
那么,为什么 DLT_INFINIBAND (247) 不被wireshark 识别,为什么样本使用 DLT_ERF (197)?
谢谢!
kernel - 适用于 Linux 内核的 RDMA API
是否有可用于内核空间的RDMA(Infiniband) API?我发现的大多数 API 都是用户空间。kDAPL和kAL可以在linux内核中使用;但是,我还没有找到使用这些 API 的示例代码。有人可以帮我提供内核空间中 RDMA 的示例代码吗?
infiniband - 如何避免卡在 rdma_get_recv_comp() 或 __ibv_get_cq_event() 中?
各位 RDMA 黑客,有谁知道调用 __ibv_get_cq_event() 的 rdma_get_recv_comp() 是否超时?
我的问题与此处显示的程序相同: RDMA 程序随机挂起
它工作正常,但它对随机客户端断开连接并不稳健。具体来说,如果我强行杀死客户端,那么服务器就会卡在 rdma_get_recv_comp() / ipv_get_cq_event() 中。
这是针对 Mellanox ConnectX-3 的,我检查了默认超时是 2.14 秒,重试次数 = 1。但我不清楚阻塞模式下的 ibv_get_cq_event() 是否会超时。ibv_modify_qp() 文档中对超时的解释似乎表明超时仅适用于发送 (rdma_get_send_comp()),因为只有发送方等待 ACK。但我认为允许接收也有超时没有任何困难。
如果在这种情况下预计会挂在 rdma_get_recv_comp() 内,我该如何避免它或实现超时?
一些可能性:
更改我的客户端关闭顺序,以便它执行所有必要的发送,这样它就不会让服务器上的 rdma_get_recv_comp() 挂起?
用轮询接收完成的循环替换 rdma_get_recv_comp()
linux-kernel - 用于 RDMA 的 Krping 模块
我一直在尝试使 krring 模块工作,可以在这里找到:http ://git.openfabrics.org/?p=~sgrimberg/krping.git;a=summary
我通过 Mellanox ofed kernel 3.3 安装驱动程序。已经从 ofa-kernel/default 复制了 Module.symvers 但它不起作用。
我已经在 ubuntu 12.04 和 14.04 的不同内核上尝试过它。我使用的内核是 3.18、3.5 和 4.0。但是,每次我遇到同样的问题。如果有人编译了 krping 并且可以帮助解决这个问题?特别是内核版本、操作系统和安装他们使用的驱动程序的过程。
制作文件1
生成文件2
以上是我尝试编译模块的两个makefile。建议我可以尝试的任何更改。
linux-kernel - 内核程序 RDMA (krping)
我正在使用内核模块在 Infiniband 的内核空间中进行 RDMA 传输(krping.c
链接:git.openfabrics.org Git - ~sgrimberg/krping.git/summary)。我拥有的卡是 Mellanox ConnectX-4(驱动程序:mlx5)、Linux 内核版本:3.13、Ubuntu 12.04 和 Mellanox OFED 3.3。
代码似乎停留在获取mutex_lock
inmlx5_ib_query_qp
函数(在 mlx5_ib.h 中)。它是从krping.c
带有ib_req_notify_cq function
. 我能否获得有关如何解决此错误/死锁的帮助?我在这篇文章中附加了 dmesg 跟踪。
Dmesg 跟踪:
linux - ibv_poll_cq() 和 ib_poll_cq() 的问题
客户端:
服务器端:
客户端写在内核空间,服务端写在用户空间。wc.status 返回 12。这可能是什么问题?