【发布时间】:2020-04-06 02:45:29
【问题描述】:
我正在用 Dask 做一个有点复杂的实验,所以我不能真正提供代码 sn-p。本实验使用只有一个线程 ('single-thread') 的 dask 线程调度程序从单个 hdf5 文件加载大小约为 5GB 的数组,并使用 dask 数组的 to_npy_stack 方法将其写回 50 个 npy 文件。我分两部分进行,一是加载 2.5GB 的缓冲区,二是加载 2.5GB 的缓冲区。读写是在硬盘上完成的,因此我选择使用一个线程。正如我们在下图中看到的那样,dask 诊断表明黄色的写入时间(在一个 numpy 文件中每次写入一个任务)比读取部分(2 个蓝色任务)要长得多。
有人知道为什么阅读时间比写作时间快得多吗?从下图中我们可以看到,我在缓存上加载了 2.5GB,因此 hdf5 文件的解压缩似乎没有延迟。是不是to_numpy_stack函数没有优化好?
PS:是的,我的 dask 诊断在中间图表中失败,我不知道为什么它取决于我将它放在代码中的位置。不过不管怎样……
编辑:这似乎是numpy文件的通常写入时间,所以也许只是使用hdf5大大提高了读取速度,即使它必须解压缩?
【问题讨论】:
标签: arrays numpy store dask hdf5