gpt4 book ai didi

Python itertools 多处理

转载 作者:行者123 更新时间:2023-12-01 04:00:19 26 4
gpt4 key购买 nike

我正在创建大量带有替换(乘积)的排列,它需要大量的计算时间。让我们使用像这样的简单函数:

def permutations(li):
return [p for p in itertools.product(li, repeat=20)]

permutation(range(11))

我只是不确定如何将此函数拆分为多个进程(使用“Pool”类或类似类)。我从未在 Python 中使用过多重处理,我想寻求帮助。

有什么提示吗?

谢谢!

最佳答案

太大除以 4 仍然太大。请注意 unutbu 的评论:如果使用多重处理,则需要永远除以 4。

但是,这里是一个仅 3**2 的工作示例,假设您将在 your_process 中执行一些有用的操作:

import itertools
import multiprocessing

def your_process(perm):
# this is where you process each permutation
# currently it just prints the permutation.
print(perm)

def permutations(li):
with multiprocessing.Pool(4) as workers:
workers.map(your_process, itertools.product(li, repeat=2))

permutations(range(3))

但是,如果您确实有 >11**>20 种排列,请考虑使用分布式计算或 BOINC 之类的东西,或者重新考虑您的算法。

关于Python itertools 多处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36678417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com