[zeromq-dev] 0MQ User Guide

Oliver Smith oliver at kfs.org
Thu Aug 12 04:07:00 CEST 2010


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.

- Oliver
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20100811/f6291c88/attachment.htm>


More information about the zeromq-dev mailing list