如何并行化在Python中返回值的函数?

问题描述:

我有两个函数,core_ensembling和sampling.core集合返回值。我需要并行化采样函数内的core_ensebling函数,即我需要并行计算set1,set2,set3 ... set6。所有这些计算都是独立的。那么,是否可以并行这个节目呢?我。怎么可以这样做?我使用Windows 10,其中有2个核心和Python的英特尔i3处理器的2.7如何并行化在Python中返回值的函数?

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 

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 –