ZeroMQ 与 OpenMPI

ZeroMQ vs OpenMPI

有人可以提供更好的方法吗?

我有一些使用 ZeroMQ 的经验(不多),但没有使用 OpenMPI。

我知道两者都是消息传递的框架。这两个框架之间的主要区别是什么?

ZMQ 是一个与传输无关的通用消息传递系统,具有一些有用的模式,如 pub/sub 等。它只是在你的网络/程序/线程中移动字节,它完全取决于你知道那些字节是什么意思。许多人在 ZMQ 上使用 Google Protocol Buffers 这样的序列化技术到 "make those bytes mean something sensible everywhere".

OpenMPI 非常适合分布式数学应用程序,并且经常在超级计算机社区中使用,以将数据分散到大型集群中的节点上。据我所知,它会在传输数据时做矩阵转换之类的事情,需要一个程序来向 OpenMPI 描述它的数据,以便可以完成转换。此外,似乎非常强调 OpenMPI 节点是单个进程——它并不是真正用于线程间通信。此外,它有点接管您 运行 和构建代码的方式。