問題タブ [rdma]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java Sockets on RDMA (JSOR) と Infiniband での jVerbs のパフォーマンス
JSOR と jVerbs の両方の基本的な理解があります。
どちらも JNI の制限を処理し、高速パスを使用して待ち時間を短縮します。どちらも、ユーザー動詞 RDMA インターフェイスを使用して、コンテキスト スイッチを回避し、高速パス アクセスを提供します。どちらにも、ゼロコピー転送のオプションがあります。
違いは、JSOR がまだ Java Socket インターフェースを使用していることです。jVerbs は新しいインターフェースを提供します。jVerbs には、Stateful Verbs Call と呼ばれるものもあり、RDMA リクエストのシリアル化の繰り返しを回避します。これにより、レイテンシが短縮されると言われています。jVerbs はよりネイティブなインターフェースを提供し、アプリケーションはこれらを直接使用できます。jVerbs SoCC 2013 の論文を読んで、jVerbs の上に jverbsRPC を構築し、Zookeeper と memcache 操作のレイテンシを大幅に短縮することを示しました。
どちらのドキュメントも、TCP/IP、SDP、および IPoIB に基づく通常の Java ソケットよりもパフォーマンスが優れていることを示しています。
JSOR と jVerbs のパフォーマンス比較はありません。jVerbs は JSOR よりもパフォーマンスが良いと思います。しかし、JSOR を使用すると、同じ Java ソケット インターフェイスを引き続き使用するため、既存のコードを変更する必要はありません。私の質問は、JSOR と比べて jVerbs を使用した場合のパフォーマンスの向上は何かということです。誰かがこの2つを扱ったことを知っているか経験がありますか? 比較データがあれば大変助かります。何も見つかりませんでした。
c++ - RDMA が mmaped リージョンで動作するとどうなりますか?
RDMA は、アプリケーションと OS カーネルの間の無駄なデータ コピーをバイパスする効率的な方法です。Mmap は、大きなファイルを単なるバイト配列であるかのように扱う効率的な方法です。
プロセス間の RDMA ネットワーク操作をサポートする MPI over Infiniband を使用しています。各 MPI プロセスには、他のユーザーと共有するための非常に大きなファイルがあります。
各 MPI プロセスは、大きなファイルごとに mmap 領域を作成し、それを他のユーザーと共有できますか? 各プロセスが RDMA (MPI の一方通行通信) 経由でメモリを読み取るかのように、任意のプロセスの任意のファイルを読み取れるようにしたいと考えています。
私の知る限り、アプリケーションが RDMA 操作を呼び出すと、「仮想メモリ アドレス」が NIC に直接渡されます。NIC は、仮想メモリ アドレスから物理メモリ アドレスへの変換を処理します。RDMA ドライバが NIC にリクエストを発行する前に興味のあるページをピン留めすれば、うまくいくと思います。経験のある人はいますか?:D
ありがとう
linux-kernel - ib_create_qp でキューのペアを作成できません
RDMA (InfiniBand) カーネル モジュールを作成しています。
これまでのところ、保護ドメイン、送信および受信キューの完了キューの作成に成功しています。
しかし、ib_create_qp を呼び出してキュー ペアを作成しようとすると、キュー ペアの作成に失敗します。私が書いたコードを以下に示します。
ib_create_qp(mypd,&init_qpattr);
ここでは、キュー ペアの作成に失敗した を除いて、すべてのクエリが機能します。
更新: キュー ペアを作成する前にメモリを登録しました。それでも、ib_create_qp の無効な引数エラー (エラー コード -22) が表示されます。
rdma - サーバーの RDMA サポートを気にせずに、クライアント側のみに RDMA (RoCE) を実装することは可能ですか?
RDMA を使用して Windows アプリケーションの待ち時間を短縮する必要がありますが、通信の一方の側、つまりもう一方の側に関係なく RDMA (カーネル バイパス) の実装のみを制御できます。
サーバーの RDMA サポートを気にせずに、クライアント側のみに RDMA (RoCE) を実装することは可能ですか?
linux-kernel - カーネルモジュール内から RDMA Mellanox ライブラリを使用することは可能ですか?
RDMA メッセージを送受信できるカーネル モジュールを開発したいと考えています。Mellanox ライブラリをカーネル空間から呼び出すことができるかどうか疑問に思っています。
カーネルモジュールから Mellanox RDMA 関数を呼び出すことはできますか?
回答:ここに動作するコードがあります: https://github.com/jcarreira/disag-firebox