4
我正在使用sklearn软件包运行一些K-Means集群。检查或关闭Numpy/SciPy并行化
虽然我设置了参数n_jobs = 1
,如sklearn文档中所示,尽管单个进程正在运行,但该进程显然会占用我机器上的所有CPU。也就是说,在top
中,我可以看到python作业正在使用,例如在4核心机器上使用400%。要清楚的是,如果我设置了n_jobs = 2
,那么我会得到两个python实例,但每个实例都使用200%的CPU,并再次占用我机器的全部4个核心。
我认为这个问题可能是NumPy/SciPy级别的并行化。
有没有办法来验证我的假设?例如,有没有办法关闭NumPy/SciPy中的任何并行化?
您的结论是正确的,您可以通过以下代码进行确认。并行化是在BLAS中与numpy一起构建的。我不认为你可以改变它(尽管我不是100%确定的)。 – 2014-09-07 21:34:06
这对于那些需要在共享资源上运行此代码的人来说不是问题吗?这是我遇到的问题。如果没有定制这种并行化,我不得不请求排队系统中每台机器上的最大CPU数量。 – EMiller 2014-09-08 15:36:29
您的调度系统不应该照顾那个吗? – 2014-09-09 10:07:16