任务花费的时间比预期的要长得多

时间:2017-02-25 16:45:33

标签: python

我注意到,与两名工作人员分布的运行只会为每个工人使用一个核心。

下面的脚本作为示例大约需要20秒才能获得times2,需要5秒才能获得times

这意味着每个工作人员使用单个核心执行4个任务,而不是使用所有4个核心并行执行。我还确认使用资源监视器只使用每个工作者一个核心。

为什么仅使用一个核心为worker而不是并行执行任务?

1 个答案:

答案 0 :(得分:1)

因为您的函数是纯Python,所以它可能受GIL的约束。我建议更改您的工作人员,以便他们使用多个进程而不是多个线程。例如,如果运行dask-worker进程的计算机有四个核心,那么您可以按如下方式启动dask-worker进程:

dask-worker scheduler-address:8786 --nprocs 4 --nthreads 1