【发布时间】:2018-03-29 21:03:12
【问题描述】:
我正在尝试弄清楚如何并行化以下代码。
我查找了 joblib、concurrent.futures 和 multiprocessing 模块,但我一生都无法通过阅读文档和搜索 SO/google 来弄清楚它们是如何工作的。
Grid 是一个定义了适当方法的类对象,处理循环的顺序无关紧要。
def ProcessGrid(Grid):
#Parallel This Loop
for i in range(len(Grid)):
Grid[i].AdjustCostMultiplier()
Grid[i].FindAllNeighbours(Grid)
print("Processing Grid Cell: " + str(i) + " of " + str(len(Grid)),end = "\r")
#Return to serial
return Grid
【问题讨论】:
-
是否要并行调用 ProcessGrid 方法 2 次?还是您想调用 AdjustCostMultiplier() 和 FindAllNeighbours()?
-
我想并行化 for 循环,我将编辑我的问题以反映澄清
-
“为我做 X”请求(很难将它们描述为“问题”)在这里往往不会得到很好的回应,至少要表现出你自己的努力——不仅仅是断言你尝试过,但实际上以minimal reproducible example 的形式显示了您编写的代码并描述了它是如何失败的。
-
好的,我添加了一个答案。我没有测试它,但它应该可以工作:)
标签: python multithreading parallel-processing multiprocessing concurrent.futures