[IPython-dev] Update on IPython recent developments

Stefan van der Walt stefan at sun.ac.za
Thu Jan 25 01:50:16 CST 2007


Hi Brian

On Wed, Jan 24, 2007 at 08:45:51PM -0700, Brian Granger wrote:
> > - Is there a limit on the size of data sent from the controller to an
> >   engine?  When working on one machine (with more than one engine), is
> >   data being sent around exactly as on a network (i.e. are there no
> >   optimisations made for working on a local machine?)  Would a UNIX
> >   socket be a viable alternative (to a socket) in this case?
> 
> Absolutely.  There are many limits that come into play:
> 
> 1.  The RAM on each involved machine.
> 
> 2.  The number of engines a controller is controlling.
> 
> 3.  The network protocol being used.  If you  are using the
> perspective broker protocols in the "saw" branch, the size limit for
> this protocol is set in pbconfig.py.  Just a warning though, if you
> exceed this limit on a pull/gather currently, things will hang.  On a
> push you will get a sensible exception raised.  We know how to solve
> the problem on pull/gather of too large objects, but haven't done that
> yet.

In order to solve the problem of sending big heaps of data, I was
thinking of breaking up the data, and providing it piece-wise to an
engine when free, i.e.

while len(data_queue) != 0:
    id = rc.sendToFree({'x':data_queue.pop()})
    rc.execute(id,'compute_longtime("x")',block=False)

which is slightly different from scatter, which immediately sends off
all the data to the different nodes.  But this method will make the
'gather'-operation harder to implement.  Clearly, I've got some more
thinking to do.

Thanks for taking the time to answer all my questions!

Regards
Stéfan


More information about the IPython-dev mailing list