Infiniband ネットワークで接続されたマルチコア コンピューターがいくつかあります。リモートのアトミック操作を使用して、共有メモリのプールで低レイテンシの計算を行いたいと考えています。私はRDMAが進むべき道であることを知っています。各ノードで、データ共有用のメモリ領域 (および保護ドメイン) を登録します。
オンライン RDMA の例は、多くの場合、シングルスレッド サーバーとシングルスレッド クライアント間の単一の接続に焦点を当てています。ここで、各 Infiniband ノードでマルチスレッド プロセスを実行したいと考えています。以下の点が非常に気になります...
合計で n ノードと m スレッドのクラスターの場合、各ノードでいくつのキュー ペアを準備する必要がありますか? 具体的には、同じノード上の複数のスレッドが同じキュー ペアを共有できますか?
各ノードでいくつの完了キューを準備する必要がありますか? 各ノードでリモートの読み取り/書き込み/cas 操作を発行する複数のスレッドを用意します。共通の完了キューを共有すると、完了イベントが混同されます。スレッドに独自の個別の完了キューがある場合、実際には多数の完了キューが存在します。
このソフトウェアを作成する代わりに、既存のライブラリを使用することをお勧めしますか? (うーん、それとも私が書いてオープンソースにするべきですか? :-)
親切な提案をありがとうございます。