【发布时间】:2016-02-05 22:06:45
【问题描述】:
在 Python 中,我尝试运行 150-200 个进程。我将这 150 个东西放在一个数组中,并且我已将该数组拆分为多个数组,每个数组包含 10 个元素。
现在,我运行一个多处理映射,一次包含 10 个元素。完成所有 10 个后,我们将进入下一个 10,依此类推。
现在,问题是:第九和第十个进程几乎总是比其他进程慢。这有什么原因吗?我这样做不是最有效的方式吗?
** 我将无法共享此代码。那么您对为什么会发生这种情况有任何想法吗?
提前致谢。
【问题讨论】:
-
你有 4 个或 8 个处理器内核吗?
-
4 核 Core i7 处理器。但是,据我所知,它可以使用 4 核作为 8?真的吗?谢谢!
-
没错,i7s 使用超线程来拥有 8 个虚拟内核,所以可能就是原因。
-
嗯,是的,使用 8 个而不是 10 个并行进程。
-
是否所有要处理的元素都应该在相同的时间内处理?或者也许某些元素需要更难的计算? (或从远程应答等中等待?)。除了设置进程数为8,有没有尝试过
imap_unordered等其他多处理方式,看看有没有同样的问题?
标签: python memory multiprocessing python-multiprocessing