多处理不并行

我有一个可以并行运行的函数,但是,当我尝试运行它时,似乎正在串行调用该函数。


import multiprocessing as mp

def function_to_be_parallelized(x,y,z):

    #compute_array takes 1-5 minutes computation to depending on x,y,z

    computed_array=compute_array(x,y,z)

    print ("running with parameters"+str(x*y*z))

    return computed_array


def run(xs,ys,zs):


    pool = mp.Pool(processes=4)

    all_outputs = [pool.apply(function_to_be_parallelized, args=(x,y,z)) for x in xs for y in ys for z in zs]

我发现打印语句一次打印一个,并且只有在前一个过程完成后才打印每个语句,我在具有 4 个内核的机器上运行它。


这是因为内部函数中的进程每个都占用了 2 个以上的内核(因此无法并行化)?还是另有原因?


白板的微信
浏览 99回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python