[IPython-User] Parallel question: Sending data directly between engines
Fernando Perez
fperez.net@gmail....
Sun Jan 8 01:01:53 CST 2012
On Sat, Jan 7, 2012 at 10:59 PM, MinRK <benjaminrk@gmail.com> wrote:
>
> You can even do full map/reduce in one line with view.map_async and the
> builtin reduce function. The map will be evaluated remotely and in
> parallel, but the reduce will be evaluated locally, if asynchronously:
>
> def reduce_func(a,b):
> """simplest reduce func: sum"""
> return a+b
>
> def map_func(n):
> """take about a millisecond to return a random integer"""
> import random
> time.sleep(.001*random.random())
> return random.randint(n)
>
> reduce(reduce_func, view.map_async(map_func, range(10000)))
>
> is equivalent to:
>
> reduce(reduce_func, map(map_func, range(10000)))
>
> And for load-balanced views, this can even be done out of order in case
> early results may take more time to arrive than later ones:
>
> reduce(reduce_func, lbview.map_async(map_func, range(10000,1,-1),
> ordered=False))
Très, très cool... Mandatory new example :)
f
More information about the IPython-User
mailing list