【发布时间】:2017-06-30 15:50:24
【问题描述】:
我试图了解如何使用 ipyparallel 和 jupyter notebook 进行分布式处理,所以我做了一些测试并得到了奇怪的结果。
from ipyparallel import Client
%px import numpy as np
rc = Client()
dview = rc[:]
bview = rc.load_balanced_view()
print(len(dview))
print(len(bview))
data = [np.random.rand(10000)] * 4
%time np.sin(data)
%%time #45.7ms
results = dview.map(np.sin, data)
results.get()
%%time #110ms
dview.push({'data': data})
%px results = np.sin(data)
results
%%time #4.9ms
results = np.sin(data)
results
%%time #93ms
results = bview.map(np.sin, data)
results.get()
开销是怎么回事? 在这种情况下,任务 i/o 是否受到限制,只有 1 个核心可以做得更好? 我尝试了更大的数组,但在没有并行处理的情况下仍然获得了更好的时间。
感谢您的建议!
【问题讨论】:
标签: python parallel-processing cluster-computing overhead