map.py
36 lines
| 756 B
| text/x-python
|
PythonLexer
MinRK
|
r3666 | from IPython.parallel import * | |
MinRK
|
r3609 | ||
client = Client() | |||
MinRK
|
r3664 | view = client[:] | |
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
|
r3664 | @view.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 |