Я изучаю параллельное вычисление в ipython. Я наткнулся на пример,Передача различных аргументов для параллельных клиентов ipython
from ipyparallel import Client
rc = Client()
rc.block = True
print(rc.ids)
def mul(a,b):
return a*b
dview = rc[:]
print(dview.apply(mul, 5, 6))
print(rc[0].apply(mul, 5, 5))
print(rc[1].apply(mul, 5, 9))
В приведенном выше коде, когда dview.apply
называется, она проходит один и тот же набор аргументов для всех клиентов. Я научился звонить каждому клиенту отдельно. Но если клиенты должны выполнять задачи с интенсивным использованием данных, есть ли способ передать разные аргументы через dview.apply
, поскольку это скорее точка параллельного вычисления.
Если нет другого способа, можем ли мы сделать асинхронный вызов каждого клиента, поэтому задачи будут выполняться параллельно, а не ждать результатов от первого клиента при вызове отдельных клиентов?.