-1
python3.5を使用して、別のスレッドで別々のインスタンスを呼び出してCodeMLを並列化しようとしています。私は一点まで作業するためにすべてを得ました。プログラムが利用可能なコアよりも多くの変数を含む反復可能性を持つPool.imap
(またはPool.map
)を提供する場合、各コアを通じて1つの変数しか実行せずに終了します。私がここで間違っていることは何ですか?リスト内のすべての項目に対してpython imapが関数を呼び出さない
# Call CodeML for all files in a directory.
genes = glob(path + "06_phylipFiles/" + "*.phylip")
l = int(len(genes))
pool = Pool(processes = cpu)
func = partial(runCodeml, ap, usertree, path, completed, ctl, forward)
print("\n\tRunning CodeML with", str(cpu), "threads....\n")
rcml = pool.imap(func, genes, chunksize = int(l/cpu))
pool.close()
pool.join()
基本的には、終了する前にリスト全体を実行するにはPool.imap
が必要です。助けをありがとうございました。