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
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev