0
我想了解如何使用多处理,并设法让下面的代码工作。目标是通过设置n等于某个数字(现在为100,因此前100个组合被测试)来处理CostlyFunction内的每个变量组合。我希望可以在每个进程返回其列表时操作w(CostlyFunction返回7个值的列表),并只将结果保留在给定范围内。现在,w拥有所有100个列表,然后让我操纵这些列表,但是当我使用n = 10MM时,w变得巨大且昂贵。有没有一种方法可以评估CostlyFunction的输出,因为工人返回值然后“抛出”我不需要的值?Python多处理抛出基于以前值的结果
if __name__ == "__main__":
import csv
csvFile = open('C:\\Users\\bryan.j.weiner\\Desktop\\test.csv', 'w', newline='')
#width = -36000000/1000
#fronteir = [None]*1000
currtime = time()
n=100
po = Pool()
res = po.map_async(CostlyFunction,((i,) for i in range(n)))
w = res.get()
spamwriter = csv.writer(csvFile, delimiter=',')
spamwriter.writerows(w)
print(('2: parallel: time elapsed:', time() - currtime))
csvFile.close()
也许我的问题是不是在w,但在如何我使用map_async。 CostlyFunction返回一个列表后,如果它满足某些条件(比如返回列表的第6个元素位于所有返回列表的前10位),我只希望它将其添加到主列表中(或后面列出的任何列表) 。 – user3390169
有人在吗? – user3390169