Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Infiniband addressing—主机名到IB地址,不带IBoIP_C++_Linux_Infiniband - Fatal编程技术网

C++ Infiniband addressing—主机名到IB地址,不带IBoIP

C++ Infiniband addressing—主机名到IB地址,不带IBoIP,c++,linux,infiniband,C++,Linux,Infiniband,我刚刚开始熟悉infiniband,我想了解可以用来寻址infiniband节点的方法 基于代码的示例来自: 我可以使用IPoIB通过IP或主机名对单个节点进行寻址 另一种方法是直接使用端口GUID地址。但看起来您必须查找它们,它更类似于以太网mac寻址 然后是一个称为LID地址的东西,一个由fabric manager分配的16位本地地址。如何在运行时使用和确定LID地址?例如,我运行ibaddr并获得GID fe80::1a:4bff:ff0c:34e5 LID start 0x6 end

我刚刚开始熟悉infiniband,我想了解可以用来寻址infiniband节点的方法

基于代码的示例来自: 我可以使用IPoIB通过IP或主机名对单个节点进行寻址

另一种方法是直接使用端口GUID地址。但看起来您必须查找它们,它更类似于以太网mac寻址

然后是一个称为LID地址的东西,一个由fabric manager分配的16位本地地址。如何在运行时使用和确定LID地址?例如,我运行ibaddr并获得GID fe80::1a:4bff:ff0c:34e5 LID start 0x6 end 0x6


基本上,如果您不使用IPoIB,如何将主机名转换为地址或类似名称?是否有主机文件或其他等效文件?

列出的各种寻址方法之间有一个基本区别:

  • 用纯动词称呼
  • 用某种程度的抽象来寻址
  • 当一个包被“注入”到IB结构中时,它只通过LID路由,LID是包的本地路由报头的一部分。LID是本地ID,16位,由OpenSM分配(也有GID和全局路由头的情况,但我们先不考虑这个情况-它不会使解释变得更容易,而且此时显然不需要这个)

    这意味着,如果您使用纯IB谓词编写应用程序,则需要按LID寻址端点。 可以使用ibv_query_port()获取本地端口的LID-它是端口属性字段的一部分

    但您不必自己做所有的脏活——您可以使用抽象库,如librdmacm(RDMA连接管理器),在端点之间创建连接(我所说的“端点”是指RC qp),然后使用纯动词来实际发送/接收数据

    基本上,如果不使用IPoIB,如何将主机名转换为 地址或类似地址?是否有hosts文件或其他等效文件

    你不能,而且没有:( 如果你浏览了你链接到的博客上的,你会发现你需要:

    • 确定队列对的地址
    • 将地址传递给另一个节点(通过一些带外机制)
    这里的关键是“带外”。
    例如,MPI通过SSH交换所有这些地址(顺便说一句,SSH也可以在IPoIB上运行),一旦交换了此信息并连接了所有QP,数据就开始通过这些RC QP流动。

    感谢您提供的信息。运行IPoIB似乎是一条可行之路。甚至像这样的工具似乎也使用了一些带外机制来交换此类信息