dask 两次处理任务

dask processes tasks twice

我注意到 dask graph 的任务可以由不同的 worker 执行多次。

另外我在调度器控制台看到了那个日志(不知道它是否与弹性有关):

"WARNING - Lost connection to ... while sending result: Stream is closed"

有没有办法阻止 dask 在不同的 worker 上执行两次相同的任务?

请注意,我正在使用: 达斯克 0.15.0 分布式 1.15.1

感谢

伯特兰

简短的回答是 "no"。

Dask 保留多次调用您的函数的权利。如果工作人员宕机,或者如果 Dask 进行了一些负载平衡并在集群中移动了一些任务,而同时它们刚刚启动,则可能会发生这种情况。

但是,您可以通过关闭工作窃取来显着降低任务多次 运行 的可能性:

def turn_off_stealing(dask_scheduler):
    dask_scheduler.extensions['stealing']._pc.stop()

client.run(turn_off_stealing)