0

MPI 是消息传递接口,但是当您要发送一个对象时,您必须在 MPI_Send 之前进行序列化。

MPI 向开发者公开了通信功能,并提供了大量的接口来满足它。但是为什么 MPI 不提供序列化呢?

我知道序列化不属于 MPI,不知道序列化技术还有什么值得优化的地方吗?

谢谢!

4

1 回答 1

0

MPI 是一种独立于平台的消息传递标准,它的操作越简单,它的可移植性就越高。由于这种简单性,大多数 MPI 库都支持异构架构——您可以在具有不同内部数据表示甚至不同 ABI 的 16、32 和 64 位机器的混合集群上运行应用程序。

C++ 对象的序列化既不简单也不可移植。您始终可以使用您最喜欢的 C++ 序列化库并使用 MPI 消息交换它生成的 blob。MPI 中甚至还有一种特殊类型可以按原样发送二进制数据 - MPI_BYTE

此外,即将发布的 MPI 标准版本 3.0 中将完全删除对 C++ 的支持,并鼓励 C++ 程序员改用 C 函数。

于 2012-05-15T15:19:16.887 回答