如何避免将任务中的 dask 任务提交到主调度程序



任务启动文档显示,dask 工作线程中dask.compute的默认行为是在主调度程序上启动任务。

我的愿望不是在主调度程序上启动。 我的任务是做两个步骤:使用非python二进制文件处理复制到本地磁盘上的0.1-1.0 TB数据,然后使用dask将数据转换并写入zarr存储。二进制文件是多线程的,我还想以多进程或多线程本地方式在本地使用 dask。

对于这个工作线程,我使用多核机器,但只为 dask 工作线程保留一个线程。 我相信这意味着我的任务可以使用机器上的所有内核来完成上述两个步骤。

这是一个可行的模型吗,我将如何称呼compute(distributed.Client().compute似乎不起作用(? 还有其他方法可以让我在机器上独占运行我的二进制文件,并通过任务运行我的并行 zarr 写入吗?

调用 dask.compute 时,可以指定如下所示的 scheduler= 选项:

dask.compute(x, y, scheduler="processes")

有关详细信息,请参阅 https://docs.dask.org/en/latest/scheduling.html

最新更新