python - 任务完成时间比预期要长得多

标签 python

我注意到,由两个工作线程进行分布式运行时,每个工作线程仅使用一个核心。

以下脚本为例,大约需要 20 秒才能获取 times2,需要 5 秒才能获取 times

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

为什么分布式工作线程只使用一个核心而不是并行执行任务?

最佳答案

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

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

关于python - 任务完成时间比预期要长得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42458768/

相关文章:

PYTHON:如何合并相等元素的numpy数组

python - 带有 GridSearchCV 的随机森林 - param_grid 上的错误

python - 在 Django 中使用 DateTimeField 与 Oracle

python - 寻找一种更有效的方法从数据帧列中的字典创建新列

python - 如何根据 PCA 的特征向量对特征进行正确排序

python绘制一系列值的水平线

python - 从 PyCharm 调试到 Visual Studio C++ 代码

python - 从 Pandas 数据框的列创建一个 numpy 数组

python - Pandas 数据透视表子集

python - 在 Pandas 中分割字符串忽略大小写