我想尝试在python-2.x中使用multiprocessing.Pool
进行并行计算。你知道吗
我想出了以下简单的代码。 不幸的是,我无法生成任何错误消息。你知道吗
有人能给我指出代码可能出错的正确方向吗?你知道吗
import numpy as np
import multiprocessing as mp
import timeit
def fun(i,j):
return i+j
num=2
num_cores = mp.cpu_count()
p = mp.Pool(num_cores)
results = np.array([])
tasks = np.array([(i, j) for i in range(0,num) for j in range(0, num)])
if __name__ == '__main__':
results = np.array(p.map(fun,tasks))
print results
这里的主要问题是,要作为参数传递给worker的元组被包装在
numpy.ndarray
中,因此它只是一个参数,因为numpy.ndarray
没有展开。你知道吗这应该适合您:
此脚本的输出为:
我添加了
from __future__ import print_function
语句,请参见here它的好处。和here is the according PEP 3105 Make print a function。你知道吗最后一点:可以从用户senderle here找到一个更全面的解决方案。你知道吗
相关问题 更多 >
编程相关推荐