私信  •  关注

caesar

caesar 最近回复了
3 年前
回复了 caesar 创建的主题 » Python多处理并行化内部或外部循环

这在很大程度上取决于组的数量、核的数量、实际计算的繁重程度,以及我可能忘记的其他几个因素。通过创建一个迭代器来生成所有的元组,可以避免考虑这个问题 (group, i) 出现在内部循环中,即将两个循环折叠为一个。这可以通过itertool's(cross)实现 product :

粗略的例子:

from itertools import product
from multiprocessing import Pool
with Pool() as p:
    p.map(compute_something, product(groups, idx)))

在大多数情况下,这应该可以很好地工作。