我正在学习用于数值计算的python多处理,这里是我实现的示例代码,我猜问题应该是对map参数的错误使用。
def pow(a):
c = np.zeros(a.size)
for i in range(a.size):
c[i] = a[i] ** a[i]
return c
if __name__=='__main__':
n = int(1e6)
data = np.random.sample(n)
pool = mp.Pool(processes=8)
results = pool.map(pow, data)
new_res = pow(data)发布于 2019-10-15 15:56:38
并行计算从来都不是免费的。需要创建新的流程,并且需要在各个流程之间发送结果。与用C编写的循环相比,Python循环很慢,因为您可以在numpy中使用它们。并行计算只能帮助解决无法以其他方式优化的大型问题。您的示例非常简单,与以下示例相比,并行工作不会加速您的问题:
a = np.random.sample(n)
c = a ** ahttps://stackoverflow.com/questions/58389500
复制相似问题