0

MPI は Message Passing Interface ですが、オブジェクトを送信する場合は、MPI_Send の前にシリアル化する必要があります。

MPI は、通信機能を開発者に公開し、それを満たすための多くのインターフェイスを提供します。しかし、なぜ MPI はシリアライゼーションを提供しないのでしょうか?

シリアライゼーションが MPI に属していないことはわかっていますが、シリアライゼーション テクノロジにはまだ最適化する価値があるのでしょうか?

ありがとう!

4

1 に答える 1

0

MPI はプラットフォームに依存しないメッセージ パッシングの標準であり、その操作が単純であるほど移植性が高くなります。その単純さのために、ほとんどの MPI ライブラリは異種アーキテクチャをサポートしています。異なる内部データ表現と異なる ABI を持つ 16、32、および 64 ビット マシンの混合クラスターでアプリケーションを実行できます。

C++ オブジェクトのシリアライゼーションは決して単純でも移植可能でもありません。お気に入りの C++ シリアライゼーション ライブラリをいつでも使用でき、MPI メッセージを使用して生成された BLOB を交換できます。MPI には、バイナリ データをそのまま送信するための特別な型さえありますMPI_BYTE

さらに、C++ のサポートは、今後の MPI 標準バージョン 3.0 で完全に削除され、C++ プログラマーは代わりに C 関数を使用することが推奨されます。

于 2012-05-15T15:19:16.887 に答える