问题标签 [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.
python - python rdma“你好世界”
这个程序是我第一次尝试 Infiniband 编程。我正在使用这个库:
https://github.com/jgunthorpe/python-rdma
我可能做错了非常有趣的事情。我只是想向多播地址发送一系列字节“Hello, World”。
这是我得到的输出:
linux - rping 服务器在移植内核中崩溃
我已经安装了Soft-RoCE ,并且在Kernel 3.0.0+中使用“rping”成功确保了两个节点之间的 rdma 连接。
我需要在内核 4.0.4中做同样的事情。我已将“ rxe 驱动程序(/driver/infiniband/hw/rxe)”从 3.0.0+ 复制到内核 4.0.4。我已经应用了小补丁,以便 rxe 在 4.0.4 中保持良好状态。
移植后,在 4.0.4 中,当客户端尝试与rping 服务器连接时,它会崩溃。服务器似乎正在运行...我得到了 dmesg 的崩溃报告。
ibv_devices, ibv_devinfo 产生输出。
请帮我解决这个问题的步骤
以下是崩溃报告
c - rdma 连接管理器驱动模式
我正在为我的应用程序使用 Infiniband 驱动程序的 OFED 3.18r2 实现。特别是我正在使用 rdma 连接管理器包装函数。为了更好地了解幕后发生的事情,我习惯于查看源代码。这样做我遇到了一些看起来像模式但我无法理解的东西。让我们举个例子。rdma 连接管理器函数在 cma.c 中。以 rdma_listen 调用为例(这对于库中定义的几乎所有以“rdma_”开头的函数都很常见):
在这里你可以看到我之前提到的模式:
write 调用的第一个参数是与/dev/infiniband/rdma_cm关联的文件描述符,但我无法理解cmd参数的用法。我深入研究了源代码,却发现cmd是一个用于 rdma cm 函数调用的 ABI 定义的结构。我真的不明白这是否是执行设备驱动程序调用的常见模式以及它是如何工作的,与 cmd 参数关联的真实代码在哪里。请你帮助我好吗?
cuda - 如何在 Infiniband 中使用 GPUDirect RDMA
我有两台机器。每台机器上有多张特斯拉卡。每台机器上还有一张 InfiniBand 卡。我想通过 InfiniBand 在不同机器上的 GPU 卡之间进行通信。只需点对点单播就可以了。我当然想使用 GPUDirect RDMA,这样我就可以省去额外的复制操作。
我知道Mellanox 现在为其 InfiniBand 卡提供了一个驱动程序。但它没有提供详细的开发指南。我也知道 OpenMPI 支持我要求的功能。但是 OpenMPI 对于这个简单的任务来说太重了,它不支持单个进程中的多个 GPU。
我想知道直接使用驱动程序进行通信是否可以得到任何帮助。代码示例,教程,任何东西都会很好。另外,如果有人可以帮助我在 OpenMPI 中找到处理此问题的代码,我将不胜感激。
c++ - 客户端和服务器之间的通信不稳定
我修改了 geekinthecorner 的示例,以便能够连续发送数据。我正在使用 g++4.9.2。
我尝试从这里http://downloads.openfabrics.org/OFED/卸载官方最新的 OFED
相反,如果我只是尝试安装它,我会得到:
下面是客户端和服务器。当我运行这个程序时,客户端会发送消息,但是它发送的消息数量是不稳定的,错误消息经常是
客户:
服务器:
这里有几个运行。完全随机发送的消息数量:
接着
这是服务器端:
infiniband - 如何从 Infiniband 动词函数中获取错误信息?
特别是,我想知道为什么 ibv_create_qp 会失败。当它返回 NULL 时,表明它失败了,有没有办法准确找出问题所在?
infiniband - RDMA 程序随机挂起
有人使用 RDMA_CM 库进行过 RDMA 编程吗?
我很难找到即使是简单的例子来研究。librdmacm 中有一个 rdma_client 和 rdma_server 示例,但它不会在循环中运行(rping 会循环,但它是直接使用 IB 动词而不是 rdma_cm 函数编写的)。
我已经编写了一个简单的乒乓球程序,但它在 1-100 次反弹后锁定在任何地方。我发现在客户端内添加睡眠会使其在挂起之前工作更长时间,这表明存在竞争条件。
客户端卡在 rdma_get_send_comp() 中,服务器卡在 rdma_get_recv_comp() 中。
我有限的理解是,在每个 rdma_post_send() 之前,您需要发出一个 rdma_post_recv() 将在发送之后发出。同样在每次发送之前(第一个客户端发送除外),您需要等待一条消息(rdma_get_recv()),表明对方已准备好接收。
有什么问题?
networking - InfiniBand 网络性能
我正在测量InfiniBand
使用的性能iperf
。
它是服务器和客户端之间的一对一连接。
我测量了请求网络 I/O 的线程的带宽变化数。
(集群服务器有:
- “用于 System x 的 Mellanox ConnectX-3 FDR VPI IB/E 适配器”和
- “Infiniband 40 Gb 以太网/FDR InfiniBand”)
带宽:
正如您在上面看到的,带宽上升到 4 个线程,然后下降。
你能给我一些想法来理解那里发生了什么吗?
此外,一旦多台机器向一台机器发送数据会发生什么?(争论)
也
可以InfiniBand
处理吗?
mpi - Poll system call - is this infiniband communication?
I have a place in my openmpi
(compiled for infiniband
usage) code where there is no progress output and strace
on one of the processes shows this:
over and over again. As per this question I ran ls -l /proc/<pid>/fd
and I see a couple of socket
s and /dev/infiniband/
links. Is this system call indicative of interprocess communication over infiniband
? How can I verify this or further debug what is happening in the code at this time?