我正在处理需要并行化的图像处理问题。 我看过几个展示在 Python 中使用并行处理的例子,但所有这些例子的输入都是一维数组。 因此,我正在寻找一种方法来并行化对图像执行两个过程的函数。 以下代码是我需要进行标准化的代码: 这个嵌套循环如何并行化? ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
嘿,我有一个有效的脚本,但是它可以在k组合上工作,因此可以长时间工作...我想并行化一个for循环来划分工作时间。
这是简化的代码:
fin2 = open('combi_nod.txt','r')
for lines in fin2:
(i, j) = eval(lines)
edgefile = open('edge.adjlist', 'a')
count = 0
for element in intersection(
eval(linecache.getline('triangleset.txt', i+1)),
eval(linecache.getline('triangleset.txt', j+1))):
if element not in merge:
count = 1
break
if count == 0:
edgefile.write(' ' + str(j))
edgefile.close()
fin2.close()
我怎样才能做到这一点?
编辑
经过一些修改后,我完成了多处理循环。 但是它们是一个相关的问题:
在我最初的for
循环中,我搜索combi_nod.txt
文件; combi_nod.txt
内容是大量的itertools.combinaison
。 (因此,现在我可以将它们存储在变量中了)
我的多处理循环使用了itertools.combinaison
的列表,因为我没有看到在参数中传递文件行的方法(因此我遇到了内存问题),您有新的想法吗?
编辑2
为了澄清起见,下面是这段代码:
def intersterer(lines):
(i, j) = lines
counttt = 0
for element in some_stuff:
if element not in merge:
counttt = 1
break
if counttt == 0:
return (int(i), int(j))
else:
return (0, 0)
fin2 = open('combi_nod.txt','w')
for trian_c in itertools.combinations(xrange(0, counter_tri), 2):
#counter_tri is a large number
fin2.write(str(trian_c) + "\n")
fin2.close()
fin2 = open('combi_nod.txt','r')
if __name__ == '__main__':
pool = Pool()
listt = pool.map(intersterer, itertools.combinations(xrange(0, counter_tri), 2))
f2(listt)
if (0,0) in listt: listt.remove((0,0))
我想有一些像这样的工作:
listt = pool.map(intersterer, fin2)
但是我所有的测试根本不起作用...帮助...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.