Can someone provide what is better and for which cases?
I have some experience with ZeroMQ (not much) and no with OpenMPI.
I know that both are frameworks for message passing. What are the main differences between this two frameworks?
Can someone provide what is better and for which cases?
I have some experience with ZeroMQ (not much) and no with OpenMPI.
I know that both are frameworks for message passing. What are the main differences between this two frameworks?
ZMQ is geared up as a transport-agnostic general purpose message passing system with some useful patterns like pub/sub, etc. It simply shifts bytes around your network / programs / threads, and it is entirely up to you what those bytes mean. Many people use a serialisation technology like Google Protocol Buffers on top of ZMQ to "make those bytes mean something sensible everywhere".
OpenMPI is heavily geared up towards distributed maths applications, and is often used within the super computer community to get data spread out across the nodes in their large clusters. AFAIK it will do things like matrix transformations whilst transferring data, requiring a program to describe it's data to OpenMPI so that the transforms can be done. Also there seems to be a heavy emphasis on OpenMPI nodes being a single processes - it's not really intended for inter-thread communications. Also, it kinda takes over how you run and build your code.