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@dcv.cl --  www.dcv.cl


From: zeromq-dev-bounces@lists.zeromq.org [mailto:zeromq-dev-bounces@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

 

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


Declaración de confidencialidad: Este Mensaje esta destinado para el uso de la o las personas o entidades a quien ha sido dirigido y puede contener información reservada y confidencial que no puede ser divulgada, difundida, ni aprovechada en forma alguna. El uso no autorizado de la información contenida en este correo podrá ser sancionado de conformidad con la ley chilena. Si usted ha recibido este correo electrónico por error, le pedimos eliminarlo junto con los archivos adjuntos y avisar inmediatamente al remitente, respondiendo este mensaje.

Disclosure: This Message is to be used by the individual, individuals or entities that it is addressed to and may include private and confidential information that may not be disclosed, made public nor used in any way at all. Unauthorized use of the information in this electronic mail message may be subject to the penalties set forth by Chilean law. If you have received this electronic mail message in error, we ask you to destroy the message and its attached file(s) and to immediately notify the sender by answering this message.