0

私は、各ノードが RESTful API を介してローカル アプリケーションとやり取りし、拡張機能やランタイムのカスタマイズなどをサポートする分散システムを作成しています。これは、広域にわたるエンタープライズ サービス バスに少し似ていますが、他にも多くのことが行われています。当面の質問に関連しています。

私は MPI と Asio の両方について少し読んだことがあります。最初は Asio に設定されていましたが、MPI を見つけました。また、Asio が私にとってより良いソリューションであると考えています。MPI は、私が必要としない多くのものと、私が望むよりも高いレベルの抽象化を提供しているようです。送信されます。(たとえば、理想的に準拠するパケット構造を既に設計しています)

だから私の主な質問: Asio でより低いレベルから始めることは価値がありますか、それとも私が探しているものに MPI を移植しようとするべきですか? さらに、開発を支援する MPI または Asio を使用する「スケルトン アプリケーション」はありますか? (実際、私は C++ を 100% 使用するのが初めてです.. ;) または、それらを組み合わせて使用​​することは理にかなっていますか?

Perl Object Environmentを使用して、このプロジェクトの大部分を Perl で既に実装していることは注目に値するかもしれません。Perl Object Environment自体は、大量のネットワーク ライブラリを備えた単なる非同期イベント システムです。

また、違いがある場合は、スレッドを使用するのが理想的です。正直なところ、上記でほのめかしたように、私はまだ Boost をまったく使用していません。

4

1 に答える 1

0

私は Asio について何も知らないということから始めなければなりませんが、ウェブサイトを 2 分間スキャンして問題を説明したところ、おそらくどちらでもうまくいくように思えますが、Asio の方が簡単かもしれません。MPI は、実際には汎用ネットワーク通信向けというよりは、プロセスとアプリケーションのセットがもう少し静的なアプリケーションの実行向けに設計されています。必要に応じてクライアント/サーバー スタイルのインターフェイスを提供しますが、ライブラリの主な焦点ではありません。

MPI は、パケット構造が既に設計されている場合、使用するのもより困難です。MPI は、パケットやプロセスの場所などについて心配する必要性を抽象化するのに最適ですが、アプリケーションでそのすべてをすでに考慮している場合は、すでに大変な作業を行っています。

Asio と MPI についての他の議論が少なくとも 1 つあり、それを参照して (分散アプリケーションの場合、ASIO と MPI のどちらを使用するか? ) より多くの意見を得ることができます。

于 2013-06-27T13:27:24.580 に答える