繁体   English   中英

如何在Python中使用multiprocessing.Pool

[英]how to use multiprocessing.Pool in python

我需要多次基于相同的数据运行相同的功能。 为此,我使用multiprocessing.Pool来加快计算速度。

from multiprocessing import Pool
import numpy as np
x=np.array([1,2,3,4,5])

def func(x): #this should be a function that takes 3 minutes 
    m=mean(x)
    return(m)

p=Pool(100)
mapper=p.map(multiple_cv,[x]*500)

该程序运行良好,但最后我打开了100个python进程,所有系统开始运行缓慢。

我该如何解决? 上午

我以错误的方式使用Pool? 我应该使用其他功能吗?

编辑:使用p = Pool(multiprocessing.cpu_count())我的PC会使用100%的电量吗? 还是我应该使用其他东西?

除了限制自己

p = Pool(multiprocessing.cpu_count())

我相信您也要在完成后执行以下操作...

p.close()

完成后,应将其关闭。

通常,您不希望池数量超过CPU内核数量,因为您的计算机将无法并行处理工作,而实际可用的内核数量除外。 如果您的CPU只能同时处理四件事,那么是否有100个进程并不重要。 常见的做法是这样做

p = Pool(multiprocessing.cpu_count())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM