将数据并行写入 HDF5 文件时,dask 如何管理任务?
How does dask manage tasks when writing data to HDF5 files in parallel?
我想使用 python 对大型数组进行并行计算。输入数组和输出数组都不适合内存。此外,写入输出文件是一个潜在的瓶颈(因为例如 HDF5 通常不支持并行写入)。
dask.array.map_blocks(func).store(...)
在等待写出生成的块时,dask
如何决定将多少新块放入内存(即读入并开始计算)?据推测,如果它试图保持 CPU 完全被占用,则可能会导致 python 达到内存限制。是否存在相关的配置设置,还是最好避免 dask
并实施其他类型的任务队列?
Dask 通常会尽可能尝试流水线处理,以避免一次在内存中保留大量数据。它通过并行调用许多存储任务来处理写入 HDF5 文件,但使用锁来控制访问。我们发现以这种方式限制 CPU 在大多数情况下往往是最稳健的。
我想使用 python 对大型数组进行并行计算。输入数组和输出数组都不适合内存。此外,写入输出文件是一个潜在的瓶颈(因为例如 HDF5 通常不支持并行写入)。
dask.array.map_blocks(func).store(...)
在等待写出生成的块时,dask
如何决定将多少新块放入内存(即读入并开始计算)?据推测,如果它试图保持 CPU 完全被占用,则可能会导致 python 达到内存限制。是否存在相关的配置设置,还是最好避免 dask
并实施其他类型的任务队列?
Dask 通常会尽可能尝试流水线处理,以避免一次在内存中保留大量数据。它通过并行调用许多存储任务来处理写入 HDF5 文件,但使用锁来控制访问。我们发现以这种方式限制 CPU 在大多数情况下往往是最稳健的。