【发布时间】:2020-05-27 23:59:33
【问题描述】:
我正在尝试循环运行一些计算,每个计算都会创建、使用和关闭一个池。但是计算只运行一次,然后抛出一个错误:“Pool not running”。旧的当然没有运行,但是不应该创建新的吗?
下面是一个简化的例子,类似于我的代码。更奇怪的是,在我的实际代码计算中,在崩溃之前运行了 7 次,所以我真的很困惑是什么问题。任何建议表示赞赏!
from pathos.multiprocessing import ProcessingPool as Pool
def add_two(number):
return (number + 2)
def parallel_function(numbers):
pool = Pool(10)
result = pool.imap(add_two, numbers)
pool.close()
pool.join()
return(result)
sets=[
[1, 2, 3],
[2, 3, 4],
[3, 4, 5]
]
for one_set in sets:
x = parallel_function(one_set)
for i in x:
print(i)
【问题讨论】:
-
this 是您要找的吗?
-
不完全是。在此示例中,当我使用不同的池(通常具有不同数量的进程)时,他们希望在一个池中进行所有计算。关闭“parallel_function”内的池对我来说很重要,因为它将单独使用
标签: python multiprocessing python-multiprocessing pathos