2

私はC++でp2p分散並行プログラミングソリューションを開発しようとしています。より高いスループットを得るには、AKKAが提供するアクターモデルのように、「前後に」並行してスケーラブルなネットワークソリューションが必要であることがわかりました。残念ながら、C++で利用可能なアクターモデルの信頼できるソリューションはありません。libcppaは利用可能ですが、ベータ品質でのみ利用できます。zeroMQやBoost.asioなどで同じことを行うスケーラブルで並行したソリューションはありますか?プログラム的に、私は非常に高速でスケーラブルな方法でフォローを行いたいと思っています。

個別のオブジェクトのセットを含むN個のノードのクラスターがあるとします。ノードがリモートオブジェクトを必要とする場合、ノードは要求を送信し、応答としてオブジェクトを返します。現在、私は次の方法でそれを行っています:

Request req = Network.request(Node x, objectId id);
req.waitforResponse( ); //Implemented through Conc-Hashmap of requests and wait & signal
Object obj = req.response().getObject();
// Do sth with object.

コードの最後の2行を自分で実装したくありません。ネットワークライブラリ自体でやってほしい。最善の解決策は、getObject()の呼び出しでのみブロックされるある種の「Future」データ構造で「req」オブジェクトを取得できる場合です。これは非常に一般的な問題であり、それに利用できる優れたオープンソースソリューションがあるはずです。そうでない場合は、並行ハッシュマップ(C ++ Intelスレッド)ベースのアプローチ以外のより効率的なソリューションを提案してください。残念ながら、それについての私のかなりの量のグーグルはあまりお金を払っていませんでした。

4

1 に答える 1

0

誰も答えなかったので。使用したソリューションを更新しています。イベントとコールバックを処理するために、スレッド プールで MsgConnect を使用しました。

于 2012-08-30T20:41:38.370 に答える