[zeromq-dev] 0MQ User Guide

Matt Weinstein matt_weinstein at yahoo.com
Thu Aug 12 04:30:38 CEST 2010

On Aug 11, 2010, at 10:07 PM, Oliver Smith wrote:

> Suggestion:
> Before "Show us the code" - you need a short excerpt on "Isn't  
> message passing expensive" where you can mention the lock free  
> element of ZeroMQ and expand on the "N-to-N".
> Message passing? Sounds messy and expensive.
> Actually, message passing is just a fancy name for the hand-off of  
> marshalled data to someone else. In the simplest, thread-to-thread  
> case, it's as simple as passing a pointer. The "Zero" in ZeroMQ  
> stands for "Zero Copy".
> In fact, if you've done any work with threads you're probably  
> already a message passer - you've just been doing it the hard way  
> until now.
> True message passing eliminates the need for mutexes, resource  
> locks, condition queues and signals. That makes parallel programming  
> easier, cleaner and in most cases it more than pays for the minor  
> overhead of a true message passing system. ZeroMQ can compete with  
> tools like OpenMP and TBB for sheer performance, but it can also  
> work alongside them.
> But best of all, the API doesn't change when you need to step up  
> from passing messages between threads of a single process to  
> multiple processes or even multiple machines. It's as easy as  
> changing the addresses of your connections. ZeroMQ quietly handles  
> multiple connections on a single socket for you so you don't have to  
> worry about the fiddly networking stuff when you come to make the  
> transition.
> I'm not sure people are going to register the significance of N-to-N  
> in the 100 word section, the transparent multiplexing of the ZeroMQ  
> sockets is one of the mind blowing things.
> Also... Have you considered perhaps considering the term "Mailbox"  
> or "handle" or "descriptor" for the sockets? The more distance you  
> can put between the mundane concept of a BSD/TCP socket and a ZeroMQ  
> zap-pow-kabloom endpoint the better maybe.

Typical issue.

When we were working on (one of the first) network transparent OSs,  
and all of the machinery disappeared (no rcp/scp, no remote  
logins, ...), users didn't understand how they would get a file at a  
distant server without doing anything.  The corresponding metaphoric  
question was: "How do you explain a window to a caveman?" [attr. to G.  

We've got a similar problem.  We have to find a way to communicate the  
essential Zen (Ø-ness) of this platform - unification of ubiquitous  
transports into an efficient conceptual and operational framework.

This is the platform's greatest contribution.

Of course, I'm not going to get into the Tao of ØMQ -- yet.


> - Oliver
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

More information about the zeromq-dev mailing list