Joblib并行处理在profiling中引入了{内置方法time.sleep}

问题描述 投票:0回答:1

我正在使用 Joblib 在我的 Python 应用程序中运行并行作业。在分析过程中,我注意到最慢的过程是

{built-in method time.sleep}
。有趣的是,当我删除 Joblib 并行处理时,这个问题就消失了。您能解释一下为什么{内置方法 time.sleep} 成为 Joblib 并行处理的瓶颈吗?

这是我的代码的简化版本:

from joblib import Parallel, delayed

def my_function(x):
    # Some computation
    return x * x

results = Parallel(n_jobs=2)(delayed(my_function)(i) for i in range(10))

分析输出

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    17153  209.317    0.012  209.317    0.012 {built-in method time.sleep}
      588    0.835    0.001    0.835    0.001 {method 'poll' of 'select.poll' objects}
python parallel-processing multiprocessing joblib
1个回答
0
投票

大概是因为您正在分析的父进程正在等待正在执行工作的子进程准备好,并且正在使用

time.sleep()
来完成此操作。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.