私は、os.subprocessモジュールを使用していくつかの外部コマンドを実行するpythonスクリプトを持っています。しかし、これらのステップの1つには膨大な時間がかかりますので、別々に実行したいと思います。私はそれらを起動し、それらが終了していることを確認し、次に平行でない次のコマンドを実行する必要があります。あなたがスレッドを使用してそれを行うことができますPythonで並列プログラムを実行する方法
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)
これはスレッドが終了するまで、 'join()'ブロッキング(他のスレッドの開始を妨げる)のために、実際には何もしません。これを回避する方法は私の答えを見てください。 – pR0Ps