infiniband(RDMA)的最大电缆长度是多少?
例如.这里已经说过,对于四通道铜缆,它可以高达10M.并使用光纤连接电缆,与标准InfiniBand 4x和以太网10GBaseCX4完全电气兼容,最高可达100 M:
http://electronicdesign.com/communications/system-extends-infiniband-cable-reach-100-m
我正在努力理解libibverbs和librxe之间的关系以及HCA的低级内核驱动程序.
具体来说,我有以下疑问:
linux命令的手册页ibstat和ibv_devinfo说
ibstat - query basic status of InfiniBand device(s)
ibv_devinfo - query RDMA devices
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Infiniband设备和RDMA设备之间有什么区别?在什么情况下,这两个命令的输出是否不同(即它们在设备输出列表中有所不同)?
是否可以在不使用 IPoIB 的情况下通过本机 InfiniBand 使用 RDMA(仅使用 guid 或 lit)?
我已经检查了Infiniband 寻址 - 没有 IBoIP 的主机名到 IB 地址,并在 RDMA 连接管理器源文件中检查了在没有 IPoIB 的情况下在端口之间创建连接,但遗憾的是无法找到如何执行此操作。
据我了解,IBV_CREATE_QP() 和 RDMA_CREATE_QP 实际上做同样的事情。如果我先调用了 ibv_create_qp(),那么在使用 ibrdmacm API 建立连接时是否还需要调用另一个?
此外,diff b/w会创建QP和EP吗?
我想开发一个能够发送/接收RDMA消息的内核模块.我想知道是否可以从内核空间调用Mellanox库.
我可以从内核模块调用Mellanox RDMA函数吗?
答:我在这里有一些工作代码:https://github.com/jcarreira/disag-firebox
我正在尝试在 8 节点 IB (OFED-1.5.3-4.0.42) 集群上部署 Hadoop-RDMA,并遇到以下问题(又名文件...只能复制到 0 个节点,而不是 1 个节点):
\n\n\nfrolo@A11:~/hadoop-rdma-0.9.8> ./bin/hadoop dfs -copyFromLocal ../pg132.txt /user/frolo/input/pg132.txt\n警告: $HADOOP_HOME 已弃用。\n\ n14/02/05 19:06:30 警告 hdfs.DFSClient: DataStreamer 异常: java.lang.reflect.UndeclaredThrowableException\n 在 com.sun.proxy.$Proxy1.addBlock(未知来源)\n 在 sun.reflect.NativeMethodAccessorImpl .invoke0(本机方法)\n 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\n 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n 在 java.lang.reflect.Method .invoke(Method.java:606)\n 在 org.apache.hadoop.io.retry.RetryInvocalHandler.invokeMethod(未知来源)\n 在 org.apache.hadoop.io.retry.RetryInvocalHandler.invoke(未知来源)\ n 在 com.sun.proxy.$Proxy1.addBlock(未知来源)\n 在 org.apache.hadoop.hdfs.From.Code(未知来源)\n 在 org.apache.hadoop.hdfs.From.F(未知来源)源)\n 位于 org.apache.hadoop.hdfs.From.F(未知源)\n 位于 org.apache.hadoop.hdfs.The.run(未知源)\n由:org.apache.hadoop.ipc 引起。 RemoteException:java.io.IOException:文件/user/frolo/input/pg132.txt只能复制到0个节点,而不是org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(未知)的1\n源)\n 在 org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(未知源)\n 在 sun.reflect.GeneratedMethodAccessor6.invoke(未知源)\n 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:43)\n 在 java.lang.reflect.Method.invoke(Method.java:606)\n 在 org.apache.hadoop.ipc.RPC$Server.call(未知来源)\n 在 org.apache .hadoop.ipc.rdma.madness.Code(未知来源)\n 位于 org.apache.hadoop.ipc.rdma.madness.run(未知来源)\n 位于 java.security.AccessController.doPrivileged(本机方法)\n在 javax.security.auth.Subject.doAs(Subject.java:415)\n 在 org.apache.hadoop.security.UserGroupInformation.doAs(未知来源)\n 在 org.apache.hadoop.ipc.rdma.be。运行(未知来源)\n 在 …
我正在尝试优化称为LAMMPS的MPI + CUDA基准测试的性能(https://github.com/lammps/lammps).现在我运行两个MPI进程和两个GPU.我的系统有两个插座,每个插座连接到2个K80.由于每个K80内部包含2个GPU,因此每个插槽实际连接到4个GPU.但我只使用一个插槽中的2个内核和连接到该插槽的2个GPU(1个K80).MPI编译器是MVAPICH2 2.2rc1,CUDA编译器版本是7.5.
那是背景.我分析了应用程序,发现通信是性能瓶颈.我怀疑是因为没有应用GPUDirect技术.所以我切换到MVAPICH2-GDR 2.2rc1并安装了所有其他必需的库和工具.但MVAPICH2-GDR需要的Infiniband接口卡,不可用我的系统上,所以我必须运行时错误"通道初始化失败.在系统上未找到有效的HCAs".根据我的理解,Infiniband的卡则不需要,如果我们只是想在一个节点上使用1 K80内的GPU,因为K80具有这两个GPU的内部PCIe交换机.这些都是我的疑惑.为了清楚地说明问题,我将其列出如下:
在我的系统中,一个插座连接到两个K80.如果一个K80中的两个GPU需要与另一个K80中的GPU通信,那么如果我们想使用GPUDirect,我们必须拥有IB卡,是吗?
如果我们只需要在1 K80内使用两个GPU,那么这两个GPU之间的通信不需要IB卡,对吗?但是,MVAPICH2-GDR至少需要一张IB卡.那么有什么解决方法可以解决这个问题吗?或者我必须在系统上插入IB卡?