Python多处理在几个Linux发行版上表现不同

时间:2015-04-14 15:39:16

标签: python debian multiprocessing python-multiprocessing

我使用python 2.7编写了一个科学的模拟环境。

我通过直接使用Process接口同时启动我的模拟的几个实例:

for i in range(nr_cores):
    p = Process(target=worker, args=(i, nr_cores, scheduler, job, nr_iter, return_values, extremes, parameters,))
    processes.append(p)
    p.start()

for process in processes:
    process.join()

这在

上完美无缺
  • 我的fedora 21机器运行python 2.7.8(内核3.19.3)
  • 我的OSX机器运行python 2.7.6

现在我尝试在带有python 2.7.3的debian 7.8(内核3.2.63)机器上安装它 奇怪的事情开始发生了:

  • top中列出的进程数大于我实际生成的进程数(14而不是2)
  • 在这14人中,只有两人正在跑,其余的正在睡觉
  • 两个正在运行的进程共享一个核心。其他核心闲置

我下载并编译了python 2.7.9,但行为完全相同。

我记得在另一台debian机器上看到过类似的问题,但遗憾的是我不记得它是什么版本。

以前有没有人遇到这样的事情?

谢谢

1 个答案:

答案 0 :(得分:0)

好的,找到了。 经过一番探索,我发现这个: Why does multiprocessing use only a single core after I import numpy?

是我的问题。该建议也解决了我的问题