1

I'm designing an application involving multi-node communications using Infiniband (ibv_*). What is the standard way to keep connections between nodes? I'm thinking of O(N^2) connections for all pairs of node as the easiest one, but it's kind of silly and not scalable.

4

1 に答える 1

2

質問はちょっとシンプルで短いですが、本当の答えは非常に長いです...

まず第一に、本当に ibv_... を使う必要があるかどうかを確認してください。

Infiniband または ROCE を使用していますか?

次に、アプリケーションの予想される通信パターンを分析します。

スケーラビリティについて話しているのは、おそらく超並列アプリケーションを念頭に置いていることを意味します。独自の通信層を発明する必要が本当にあるのでしょうか? 既存のソリューションを使用できませんか? この種の問題を扱う CS 分野全体があります。それが HPC (ハイ パフォーマンス コンピューティング) です。おそらくMPI / UPC /その他のライブラリが問題を解決しますか?

大量のマシンで独自の ibv_... アプリケーションを作成する必要がある場合は、次のことを考慮する必要があります。

  • RC または UD 接続が必要ですか?
  • 最新の Mellanox HCA (Connect-IB) をお持ちの場合は、DC のオプションもあります。
  • スケーラビリティの要件は何ですか?
  • アプリケーションはレイテンシー/帯域幅に対してどの程度敏感ですか?

要約する:

  • 大規模な並列 IB 動詞アプリケーションが必要で、RC が必要な場合は、RC 接続をオンデマンドで開いたほうがよいでしょう。
  • すべての RC 接続を事前に開いておく必要がある場合は、他に方法はありません - O(n^2) 接続のケースは避けられません
  • ニーズに合う場合は、UD の使用を検討してください
  • 既存のソリューションが必要なものではないことを確認してください
于 2014-08-25T09:16:19.060 に答える