Python 比预期完成时间长得多的任务

Python 比预期完成时间长得多的任务,python,Python,我注意到,使用两个工人进行分布式运行时,每个工人只使用一个核心 以下面的脚本为例,获取times2大约需要20秒,获取时间大约需要5秒 这意味着每个工人使用一个内核执行4个任务,而不是使用所有4个内核并行执行。我还确认,使用资源监视器时,每个工人只使用一个核心 为什么只为worker使用一个内核而不并行执行任务呢?因为您的函数是纯Python的,所以它可能受到GIL的约束。我建议更改工作线程,使其使用多个进程而不是多个线程。例如,如果运行dask工作进程的计算机有四个内核,则可以按如下方式启动d

我注意到,使用两个工人进行分布式运行时,每个工人只使用一个核心

以下面的脚本为例,获取
times2
大约需要20秒,获取
时间大约需要5秒

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


为什么只为worker使用一个内核而不并行执行任务呢?

因为您的函数是纯Python的,所以它可能受到GIL的约束。我建议更改工作线程,使其使用多个进程而不是多个线程。例如,如果运行dask工作进程的计算机有四个内核,则可以按如下方式启动dask工作进程:

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

要确认,如果在4核8线程cpu上执行,启动命令是否为:
dask worker scheduler address:8786--nprocs 4--nthreads 8
?我们通常为每个核启动一个线程
--nthreads
可能应该重命名为
--threads per process
这是否意味着--memory limit设置也为per core?当前--memory limit的值在所有进程之间分割