如何解决Dask DataFrames与numpy.memmap的性能
我已经开发了一个模型,该模型使用按(1e7、10、1e5)顺序的几个大型3维数据集,并对这些数据集的片段进行了数百万次的读取(和数千次的写入)调用。到目前为止,我发现进行这些调用的最佳工具是numpy.memmap,它允许将最少的数据保留在RAM中,并且可以进行干净的索引编制,并可以直接在硬盘驱动器上非常快速地调用数据。
numpy.memmmap的缺点似乎是性能非常不均匀-读取两次数组的时间在两次调用之间可能相差2个数量级。此外,我正在使用Dask来并行化脚本中的许多模型函数。
Dask DataFrames对大型数据集进行数百万次调用的性能如何?将memmap换成DataFrames是否会大大增加处理时间?
解决方法
您需要使用Dask Array而不是Dask Dataframe。性能通常与Numpy相同,因为Numpy会进行实际计算。
优化可以根据用例加快计算速度。
调度程序的开销会降低性能。仅在将数据分成多个分区并且通常可以忽略的情况下适用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。