嘿,我有一个有效的脚本,但是它可以在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) 

但是我所有的测试根本不起作用...帮助...

  ask by Alex Jud translate from so

本文未有回复,本站智能推荐:

1回复

如何分析并行化的Python脚本?

假设我有一个名为my_parallel_script.py的python脚本,它涉及使用multiprocessing来并行化几个东西,并使用以下命令运行它: 这仅为父进程生成分析输出。 根本不记录在子进程中进行的呼叫。 是否也可以分析子进程? 如果唯一的选择是修改源,那么最简单的方
3回复

使用python包装器并行化python脚本

我有一个python脚本heavy_lifting.py ,我使用从bash包装器脚本wrapper.sh调用的GNU Parallel对其进行了并行化。 我用它来处理 fastq 格式的文件,请参见下面的example.fastq 。 虽然这可行,但要求使用两个解释器和一组依赖项是不雅的。 我想使
2回复

使用mpi4py配置并行化的python脚本

我有一个使用mpi4py的python脚本,名为main_parallel.py。 我可以使用time来测量cli time ,但是,我如何制作类似于cProfile的配置文件? 我想看看代码的每个部分的调用次数。 我不能使用cProfile,因为它只用于串行代码。 谢谢!
1回复

使用Joblib并行化将python脚本提交到SunGridEngine

我有一个 python 脚本,它使用带有loky后端的joblib模块进行并行化,并且n_jobs设置为12 。 我想知道我应该如何使用qsub命令将它提交给太阳网格引擎。 我有这样的事情: 对于带有joblib模块的 python 脚本, joblib会按预期工作吗?
3回复

如何使用mpi4py并行化这个python脚本?

如果已经提出这个问题,我很抱歉,但我已经阅读了大量文档,但我仍然不确定如何做我想做的事情。 我想同时在多个内核上运行Python脚本。 我在一个目录中有1800个.h5文件,名称为“snaphots_s1.h5”,“snapshots_s2.h5”等,每个大小约为30MB。 这个Pyt
1回复

并行化Python循环

我在joblib 、 multiprocessing等之间有点迷失。 根据您的经验,并行化 for 循环的最有效方法是什么? 例如 : 它获取我的图像块,然后通过 haralick 提取特征这就是我获得补丁的方式 对不起,如果任何信息是多余的
2回复

在Python中并行化

我有一些我想在 python 中并行做的事情。 以下功能: 获取一堆“用户”类的实例来训练 pytorch 神经网络: 什么都没有输出; 分配给对象的模型正在更新。 我希望每个用户对象同时进行训练,但我一生都无法弄清楚如何做到这一点,因为我能够找到的所有示例都涉及对列表元素的一些处理。
2回复

Python如何并行化循环

我对多线程和多处理非常陌生,并试图使 for 循环并行。 我搜索了类似的问题,并基于多处理模块创建了代码。 # 输出: 如果我更改代码,如: 我收到错误: 任何想法如何使这个平行? MATLAB 有一个parfor选项来创建并行循环。 我正在尝试使用这种方法使循环并行,但它不起作用。 任何想法如