Dask 如何管理文件描述符

问题描述 投票:0回答:1

Dask 如何管理文件描述符?

例如,从

dask.array
文件创建
hdf5
时。当数组足够大可以分块时。

创建的任务是否继承Client中创建的文件描述符?或者每个任务都会重新打开工作进程中的文件?

其他案件如何处理?

file-io io dask dask-distributed
1个回答
0
投票

简答:当使用分布式时(即,

Client
,如问题中所示),所有任务都必须序列化并传递给工作进程。这意味着低级文件描述符永远无法共享,并且该文件将在工作人员上重新打开。这是像 zarr 这样的“云原生”格式存在的原因之一。

当您将 hdf 与分布式一起使用时,您的 File 对象将经过特殊的序列化,以确保它在工作线程上重新水化,使其与客户端上的磁盘读取最少一样。

如果您将 hdf 与线程调度程序一起使用,您将保留在同一进程中,并且打开的文件句柄将被传递。

© www.soinside.com 2019 - 2024. All rights reserved.