为什么MPI不提供序列化接口?

时间:2012-05-15 14:25:11

标签: c++ performance serialization mpi protocol-buffers

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

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

我知道序列化不属于MPI,我想知道在序列化技术中还有值得优化的东西吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

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