如何在 MPI 中传递 std::unique_ptr?

how to pass std::unique_ptr in MPI?

有没有办法通过 MPI send/recieve 传递 std::unique_ptrstd::shared_ptr?有什么方法可以在 MPI 中发送 class 的对象, 我知道可以传递结构,但是对象呢?

没有。不同的 MPI 进程有不同的地址空间。指针,包括 C++ 智能指针,对于不同的进程没有任何意义 - 因此传输它们没有意义。

相反,您需要传输底层对象。一种方法是使用序列化和 Boost.MPI.

最终你必须考虑并行数据结构,这是一个复杂的话题,没有普遍的建议。