[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.
Popek]
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