我正在努力比较不同数据大小的Dask和Numpy的计算速度.我知道Dask可以并行执行数据计算,并将数据拆分成块,这样数据大小就可以大于RAM.当使用下面的Dask代码时,我得到一个内存错误(显示在底部),方形数组大小为42000.
import dask as da
import time
size = 42000
y = da.random.random(size = (size,size), chunks = (size/8,size/8))
start = time.time()
y = y.dot(y*2) #arbitrary dot product calculation
y.compute()
end = time.time()
print(str(end-start) + " seconds")
Run Code Online (Sandbox Code Playgroud)
但是,在使用Numpy运行类似代码时,我不会收到任何错误.
import numpy as np
import time
size = 42000
x = np.random.random(size = (size,size))
start = time.time()
x = x.dot(x*2) #arbitrary dot product calculation
end = time.time()
print(str(end-start) + " seconds")
Run Code Online (Sandbox Code Playgroud)
因此,我不明白为什么当Numpy不特别因为Dask应该能够对数据进行分区时Dask会抛出内存错误.这有什么解释/解决方案吗?
编辑:我只有点产品的这个问题.我已经用平均值测试没有任何问题.
MemoryError Traceback (most recent call last)
<ipython-input-3-a3af599b673a> in <module>()
3 …Run Code Online (Sandbox Code Playgroud)