[zeromq-dev] 0MQ User Guide

gonzalo diethelm gdiethelm at dcv.cl
Thu Aug 12 14:02:29 CEST 2010

Perhaps it would be worth expanding on this: The "Zero" in ZeroMQ stands
for "Zero Copy". Does it really? Or is it a pun on "zero cost", or some
such? And what is (explicitly) the relation between the name ZeroMQ and
the slogan, "Fastest. Messaging. Ever"? Etc.



Gonzalo Diethelm 

Gerente Desarrollo de Sistemas / CDO
Apoquindo 4001 piso 12
Santiago - Chile
+56 2 393-9073
gdiethelm at dcv.cl --  www.dcv.cl 


From: zeromq-dev-bounces at lists.zeromq.org
[mailto:zeromq-dev-bounces at lists.zeromq.org] On Behalf Of Oliver Smith
Sent: Wednesday, 11 August, 2010 22:07
To: 0MQ development list
Subject: Re: [zeromq-dev] 0MQ User Guide



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.

- Oliver

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20100812/d1f121af/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 5761 bytes
Desc: image001.jpg
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20100812/d1f121af/attachment.jpg>

More information about the zeromq-dev mailing list