In [1]:
from ipyparallel import Client

In [2]:
c = Client()

In [3]:
c.ids


Out[3]:
[0, 1, 2, 3]

In [4]:
c[::2]


Out[4]:
<DirectView [0, 2]>

In [12]:
def f(x):
    import time
    time.sleep(1)
    return x

In [13]:
dv = c[:]

In [14]:
result = dv.map(f, range(10))

In [15]:
if result.ready() and result.successful():
    print(result.get())

In [16]:
result.wait()
result.get()


Out[16]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [17]:
dv.map_sync(f, range(10))


Out[17]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [21]:
def g(x):
    import time
    import numpy as np
    
    r = np.random.randint(1, 5)
    time.sleep(r)
    return x

In [23]:
%%time

r = dv.map(g, range(10))
r.wait()
r.get()


CPU times: user 15.5 ms, sys: 4.41 ms, total: 19.9 ms
Wall time: 5.03 s

In [26]:
dv['a'] = 1

In [27]:
dv['a']


Out[27]:
[1, 1, 1, 1]

In [29]:
%%px 

import numpy as np
np.sum(np.random.random(10))


Out[0:2]: 3.9598471724034305
Out[1:2]: 5.0963413953606729
Out[2:2]: 5.9261122567004492
Out[3:2]: 2.8483396597205246

In [40]:
dv.scatter('x', range(10))


Out[40]:
<AsyncResult: scatter>

In [42]:
dv['x']


Out[42]:
[range(0, 3), range(3, 6), range(6, 8), range(8, 10)]

In [43]:
%px y = [i**2 for i in x]

In [47]:
list(dv.gather('y'))


Out[47]:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

In [48]:
dv.scatter('x', range(10))
%px y = [i**2 for i in x]
list(dv.gather('y'))


Out[48]:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

In [ ]: