2009-09-21 8 views
7

私はC++で分散アプリケーションフレームワークを作成しています。要件の1つは、分散共有メモリの提供です。自分のことを一から書き直すのではなく、ホイールを作り直すこともできる。私は、既存のオープンソースライブラリがあるかどうかを知りたいと思った。C++用分散共有メモリライブラリ?

ここにいる人は誰でも、良いC++ DSMライブラリの経験がありますか?

理想的には、ライブラリはMRMW(複数のリーダー/複数のライター)をサポートしますが、必要に応じてMRSW(複数のリーダー、シングルライター)を使用できます。私はLinuxで開発しています。

答えて

3

memcachedとお考えですか?

これはネットワークに分散されており、非常に高速です。

多くの言語用のバインディングがあり、異なるOSからアクセスでき、複数のライターの複数のリーダーをサポートします。

+1

これはOPの実用的な必要性を解決したかもしれないが、質問に答えない。 Memcachedは分散キー値キャッシュであり、DSM(https://en.wikipedia.org/wiki/Distributed_shared_memory)ではありません。これは古い考えです[1,2]、今は成熟した図書館があるはずです。 1. https://www.usenix.org/publications/library/proceedings/usenix-nt97/presentations/itzkovitz.ppt 2. https://www.usenix.org/legacy/events/osdi99/full_papers/itzkovitz/itzkovitz .pdf – ahcox

0

ACE libraryを試してみてください。あなたには良いものがたくさんあります。彼らはそこにShared_memoryクラスを持っていますが、私はそのDSMを確信していません - そうでなければ、あなたは興味深いかもしれない他のネットワーク/分散されたものをたくさん持っています。

+0

"この基本クラスは、System V共有メモリと" BSD "mmapを共通のAPIに適応させるため、DSM実装ではなく、単一ノード上のIPCメカニズムです(ala、millipede http://static.usenix .org/publications/library/proceedings/usenix-nt97/presentation/itzkovitz.ppt、millipage http://static.usenix.org/events/osdi99/full_papers/itzkovitz/itzkovitz_html/node12.htmlなどhttp:// dl.acm.org/citation.cfm?id=296806.296830#references) – ahcox

6

エース共有メモリは、1つのプラットフォームで共有するためのものです。

分散共有メモリは、処理するトランザクション性に関する問題があるため、非常に重要ではありません。分散共有メモリ(コピーの場合でも)を効果的に使用するには、障害の発生時に回復力が必要な分散同期アルゴリズムとプロトコルが必要です。 (Shshooot!AINTいつもの方法!)

重要な研究論文は、これらの問題これは本当にだろう「独自のローリング」という警告である

(Taubenfieldの本の章の文献目録の一部を参照)について書かれています重要なプロジェクトとなります。