3

これらのグラフでさまざまなグラフアルゴリズムを実行する他のプロセスに対して読み取り専用で、共有メモリを介してグラフを共有するマネージャープロセスが必要です。この問題の調査中に出てきたいくつかの質問をしたいと思います。

  • 読み取り専用の shm で (おそらく独自の) グラフ構造を操作できるグラフ ライブラリはありますか? つまり、アルゴリズムはワークスペースと結果バッファーをローカル プロセス メモリに持つ必要があり、グラフ構造で宣言されたバッファーは使用しません。

  • 私が知っている有名な 2 つのライブラリはigraphBoostです。私は前者の C インターフェースについてよく知りませんし、Boost はまだ使用したことがありません。このトピックに関する経験はありますか (shm の互換性に関して)?

  • Boost ドキュメントを見ると、shm をサポートする Boost.Interprocess パッケージがあることがわかります。

    • 最初は、mmaped shm (Linux プラットフォーム) で手動で作成した shm を使用することを考えました。Boost はこの方法よりも優れており、推奨されますか?
    • Boost Graph ライブラリは、手動の shm または Interprocess と一緒にうまく機能しますか?

これらの質問に関する洞察とは別に、グラフ処理と共有メモリに関するあなたの経験について読んでいただければ幸いです。ありがとう!

4

1 に答える 1

1

Boostグラフライブラリでは、さまざまなグラフタイプは単なる概念です(http://www.boost.org/doc/libs/1_42_0/libs/graph/doc/graph_concepts.html)。

独自のグラフ構造を実装し、必要な概念を順守し、独自のデータにBGLアルゴリズムを適用できる必要があります(または、共有データをedge_listクラスhttp://www.boost.org/doc/にラップするだけです。 libs / 1_42_0 / libs /graph/doc/edge_list.html)。

共有メモリを見ているので、Parallel BGL( http://www.boost.org/doc/libs/1_42_0/libs/graph_parallel/doc/html/index.html)にも興味があるかもしれません。

HTH

于 2010-03-19T20:42:44.230 に答える