可能重复:
如何并行化一个简单的 python 循环?
我对 Python 很陌生(使用 Python 3.2),我有一个关于并行化的问题。我有一个 for 循环,我希望在 Python 3.2 中使用“多处理”并行执行:
def computation:
global output
for x in range(i,j):
localResult = ... #perform some computation as a function of i and j
output.append(localResult)
总的来说,我想在 i=0 到 j=100 的范围内执行此计算。因此,我想创建许多进程,每个进程都使用总范围的子域调用函数“计算”。关于如何做到这一点的任何想法?有没有比使用多处理更好的方法?
更具体地说,我想执行域分解,我有以下代码:
from multiprocessing import Pool
class testModule:
def __init__(self):
self
def computation(self, args):
start, end = args
print('start: ', start, ' end: ', end)
testMod = testModule()
length = 100
np=4
p = Pool(processes=np)
p.map(yes tMod.computation, [(length, startPosition, length//np) for startPosition in range(0, length, length//np)])
我收到一条提到 PicklingError 的错误消息。有什么想法可能是这里的问题吗?