Python:多处理映射需要更长的时间来完成最后几个进程

Python:多处理映射需要更长的时间来完成最后几个进程,python,memory,multiprocessing,python-multiprocessing,Python,Memory,Multiprocessing,Python Multiprocessing,在Python中,我尝试运行150-200个进程。我把这150个元素放在一个数组中,我把这个数组分成多个数组,每个数组有10个元素 现在,我运行一个多处理映射,一次包含10个元素。完成所有10项后,我们进入下一个10项,以此类推 现在,问题是:第九个和第十个过程几乎总是比其他过程慢。这有什么原因吗?我这样做不是最有效的方式吗 **我将无法共享此的代码。那么,你对为什么会发生这种情况有什么想法吗 提前感谢。这是由于Pool.map在工作人员之间分配数据的方式造成的。使用chunksize=1作为参

在Python中,我尝试运行150-200个进程。我把这150个元素放在一个数组中,我把这个数组分成多个数组,每个数组有10个元素

现在,我运行一个多处理映射,一次包含10个元素。完成所有10项后,我们进入下一个10项,以此类推

现在,问题是:第九个和第十个过程几乎总是比其他过程慢。这有什么原因吗?我这样做不是最有效的方式吗

**我将无法共享此的代码。那么,你对为什么会发生这种情况有什么想法吗


提前感谢。

这是由于
Pool.map
在工作人员之间分配数据的方式造成的。使用
chunksize=1
作为参数,即
map(…,…,chunksize=1)

类似的问题解释如下:

您有4个或8个处理器内核吗?一个具有4个内核的核心i7处理器。然而,据我所知,它可以使用4个核心作为8个?这是真的吗?谢谢确切地说,i7s做超线程处理需要8个虚拟内核,这可能就是原因。是的,使用8个而不是10个并行进程。所有要处理的元素都应该在同等的时间内处理吗?或者有些元素需要更难的计算?(或等待远程应答等?)。除了将进程数设置为8外,您是否尝试过其他多处理方法,如
imap\u unordered
,以查看是否存在相同的问题?请检查此项,这将有助于提高您的内容质量