2016-11-19 4 views
0

私はcore_ensemblingとsampling.coreの戻り値をアンサンブルする2つの関数を持っています。サンプリング関数内でcore_ensebling関数を並列化する必要があります。これは、並列にset1、set2、set3 ... set6を計算する必要があります。だから、私はこれを行うことができ.How?私は窓10を使用しています?このプログラムを並列化することが可能で、2つのコアとのpythonを持っているインテルi3はプロセッサ2.7Pythonで値を返す関数を並列化する方法は?

def core_ensembling(args): 
    #some code# 
    return ensemble_set 

def sampling(p,q): 
    total_frames=q 
    ensemble_row=6 
    ensemble_col=8 
    frame_ensemble=[] 
    ensemble_set=[] 

    args1=[8,0,80,total_frames,p] 
    args2=[16,80,160,total_frames,p] 
    args3=[24,160,240,total_frames,p] 
    args4=[32,240,320,total_frames,p] 
    args5=[40,320,400,total_frames,p] 
    args6=[48,400,480,total_frames,p] 

    # parallising part 

    set1=core_ensembling(args1) 
    set2=core_ensembling(args2) 
    set3=core_ensembling(args3) 
    set4=core_ensembling(args4) 
    set5=core_ensembling(args5) 
    set6=core_ensembling(args6) 
    ensemble = list(itertools.chain(set1,set2,set3,set4,set5,set6)) 
    return ensemble 

答えて

0
import multiprocessing 
pool = multiprocessing.Pool() 
set1 = pool.apply_async(core_ensembling, args1) 
# ... 
set6 = pool.apply_async(core_ensembling, args6) 
ensemble = list(itertools.chain(set1.get(),set2.get(),set3.get(),set4.get(),set5.get(),set6.get())) 
+0

ありがとうございましたが、**はRuntimeErrorとしてエラーが発生しました: 現在のプロセスの前に新しいプロセスを開始しようとしました はブートストラップフェーズを完了しました** – user6745741

+1

@ user6745741:http:// stackoverを参照してくださいflow.com/a/18205006/4323 –

関連する問題