ZMQ是一个面向传输无关的通用消息传递系统,具有一些有用的模式,如发布/订阅等。它只是在您的网络/程序/线程中移动字节,完全由您决定这些字节的含义。许多人在ZMQ之上使用诸如Google Protocol Buffers之类的序列化技术,以“使这些字节在任何地方都有意义”。OpenMPI非常适合分布式数学应用程序,并经常在超级计算机社区中用于将数据分散到其大型集群中的节点上。据我所知,它会在传输数据时执行矩阵转换,需要程序向OpenMPI描述其数据以便进行转换。此外,OpenMPI节点强调单个进程 - 它并不真正用于线程间通信。此外,它会接管您运行和构建代码的方式。