gpt4 book ai didi

python - 如何将循环转换为多处理?

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:59 25 4
gpt4 key购买 nike

我正在尝试并行化一些代码。这就是我正在尝试做的事情:

我有一个 test_cases 函数,它接受多个参数,在第 3 方应用程序上创建和测试一些案例。我有 33 个这样的测试。目前,我设置了一个带有索引计数器的 for 循环,该索引计数器运行每个测试。每个测试都会返回一个数组,然后将该数组与该数组的“预期值”数组进行比较。如果值不正确,则会记录索引并执行其他操作。

我正在尝试并行化,以便许多测试同时运行,并获得测试失败的索引号。我探索过多处理,但理解不正确。我使用还是进程

我在网上查看的示例显示了基本案例,但我很难将这些知识转化为这种规模。所以我的问题是如何为每个测试设置多重处理,以便我得到一个数组来与预期的值进行比较?

最佳答案

欢迎来到堆栈溢出!正如文档( https://docs.python.org/3/library/multiprocessing.html )中所示,如果您有 2 个可用核心,您需要首先使用 Pool(2) 之类的内容创建一个池对象。如果您使用 with...as... block 执行此操作,则可以使用 block 内的对象,之后它将被清理。下面的示例来自文档,并使用池对象的映射方法将函数“f”并行应用于列表中的项目。您可能需要“starmap”,它可以处理元组列表并允许 f 有多个参数 - 请在文档中查看。

from multiprocessing import Pool

def f(x):
return x*x

if __name__ == '__main__':
with Pool(5) as p:
print(p.map(f, [1, 2, 3]))

关于python - 如何将循环转换为多处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59955816/

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