gpt4 book ai didi

python - 如何在python中运行并行程序

转载 作者:太空狗 更新时间:2023-10-29 20:59:17 24 4
gpt4 key购买 nike

我有一个 python 脚本,可以使用 os.subprocess 模块运行一些外部命令。但是其中一个步骤需要很长时间,所以我想单独运行它。我需要启动它们,检查它们是否完成,然后执行下一个不并行的命令。我的代码是这样的:

nproc = 24 
for i in xrange(nproc):
#Run program in parallel

#Combine files generated by the parallel step
for i in xrange(nproc):
handle = open('Niben_%s_structures' % (zfile_name), 'w')
for i in xrange(nproc):
for zline in open('Niben_%s_file%d_structures' % (zfile_name,i)):handle.write(zline)
handle.close()

#Run next step
cmd = 'bowtie-build -f Niben_%s_precursors.fa bowtie-index/Niben_%s_precursors' % (zfile_name,zfile_name)

最佳答案

对于您的示例,您只想并行处理 - 您不需要线程。

subprocess 模块中使用Popen 构造函数:http://docs.python.org/library/subprocess.htm

为您生成的每个进程收集 Popen 实例,然后 wait() 让它们完成:

procs = []
for i in xrange(nproc):
procs.append(subprocess.Popen(ARGS_GO_HERE)) #Run program in parallel
for p in procs:
p.wait()

你可以摆脱这个(而不是使用 multiprocessingthreading 模块),因为你对这些互操作并不真正感兴趣 - 你只是想要操作系统并行运行它们并确保它们在您合并结果时都已完成...

关于python - 如何在python中运行并行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11954021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com