多节点连接管理

时间:2014-08-23 19:38:24

标签: linux networking network-programming network-protocols rdma

我正在使用Infiniband(ibv_ *)设计一个涉及多节点通信的应用程序。保持节点之间连接的标准方法是什么?我认为所有节点对的O(N ^ 2)连接是最简单的连接,但它有点愚蠢而且不可扩展。

1 个答案:

答案 0 :(得分:2)

问题有点简单,但真正的答案很长......

首先,请确保您确实需要使用ibv _... stuff。

您使用的是Infiniband还是ROCE?

接下来,分析您的应用程序的预期通信模式。

您谈论的是可扩展性,这可能意味着您需要大规模并行应用程序。 你真的需要发明自己的通信层吗? 你不能使用现有的解决方案吗? 有一个完整的CS领域可以解决这类问题 - HPC(高性能计算)。 也许MPI / UPC /其他一些图书馆会解决您的问题?

如果你仍然需要用很多机器编写自己的ibv _...应用程序,那么你需要考虑:

  • 你需要RC或UD连接吗?
  • 如果您有最新的Mellanox HCA(Connect-IB),那么还有一个选项DC
  • 可扩展性要求是什么?
  • 应用程序对延迟/ BW有多敏感?

总结:

  • 如果你需要一个大规模并行的IB动词应用程序,而你需要RC,你最好按需打开RC连接
  • 如果您必须提前打开所有RC连接,那么就没有其他方法 - O(n ^ 2)连接情况不可避免
  • 如果符合您的需求,请考虑使用UD
  • 检查现有解决方案是否符合您的需求