我有一些完美运行的Python代码,使用了多进程模块,在我的机器上加载了所有8个CPU并使其达到100%。
在我从Ubuntu 10.10升级到12.04之后(最明显的事情,也许我做了其他破坏一切的事情),它停止工作了。经过大量调试,我发现即使在最简单的用例中,这两个模块也只使用1个CPU:
from pylab import *
import multiprocessing as mp
from joblib import Parallel, delayed
def f(i):
# Slow calculation
x = 1
for j in range(100000): x = cos(x)
print i, x
if __name__ == '__main__':
# Try to multiprocess with multiprocessing
mp.Pool(processes=8).map(f, range(100))
# Try to multiprocess with joblib
Parallel(n_jobs=8)(delayed(f)(i) for i in range(100))
我需要使用系统中的所有8个CPU。有什么建议可以解决这个问题吗?
taskset
来解决此问题-请查看我的答案 这里。 - ali_mmultiprocessing.cpu_count()
返回哪个值?如果不是8,则存在问题。 - Roland Smith