[zeromq-dev] FastFlow queues

Martin Sustrik sustrik at 250bpm.com
Thu May 26 20:22:56 CEST 2011

Hi Pieter,

> Someone pointed me to this:
> http://www.1024cores.net/home/lock-free-algorithms/queues/fastflow
> and asked how 0MQ's queues compare.

It's very similar to what 0mq does internally.

There are some things that are not in 0MQ. Say the padding to avoid 
cache-line pollution. We have a patch for that by Martin Pales and John 
Dyte, but neither Martin Pales nor myself were able to show any speedup, 
so the patch was not applied.

On the other hand, 0mq has several optimisations that the paper doesn't 
account for afaics. First, we are using batching, ie. we move all the 
queued messages to the other thread in a single step when the receiving 
node asks for it. Second, there's some discussion in the article about 
embedded data vs. passing pointers to data. In 0MQ we do both depending 
on the message size. Embedded data is used for small messages, pointers 
are used for large messages.


More information about the zeromq-dev mailing list