我试图利用我的处理器的多核来加速NumPy计算,但是当设置multiprocessing.Pool()
时,代码反而会变慢,这是因为负载与设置线程的时间相比微不足道吗
下面是我试图使用multiprocessing
加速的代码:
import multiprocessing as mps
from time import time
import matplotlib.pyplot as plt
def f(x,y):
return np.sin(x)+np.cos(y)-x*y
if __name__=="__main__":
x = np.arange(-10,10,0.01); y = x
with mps.Pool(4) as pool:
start = time()
x, y = pool.apply(np.meshgrid,(x,y))
z = pool.apply(f,(x,y))
plt.contour(x,y,z)
print("Took: {} seconds".format(time()-start))
plt.show()
有multiprocessing.Pool()
时,操作大约需要2.4秒,而没有multiprocessing.Pool()
时,操作大约需要0.78秒
目前没有回答
相关问题 更多 >
编程相关推荐