【发布时间】:2021-03-25 18:03:28
【问题描述】:
我需要并行化一个 Python for 循环,在该循环中,对于每次迭代,都会调用一个返回两个结果的函数(接受两个参数),然后将这些结果附加到两个不同的列表中。 for 循环遍历两个参数列表。
假设我有以下代码:
def my_f(a, b):
res1 = a + b
res2 = a * b
return res1, res2
# lists of arguments
args1 = [1, 2, 3, 4]
args2 = [5, 6, 7, 8]
res_list1, res_list2 = [], []
for i in range(len(args1)): # loop to parallelize
res1, res2 = my_f(args1[i], args2[i])
res_list1.append(res1)
res_list2.append(res2)
结果应该是
res_list1 = [6, 8, 10, 12]
res_list2 = [5, 12, 21, 32]
如何让它并行运行?
我知道在 C/C++ 中可以只使用#pragma omp for 来获得并行。 Python中有没有类似的东西?
我在 Linux 上使用 python 3.8.5,但我需要让它在任何操作系统上运行。
【问题讨论】:
标签: python list for-loop parallel-processing