[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.
Martin
More information about the zeromq-dev
mailing list