[IPython-user] Time taken to push. Adjusting MPI parameter for processor affinity. No effect.

mark starnes m.starnes05@imperial.ac...
Mon Nov 3 06:21:24 CST 2008

Hi Brain, thanks for the response.

I've included my message trail below, in chronological order.  It's becoming more interesting now, as
I'm about to start pushing 500Mb matrices around!

Best regards,


Hi everyone,

I'm pushing a string with 174E6 characters to the cores on my multi-core processor, and it's taking a long time; more than
a few minutes per core.  I was expecting this to be fast.  Is this the behaviour I should expect?  If not, is there a way to
accelerate the push?

Thanks in advance,

Hello again,

I got some results using the following snippet:

import time
from IPython.kernel import client
mec = client.MultiEngineClient()
res = []
s = [1, 1E1, 1E2, 1E3, 1E4, 1E5, 1E6, 1E7, 2E7, 4E7]
for i in s:
   b = int(i) * '0'
   start = time.time()
   mec.push(dict(b=b), targets = [0])
   stop = time.time()
   res.append(stop - start)
loglog(s, res)


res = [0.010050058364868164,

showing a 4.0E5 characters per second transfer rate, for large strings (from the last result).
I'd be interested to know what other people can get!  (this was on a Gigabyte P35-DS4 mobo, with
a Q6600 Intel chip at 2.4GHz, memory running at..  looking it up, now).

I'd also be interested if anyone knows how I can speed this up!

Thanks in advance,

Update:  The memory is running at 800MHz.


Hi everyone.

I'm wondering if these results seem slow.  From


300Mb/s is achieved using a Pentium II system, apparently faster than my test
result of 450 k characters / second.  True, I don't really know the size of the object
I'm sending, but my performance seems low, nonetheless.

Can anyone pass comment?

Thanks in advance,


Well, I answered my own question.  An installation using PyPar, yielded
transfer rates greater than 10**8 characters per second, though this installation
is on a different machine.

I'll try install (fix, actually) it, on the same machine I used originally,
for a direct comparison.

In the meantime, I'm still interested in the results other people get, and
how to accelerate IPython's push.



Hello again.

I found another machine.  This one's a Pentium 4, 3.2GHz, with 'quad pumped' 800MHz RAM.
It's a machine dating back to around 2002.  It yields:


giving 2.7E5 characters / second.  Worse than the other machine - expected given the
machine is slower, all round.  This machine, however, yields a 3.3E8 push rate, with PyPar.

If anyone can help me speed up my IPython's push, I'd appreciate it!

Best regards,



Brian Granger wrote:
> Mark,
> I don't see the "code snippet above." or your original question.
> Could you repost so we can help?
> But, from what you have written here, it looks like you are wanting
> push to be faster?  One thing to keep in mind is that push/pull in
> IPython don't use MPI, so no MPI tuning will improve their
> performance.  But, we may have some ideas for you if you can give us a
> better idea of what you are trying to do.
> Thanks,
> Brian
> On Sat, Nov 1, 2008 at 3:05 AM, mark starnes <m.starnes05@imperial.ac.uk> wrote:
>> Hi everyone,
>> A short update.  This multi-processor, shared memory machine shows no performance change
>> with the code snippet above, when I set 'processor affinty' to 1.  I got the tip from,
>> http://www.open-mpi.org/faq/?category=tuning
>> and remain interested in the results anyone else gets / tips for improving push times.
>> Best regards,
>> Mark.
>> _______________________________________________
>> IPython-user mailing list
>> IPython-user@scipy.org
>> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user

More information about the IPython-user mailing list