相关疑难解决方法(0)

覆盖 dask 调度程序以同时在多个工作线程上加载数据

我想在我的分布式集群上运行图形/期货,这些集群都有一个“加载数据”根任务,然后是一堆在该数据上运行的训练任务。简化版本如下所示:

from dask.distributed import Client
client = Client(scheduler_ip)
load_data_future = client.submit(load_data_func, 'path/to/data/')
train_task_futures = [client.submit(train_func, load_data_future, params) 
                      for params in train_param_set]
Run Code Online (Sandbox Code Playgroud)

按照上面的方式运行此计划,调度程序会让一个工作人员读取该文件,然后将该数据溢出到磁盘以与其他工作人员共享。然而,加载数据通常是从一个大的HDF5文件中读取,这可以同时完成,所以我想知道是否有一种方法可以强制所有工作人员同时读取这个文件(他们都计算根任务)而不是让他们等待一名工作人员完成,然后缓慢地从该工作人员传输数据。

我知道有一种client.run()方法可以让所有工作人员同时读取文件,但是如何将读取的数据输入到下游任务中呢?

我无法使用 dask 数据原语同时读取 HDF5 文件,因为我需要多索引和多列分组等功能。

dask dask-distributed

5
推荐指数
1
解决办法
749
查看次数

标签 统计

dask ×1

dask-distributed ×1