2

アプリケーションに簡単に組み込むことができる分散コンピューティング プラットフォームを探しています。

MPI (およびその実装の一部) を調査しましたが、私が見たところ、タスクごとに実行可能ファイルを作成する必要があり、それは を使用して起動されmpirunます。私はそれを除外しません。外部の実行可能ファイルとしてではなく、アプリケーションに埋め込んでおきたいだけです (可能な場合)。

SO ユーザーであるあなたは、そのようなフレームワーク (できればオープンソース) を知っていますか? また、私の決心をするために、いくつかの使用例がいいでしょう。

ソリューションが展開される LAN 内のステーションは異種であるため、可能であればクロスプラットフォーム ソリューションに関心があります。

提案や特にコード例は大歓迎です。

4

2 に答える 2

3

MPI 以外に、AMQP、 ZeroMQCilk、Actors の4 つのシステムが思い浮かびます。

AMQP はメッセージ パッシングを使用してシステム間の通信を行い、中央のメッセージ ブローカーを使用してメッセージを処理/配布します。一部の実装は、受信者への適切な配信を保証しますが、低速です (TCP と同様)。一部の実装はファイア アンド フォーゲットであり、保証された配信を許可しませんが、より高速です (UDP と同様)。注意 AMQP はプロトコルであり、実装ではありません。一般的な実装には、ActiveMQおよびRabbitMQが含まれます。

ZeroMQは、中央のメッセージ ブローカーを除いた AMQP に少し似ています。それは基本的にアクター スタイルであり、よりプログラム的であり、エンド ツー エンドの方法でシステムを設計できると私は信じています。これは分散化されており (中央のメッセージ ブローカーはありません)、ベンチマークは AMQP 実装よりもはるかに高速であることを示しているようです。

C/C++ で動作するように設計された MIT から十分にサポートされているプロジェクトであるという事実以外に、Cilkの経験はあまりありません。

アクターは、Erlang と最近ではAkkaプロジェクト (Scala、Java) によって一般化された、ローカル/分散同時実行の両方を支援するための抽象化です。私が知っている C++ 互換バージョンは、Theron、Actor-CPP、および libcppa ですが、これらのどれがリモート アクターをサポートしているかはわかりません。

于 2012-09-29T22:04:30.337 に答える
0

Hazelcastはまさにそのようなものだと思います。埋め込み可能な分散コンピューティング。しかし、それはCではなくJavaにあります。しかし、JavaからCを呼び出すことができます。

于 2013-02-01T14:05:17.063 に答える