<div>I have my first performance numbers for throughput with the new parallel code riding on ZeroMQ, and results are fairly promising.  Roundtrip time for ~512 tiny tasks submitted as fast as they can is ~100x faster than with Twisted.</div>

<div><br></div><div>As a throughput test, I submitted a flood of many very small tasks that should take ~no time:</div><div><div>new-style:</div><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><div>def wait(t=0):</div>

<div>    import time</div><div>    time.sleep(t)</div><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"></div><div>submit:</div><div>client.apply(wait, args=(t,))</div><div><br></div><div>Twisted:</div><div>

task = StringTask("import time; time.sleep(%f)"%t)</div><div>submit:</div><div>client.run(task)</div><div><br></div><div>Flooding the queue with these tasks with t=0, and then waiting for the results, I tracked two times:</div>

<div>Sent: the time from the first submit until the last submit returns</div><div>Roundtrip: the time from the first submit to getting the last result</div><div><br></div><div>Plotting these times vs number of messages, we see some decent numbers:</div>

<div>* The pure ZMQ scheduler is fastest, 10-100 times faster than Twisted roundtrip</div><div>* The Python scheduler is ~3x slower roundtrip than pure ZMQ, but no penalty to the submission rate</div><div>* Twisted performance falls off very quickly as the number of tasks grows</div>

<div>* ZMQ performance is quite flat</div><div><br><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"></div><div>Legend:</div><div>zmq: the pure ZMQ Device is used for routing tasks</div><div>lru/weighted: the simplest/most complicated routing schemes respectively in the Python ZMQ Scheduler (which supports dependencies)</div>

<div>twisted: the old IPython.kernel</div><div><br></div><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><div><img src="cid:ii_12bd2af6afc0eab2" alt="roundtrip.png" title="roundtrip.png"></div><div><img src="cid:ii_12bd2af38d3422df" alt="sent.png" title="sent.png"><br>

</div><div>Test system:</div><div>Core-i7 930, 4x2 cores (ht), 4-engine cluster all over tcp/loopback, Ubuntu 10.04, Python 2.6.5</div><div><br></div><div>-MinRK</div><div><a href="http://github.com/minrk">http://github.com/minrk</a></div>