Parallel processing 具有多处理功能的简单并行计算&x27;行不通
我有一个简单但非常耗时的函数,我想将其并行化以加快速度。这是Jupyter笔记本上的Python 3.6。我是这样做的:Parallel processing 具有多处理功能的简单并行计算&x27;行不通,parallel-processing,jupyter-notebook,multiprocessing,python-3.6,Parallel Processing,Jupyter Notebook,Multiprocessing,Python 3.6,我有一个简单但非常耗时的函数,我想将其并行化以加快速度。这是Jupyter笔记本上的Python 3.6。我是这样做的: from multiprocessing import Pool def func(x): return x**2 y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] with Pool(5) as pool: results = pool.imap_unordered(func, y) for r in results: prin
from multiprocessing import Pool
def func(x):
return x**2
y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
with Pool(5) as pool:
results = pool.imap_unordered(func, y)
for r in results:
print(r)
最后一句话永远不会结束
这里出了什么问题?您遇到了上下文范围的问题。尝试在结果中移动r的
:
循环与块:
将池(5)作为池:
结果=池.imap_无序(func,y)
对于结果中的r:
印刷品(r)
这个很好用
或者,您可以只使用Pool.map
来自多处理导入池的
def func(x):
返回x**2
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
y=[1,2,3,4,5,6,7,8,9,10]
将池(5)作为池:
结果=pool.map(func,y)
对于结果中的r:
印刷品(r)
哪张照片
1
4
9
16
25
36
49
64
81
100