标签: infiniband

Infiniband上IPoIB和TCP之间的区别

有人可以通过infiniband解释IPoIB和TCP的概念吗?我理解本地infiniband提供的整体概念和数据速率,但不太了解TCP和IPoIB如何适应.为什么你需要它们,他们做了什么?有人说他们的网络使用IPoIB或TCP与infiniband有什么区别?哪一个更好?我不是来自强大的网络背景,所以如果你能详细说明那就太好了.

谢谢您的帮助.

networking tcp infiniband

40
推荐指数
1
解决办法
3万
查看次数

拥有带有InfiniBand的Windows Azure A8节点支持如何从一个发送N个字节并在另一个上接收?

我喜欢InfiniBand承诺的40Gbit/s网络.我的需求没有映射到具有一个核心节点+从属的MPI模型,如果可能,我宁愿不使用MPI.我需要简单的连接/发送/接收/关闭(或其异步版本)API.然而,在MS Azure文档和 Microsoft HPC Pack文档中,我无法找到任何可以使用InfiniBand作为我的应用程序传输的C/C++或.Net API.所以我的问题很简单,如何使用InfiniBand连接到其他节点并向其发送数据包并在另一端接收?(类似于一些Socket API或类似的东西)

Azure上的ND-SPI或Azure上的DAPL-ND 连接/发送/接收/关闭教程是我正在寻找的.

c++ hpc azure infiniband azure-virtual-network

35
推荐指数
1
解决办法
725
查看次数

InfiniBand:传输速率取决于MPI_Test*频率

我正在写一个多线程的openmpi应用程序,使用MPI_Isend和MPI_Irecv从多个线程在InfiniBand RDMA队伍之间交换每秒数百个消息.

传输大约为400-800KByte,每个等级产生大约9Gbps的输入和输出,完全在FDR的容量范围内.简单的MPI基准测试也表现出良好的性能.

通过在专用线程中使用MPI_Testsome轮询所有活动传输来检查传输的完成.

我实现的传输速率取决于消息速率,但更重要的是取决于MPI_Testsome的轮询频率.也就是说,如果我每隔10毫秒轮询一次,请求的结束时间比我每1毫秒轮询一次.

我希望如果我轮换10ms而不是每1ms,我最多会在9ms之后被告知已完成的请求.我不希望传输本身通过减少对MPI_Testsome的调用来延迟完成,从而减慢总传输速率.我希望MPI_Testsome完全被动.

这里的任何人都知道为什么会出现这种情况?

multithreading mpi openmpi rdma infiniband

9
推荐指数
1
解决办法
387
查看次数

RDMA内存共享

我有一些由Infiniband网络连接的多核计算机.我希望在共享内存池上进行一些低延迟计算,并进行远程原子操作.我知道RDMA是要走的路.在每个节点上,我将注册一个内存区域(和保护域)以进行数据共享.

在线RDMA示例通常关注单线程服务器和单线程客户端之间的单个连接.现在,我希望在每个Infiniband节点上都有一个多线程进程.我对以下内容感到非常困惑......

  1. 对于n个节点和m个线程的集群,我应该在每个节点上准备多少个队列对?更具体地说,同一节点上的多个线程可以共享同一个队列对吗?

  2. 我应该在每个节点上准备多少个完成队列?我将在每个节点上有多个线程发出远程读/写/ cas操作.如果他们要共享一个公共完成队列,则完成事件将被混淆.如果线程有自己独立的完成队列,那么它们确实会有很多.

  3. 你建议我有任何现有的库而不是编写这个软件吗?(嗯,或者我应该写一个并开源吗?:-)

谢谢你的善意建议.

rdma infiniband

8
推荐指数
1
解决办法
3419
查看次数

"本地"RDMA用于开发

我正在尝试在这里构建和运行RDMA示例.但是因为我正在探索,我没有任何能够管理RDMA的硬件.当我尝试运行示例代码时,我收到这样的错误.

librdmacm: couldn't read ABI version.
librdmacm: assuming: 4
CMA: unable to get RDMA device list
error: ec = rdma_create_event_channel() failed (returned zero/null).
Run Code Online (Sandbox Code Playgroud)

是否有可用于开发的RDMA功能的"本地"实现?我知道RDMA中的"R"意味着远程,但我认为这可能存在用于测试/开发目的.

作为参考,我的Ubuntu 14.04箱尝试这个已经安装的软件包libibverbs-dev,并librdmacm-dev为了让代码编译.

c rdma infiniband

8
推荐指数
1
解决办法
970
查看次数

如何在Dask中使用InfiniBand网络?

我有一个具有高性能网络的集群(InfiniBand).但是,当我设置我的Dask调度程序和工作程序时,性能似乎并不像我预期的那么快.我怎么能告诉Dask使用这个网络?

免责声明:我只是问这个问题,以便我可以回答.它已成为一个经常被问到的问题

python infiniband dask

8
推荐指数
1
解决办法
586
查看次数

GPUDirect RDMA从GPU传输到远程主机

场景:

我有两台机器,一台客户机和一台服务器,与Infiniband连接.服务器机器有一个NVIDIA Fermi GPU,但客户端机器没有GPU.我有一个在GPU机器上运行的应用程序,它使用GPU进行一些计算.GPU上的结果数据从不被服务器机器使用,而是直接发送到客户端机器而无需任何处理.现在我正在做一个cudaMemcpy从GPU获取数据到服务器的系统内存,然后通过套接字将其发送到客户端.我正在使用SDP为此通信启用RDMA.

题:

在这种情况下,我是否可以利用NVIDIA的GPUDirect技术来摆脱cudaMemcpy呼叫?我相信我已正确安装了GPUDirect驱动程序,但我不知道如何在不先将其复制到主机的情况下启动数据传输.

我的猜测是不可能将SDP与GPUDirect结合使用,但还有其他方法可以启动从服务器机器GPU到客户机的RDMA数据传输吗?

额外:如果somone有一个简单的方法来测试我是否正确安装了GPUDirect依赖项,这也是有帮助的!

cuda rdma infiniband gpudirect

7
推荐指数
1
解决办法
3707
查看次数

RDMA中的数据包捕获?

Linux中有没有像tcpdump这样的实用程序来捕获流经RDMA通道的流量?(Infiniband的/ ROCE /的iWARP)

tcpdump rdma infiniband

7
推荐指数
1
解决办法
4415
查看次数

MPI_SEND占据了虚拟内存的很大一部分

在大量内核上调试我的程序,我遇到了非常奇怪的错误insufficient virtual memory.我的调查导致代码的和平,主机向每个从机发送小消息.然后我写了一个小程序,其中1个master只发送10个整数,MPI_SEND所有从属接收它MPI_RECV./proc/self/status前后文件的比较MPI_SEND表明,内存大小之间的差异是巨大的!最有趣的事情(崩溃我的程序)是,这个内存不会释放后MPI_Send仍然占用大量空间.

有任何想法吗?

 System memory usage before MPI_Send, rank: 0
Name:   test_send_size                                                                                
State:  R (running)                                                                                  
Pid:    7825                                                                                           
Groups: 2840                                                                                        
VmPeak:   251400 kB                                                                                 
VmSize:   186628 kB                                                                                 
VmLck:        72 kB                                                                                  
VmHWM:      4068 kB                                                                                  
VmRSS:      4068 kB                                                                                  
VmData:    71076 kB                                                                                 
VmStk:        92 kB                                                                                  
VmExe:       604 kB                                                                                  
VmLib:      6588 kB                                                                                  
VmPTE:       148 kB                                                                                  
VmSwap:        0 kB                                                                                 
Threads:    3                                                                                          

 System memory usage after MPI_Send, rank 0
Name:   test_send_size                                                                                
State:  R (running)                                                                                  
Pid: …
Run Code Online (Sandbox Code Playgroud)

linux mpi infiniband intel-mpi

7
推荐指数
2
解决办法
1936
查看次数

无法使用ib_create_qp创建队列对

我正在编写一个RDMA(InfiniBand)内核模块.

到目前为止,我已成功创建保护域,发送和接收队列的完成队列.

但每当我尝试通过调用ib_create_qp来创建队列对时,它都无法创建队列对.我写的代码如下所示:

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/err.h>
#include "myClient.h"


struct workqueue_struct *myClient_workqueue;
struct ib_sa_client myClient_sa_client;
/*
static void myClient_add_one(struct ib_device *device);
static void myClient_remove_one(struct ib_device *device);
*/

struct ib_pd *mypd;
struct ib_cq *myrcvcq;
struct ib_cq *myClientsendcq;
struct ib_qp *myClientqp;

void myClient_ib_recvcompletion(struct ib_cq *cq)
{
    printk("A user-specified callback that is invoked when a completion event occurs on the CQ.\n");
}


void myClient_ib_sendcompletion(struct ib_cq *cq)
{
        printk("A user-specified callback that is invoked when a …
Run Code Online (Sandbox Code Playgroud)

linux-device-driver linux-kernel rdma infiniband

6
推荐指数
1
解决办法
1687
查看次数