我处理n个元素(在下面命名为"pair")变体,重复用作我函数的参数.显然,只要"r"列表不足以消耗所有内存,一切都可以正常工作.问题是我必须最终为6个元素重复16次.我在云端使用40核心系统.
代码看起来如下所示:
if __name__ == '__main__':
pool = Pool(39)
r = itertools.product(pairs,repeat=16)
pool.map(f, r)
Run Code Online (Sandbox Code Playgroud)
我相信我应该使用迭代器而不是预先创建巨大的列表,这里问题开始..
我尝试使用以下代码解决问题:
if __name__ == '__main__':
pool = Pool(39)
for r in itertools.product(pairs,repeat=14):
pool.map(f, r)
Run Code Online (Sandbox Code Playgroud)
内存问题消失了,但每个内核的CPU使用率是5%.现在,代码的单核版本比这更快.
如果你能引导我一点,我真的很感激..
谢谢.