良い一日!
これらのライブラリの違いは何ですか?
私は MPI のドキュメントを読み、asio の経験はほとんどありません。私にとっては、ネットワーク通信のさまざまな実装であり、それ以上のものではありません。
しかし、それぞれが異なる抽象化を導入し(これらの抽象化の同じレベルについてはわかりません)、異なるアプリケーション設計につながります。
あるライブラリまたは別のライブラリをいつ使用する必要がありますか? それぞれの状況で正しい決定を選択するために知っておくべきことは何ですか?
はい、Asio はいくつかのノード (および一般的に非常に一般的なフレームワーク) に適していますが、なぜ MPI はそのようなタスクにあまり適していないのでしょうか? MPI C ライブラリへの依存が限定的だとか、MPI が理解しにくいとか、スケーラビリティについてはどうでしょうか。Asio を使用すると、放送などを実装できますが、一方で MPI は単純なネットワーク アプリケーションを作成することを禁止していません。必要に応じて MPI で Asio 固有のロジックを書き直すのは概念的に難しいですか?
ソケットのような通信についてはどうですか。必須の場合、Asio または他のフレームワークのモジュールにそのような通信をカプセル化し、他の通信に MPI を使用できます。
私にとって、ソケットと MPI 標準は異なるネットワーク サービスであり、単純なクライアント サーバー ペアからいくつかの中程度の計算までの距離が 1 つのステップである現実の世界で何が基本的なのかは明確ではありません。また、MPI は Asio に比べてオーバーヘッドが大きいとは思いません。
悪い質問かもしれませんが、必要なのは ICE (Internet Communications Engine) のようなものだけでしょうか? さまざまな言語がサポートされており、(ZeroC が保証するように) 優れたパフォーマンスがサポートされています。
もちろん、「このライブラリを使用しないでください!」などのドキュメント トピックは見たことがありません。
ある場合はソケット、別の場合は非同期メッセージ、そして最後に重いミドルウェア プラットフォームです。開発のライフサイクルにおける明快さはどこにありますか? 公平な質問ではないかもしれませんが、この動物園を縮小するには、ある程度のポイントが必要です。