[zeromq-dev] Async::Worker, C++ task offloading.

Martin Sustrik sustrik at 250bpm.com
Thu Jul 22 11:10:04 CEST 2010

Oliver Smith wrote:

> Download: http://www.kfs.org/async/worker/
> Documentation: http://www.kfs.org/async/worker/manual/

We should somehow store pointers to 0MQ-related projects like this one 
on zeromq.org website, otherwise they'll be hard to find and hard to use.

Anyone any idea of how it should be done?

A simple "links" section?

> It combines concepts from OpenMP and Intel's TBB.

I am not the expert on either of the two, but the idea of making 0MQ 
infrastructure look more friendly to OpenMP/TBB developers looks like an 
interesting idea. If you are interested in discussing it, comparing the 
OpenMP/TBB/0MQ approaches, benchmarks etc. you can possibly write a blog 
about it to post on zeromq.org.

> This is a somewhat weak example because the work being done by the 
> worker is so trivial, but even so on a virtual quad-core machine 
> building with -O0 I see a 35-40% reduction in processing time.

Wrker being trivial, the large reduction in processing time is even more 

> I ran a second test with a ridiculously complicated formula involving 
> int-to-float, float-to-double, double-to-bool, sin, cos, abs, modulo etc 
> operations, and benchmarked running the array in serial vs parallel.
> Serial: 6784 miliseconds
> Paralle: 1401 miliseconds.
> And that's without any effort to take things like cache alignment, cache 
> lines etc into account, or any effort to tweak the number of tasks per 
> workload.


> I hope some of you will find this useful.
> If you want to provide feedback or questions, either follow up here, to 
> my email address or on the blog post linked from the manual page.
> Happy threading :)


More information about the zeromq-dev mailing list