我一直在使用新的Mac OSX 10.14处理批处理作业。 Ipyparallel运行良好,直到突然开始运行缓慢。第一次发生这种情况时,我重新启动了计算机,这似乎可以解决问题。下一次发生这种情况时,我(愚蠢地)终止了活动监视器上的Ipcluster进程。现在,当群集运行得更快时,它总是比单个内核运行得慢。
是否可以通过以这种方式终止过程来造成硬件/软件损坏?我还注意到,集群以前使用的不是我的CPU的100%(在我的6核计算机上为1200%)。我将应用程序复制到了较旧的Mac,并且在那里使用ipyparallel运行起来也更快。我尝试重新安装Anaconda,但仍然没有结果。
import numpy as np
from ipyparallel import Client
rc = Client(profile='default')
dview = rc[:]
with dview.sync_imports():
import numpy
data = np.array([np.random.rand(100000)] * 6)
%%timeit
result = np.zeros(data.shape)
for i in np.arange(0,6):
result[i,:] = np.sin(data[i,:])
result
--707 µs ± 11.6 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
%px import numpy as np
def sin_fun(i):
return np.sin(data[i,:])
dview.push({'data': data})
%%timeit
results = dview.map_sync(sin_fun, np.arange(0,6))
results
--74.3 ms ± 4.57 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
ipyparallel 6.2.3 py37_0 pyzmq 18.0.0 py37h0a44026_0 龙卷风5.1.1 py37h1de35cc_0