map.py
35 lines
| 791 B
| text/x-python
|
PythonLexer
MinRK
|
r3666 | from IPython.parallel import * | |
MinRK
|
r3609 | ||
client = Client() | |||
MinRK
|
r4184 | view = client.load_balanced_view() | |
MinRK
|
r3609 | ||
MinRK
|
r3664 | @view.remote(block=True) | |
MinRK
|
r3609 | def square(a): | |
"""return square of a number""" | |||
return a*a | |||
squares = map(square, range(42)) | |||
# but that blocked between each result; not exactly useful | |||
square.block = False | |||
arlist = map(square, range(42)) | |||
# submitted very fast | |||
# wait for the results: | |||
squares2 = [ r.get() for r in arlist ] | |||
# now the more convenient @parallel decorator, which has a map method: | |||
MinRK
|
r4184 | view2 = client[:] | |
@view2.parallel(block=False) | |||
MinRK
|
r3609 | def psquare(a): | |
"""return square of a number""" | |||
return a*a | |||
# this chunks the data into n-negines jobs, not 42 jobs: | |||
ar = psquare.map(range(42)) | |||
# wait for the results to be done: | |||
squares3 = ar.get() | |||
print squares == squares2, squares3==squares | |||
# True |