MPI を使用してネットワーク経由でオブジェクトを渡すことができるように、コードに単純なシリアル化/逆シリアル化メソッドを実装しようとしています。理想的な世界では、そのために使用Boost.SerializationしBoost.MPIていたでしょうが、アクセスできる一部のクラスターにはインストールされていないため、自分でこれを行うことを検討しています。
私の戦略は、すべてのオブジェクトをオブジェクトにシリアル化し、データ型として使用しstd::stringstreamてメッセージを送信することです。そのような場合、ポインターとメッセージのサイズとして渡します。MPI_SendMPI_CHARstd::stringstream::str()::c_str()std::streaingstream::str()::size()*sizeof(char)
std::stringstreamすべてをオブジェクトにシリアル化する方法を考え出しました。私の逆シリアル化メソッドも、std::stringstreamオブジェクトを受け取り、すべてを逆シリアル化して戻します。std::stringstreams の配列からオブジェクトを作成し、配列charからストリームへの余分なコピーを回避する方法がわからないことを除いて、これは正常に機能します。逆シリアル化メソッドを代わりにcharusingの配列で直接動作するように変更する必要がありますか?memcpy