如何在python中使用multiprocessing.Pool

如何在python中使用multiprocessing.Pool,python,multiprocessing,pool,Python,Multiprocessing,Pool,我需要基于相同的数据多次运行相同的函数。 为此,我使用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(mult

我需要基于相同的数据多次运行相同的函数。 为此,我使用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进程,我所有的系统开始运行得非常慢

我怎样才能解决这个问题? 上午

我用错了游泳池?我应该使用另一个函数吗

编辑:使用
p=Pool(multiprocessing.cpu\u count())
我的电脑会使用100%的电量吗?
或者我应该使用其他方法?

一般来说,您不希望池的数量超过CPU内核的数量,因为您的计算机无法并行处理超出实际处理可用内核数量的工作。当你的CPU只能同时处理四件事情时,你是否有100个进程并不重要。通常的做法是这样做

p = Pool(multiprocessing.cpu_count())

一般来说,您不希望池的数量超过CPU内核的数量,因为您的计算机无法并行处理超出实际处理可用内核数量的工作。当你的CPU只能同时处理四件事情时,你是否有100个进程并不重要。通常的做法是这样做

p = Pool(multiprocessing.cpu_count())

一般来说,您不希望池的数量超过CPU内核的数量,因为您的计算机无法并行处理超出实际处理可用内核数量的工作。当你的CPU只能同时处理四件事情时,你是否有100个进程并不重要。通常的做法是这样做

p = Pool(multiprocessing.cpu_count())

一般来说,您不希望池的数量超过CPU内核的数量,因为您的计算机无法并行处理超出实际处理可用内核数量的工作。当你的CPU只能同时处理四件事情时,你是否有100个进程并不重要。通常的做法是这样做

p = Pool(multiprocessing.cpu_count())

除了限制自己

p = Pool(multiprocessing.cpu_count())
我相信当你完成的时候你也会想做以下事情

p.close()

这应该在流程完成后结束。

除了限制自己

p = Pool(multiprocessing.cpu_count())
我相信当你完成的时候你也会想做以下事情

p.close()

这应该在流程完成后结束。

除了限制自己

p = Pool(multiprocessing.cpu_count())
我相信当你完成的时候你也会想做以下事情

p.close()

这应该在流程完成后结束。

除了限制自己

p = Pool(multiprocessing.cpu_count())
我相信当你完成的时候你也会想做以下事情

p.close()

这应该会在流程完成后结束。

尝试对池大小进行一些实验。我的猜测是,如果您的池大小是CPU计数的2倍(耗尽所有可能的超线程内核,但不在调度中埋葬周期),那么会有一些最佳值。您应该在最后关闭并加入池,请参阅尝试对池大小进行一点试验。我的猜测是,如果您的池大小是CPU计数的2倍(耗尽所有可能的超线程内核,但不在调度中埋葬周期),那么会有一些最佳值。您应该在最后关闭并加入池,请参阅尝试对池大小进行一点试验。我的猜测是,如果您的池大小是CPU计数的2倍(耗尽所有可能的超线程内核,但不在调度中埋葬周期),那么会有一些最佳值。您应该在最后关闭并加入池,请参阅尝试对池大小进行一点试验。我的猜测是,如果您的池大小是CPU计数的2倍(耗尽所有可能的超线程内核,但不在调度中隐藏周期),则存在一些最佳值。您应该在任务结束时关闭并加入池,请参见任务结束时,我是否仍应关闭所有进程?是的,您应该这样做,也是。在任务结束时,我应该关闭所有流程吗?是的,你也应该这样做。在任务结束时,我应该关闭所有流程吗?是的,你也应该这样做。在任务结束时,我应该关闭所有流程吗?是的,你也应该这样做。