【发布时间】:2022-08-18 23:17:59
【问题描述】:
我是一个新的 dask 用户,我正在尝试在我的程序中运行函数点。我注意到即使我在整个矩阵中只使用一个块,dask 的函数 dot 也比它的 numpy 版本慢。如何解释这种行为?
import dask.array as da
import numpy as np
x = da.random.normal(10, 0.1, size=(20000 * 100000), chunks=(20000 * 100000))
z = x.dot(x)
%time z.compute()
\'\'\'
CPU times: user 1min 1s, sys: 17.3 s, total: 1min 18s
Wall time: 52 s
\'\'\'
y = x.compute()
%time w =y.dot(y)
\'\'\'
CPU times: user 19 s, sys: 8.24 s, total: 27.2 s
Wall time: 767 ms
\'\'\'
-
这回答了你的问题了吗? why is dot product in dask slower than in numpy
-
性能差异有点令人惊讶。但请注意,dask 确实必须分配那个巨大的数组作为任务的一部分。为了公平比较,在时间块内创建 numpy 数组,并确保它的大小与 dask 相同。