gpt4 book ai didi

python - multiprocessing.Pool 示例

转载 作者:IT老高 更新时间:2023-10-28 22:22:30 31 4
gpt4 key购买 nike

我正在学习如何使用 multiprocessing ,并找到 the following example .

我想对值求和如下:

from multiprocessing import Pool
from time import time

N = 10
K = 50
w = 0

def CostlyFunction(z):
r = 0
for k in xrange(1, K+2):
r += z ** (1 / k**1.5)
print r
w += r
return r

currtime = time()

po = Pool()

for i in xrange(N):
po.apply_async(CostlyFunction,(i,))
po.close()
po.join()

print w
print '2: parallel: time elapsed:', time() - currtime

我无法得到所有 r 值的总和。

最佳答案

如果您要像这样使用 apply_async,那么您必须使用某种共享内存。此外,您需要放置启动多处理的部分,以便它仅在由初始脚本调用时完成,而不是池进程。这是使用 map 的一种方法。

from multiprocessing import Pool
from time import time

K = 50
def CostlyFunction((z,)):
r = 0
for k in xrange(1, K+2):
r += z ** (1 / k**1.5)
return r

if __name__ == "__main__":
currtime = time()
N = 10
po = Pool()
res = po.map_async(CostlyFunction,((i,) for i in xrange(N)))
w = sum(res.get())
print w
print '2: parallel: time elapsed:', time() - currtime

关于python - multiprocessing.Pool 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4413821/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com