Infiniband寻址-主机名不带IBoIP的IB地址 [英] Infiniband addressing - host names to IB address without IBoIP

查看:90
本文介绍了Infiniband寻址-主机名不带IBoIP的IB地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚开始熟悉infiniband,我想了解可用于解决infiniband节点的方法.

I've just started getting familiar with infiniband and I'm wanting to understand the methods you can use to address the infiniband nodes.

基于该代码的示例来自:使用IB动词进行RDMA读写我可以使用IPoIB通过IP或主机名来寻址单个节点.

Based on the code is the example from: RDMA read and write with IB verbs I can address individual nodes by IP or hostname using IPoIB.

另一种方法是直接使用端口GUID地址.但看起来您必须查找这些内容,并且与以太网mac寻址更相似.

Another way is to use a port GUID address directly. But it looks like you'd have to look those up and is more similar to ethernet mac addressing.

然后是一个称为LID地址的东西,这是结构管理器分配的16位本地地址.如何在运行时使用和确定LID地址?例如,我运行ibaddr并获得GID fe80 :: 1a:4bff:ff0c:34e5 LID开始0x6结束0x6

Then then is something called an LID address, a 16bit local address assigned by the fabric manager. How do I use and determine at runtime an LID address? for example, I run ibaddr and get GID fe80::1a:4bff:ff0c:34e5 LID start 0x6 end 0x6

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

Basically, if you're not using IPoIB how do you convert host names to addresses or similar? Is there a hosts file or some equivalent?

推荐答案

要列出的各种寻址方法之间存在基本差异:

There is a basic difference between the various addressing methods that you are listing:

  1. 使用纯IB动词进行称呼
  2. 使用某种抽象级别进行寻址

将数据包注入"到IB结构中时,仅由LID路由,这是数据包本地路由头的一部分.LID是由OpenSM分配的本地ID(16位)(也有GID和全局路由标头的情况,但我们不考虑这种情况-它不会使解释变得更容易,并且您显然不需要在此使用它)点).

When a packet is "injected" into the IB fabric, it is routed by LID only, that is part of Local Routing Header of a packet. LID is Local ID, 16 bits, assigned by OpenSM (there's also a case of GID and Global Routing Header, but let's leave this case aside - it won't make the explanation any easier, and you obviously don't need this at this point).

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

This means that if you're writing your application using pure IB verbs, you will need to address the endpoints by LID. You can obtain the LID of a local port with ibv_query_port() - it is part of the port attribute fields.

但是您不必自己做所有繁琐的工作-您可以使用诸如librdmacm(RDMA连接管理器)之类的抽象库在端点之间创建连接(并用端点"表示RC QP),然后使用纯动词来实际发送/接收您的数据.

But you don't have to do all the dirty work yourself - you can use abstraction libraries such as librdmacm (RDMA Connection Manager) to create connection between endpoints (and by "endpoints" I mean RC QPs), and then use pure verbs to actually send/receive your data.

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

Basically, if you're not using IPoIB how do you convert host names to addresses or similar? Is there a hosts file or some equivalent?

您不能,也没有:(如果您通过您链接到的该博客上的早期帖子,您需要执行以下操作:

You can't, and there isn't :( If you go through the earlier post on that blog that you linked to, you see that you need to:

  • 确定队列对的地址.
  • (通过某种带外机制)将地址传达给另一个节点.

此处的关键项是带外".例如,MPI通过SSH交换所有这些地址(BTW也可以在IPoIB之上运行),一旦交换了此信息并连接了所有QP,数据便开始通过这些RC QP流动.

The key item here is "out-of-band". For instance, MPI exchanges all these addresses over SSH (which, BTW, can also run on top of IPoIB), and once this info is exchanged and all the QPs are connected, data starts flowing via these RC QPs.

这篇关于Infiniband寻址-主机名不带IBoIP的IB地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆