如何在 MPI 中传递 std::unique_ptr?
how to pass std::unique_ptr in MPI?
有没有办法通过 MPI send/recieve 传递 std::unique_ptr
和 std::shared_ptr
?有什么方法可以在 MPI 中发送 class 的对象,
我知道可以传递结构,但是对象呢?
没有。不同的 MPI 进程有不同的地址空间。指针,包括 C++ 智能指针,对于不同的进程没有任何意义 - 因此传输它们没有意义。
相反,您需要传输底层对象。一种方法是使用序列化和 Boost.MPI.
最终你必须考虑并行数据结构,这是一个复杂的话题,没有普遍的建议。
有没有办法通过 MPI send/recieve 传递 std::unique_ptr
和 std::shared_ptr
?有什么方法可以在 MPI 中发送 class 的对象,
我知道可以传递结构,但是对象呢?
没有。不同的 MPI 进程有不同的地址空间。指针,包括 C++ 智能指针,对于不同的进程没有任何意义 - 因此传输它们没有意义。
相反,您需要传输底层对象。一种方法是使用序列化和 Boost.MPI.
最终你必须考虑并行数据结构,这是一个复杂的话题,没有普遍的建议。