上下文
我正在使用dask.distributed来跨机器并行计算。因此,我在连接到dask-scheduler的不同机器上运行dask-workers,然后我可以将自定义图表与所需的密钥一起提交。
由于网络安装限制,我的输入数据(和输出存储)仅可用于机器的子集('i / o-hosts')。我尝试用两种方式解决这个问题:
不允许非i / o任务在i / o-hosts上运行的想法是确保他们的工作人员可用于i / o任务。
问题
这两种方法都可以正常运行,因为它们将i / o任务限制在正确的工作人员身上。但是我注意到,当使用这两种方法中的任何一种时,只有极少数工作人员积累了大量任务,而大多数其他工作人员仍处于空闲状态。
在了解了如何在工作人员之间分配任务之后,我发现对于受限制的任务(http://distributed.readthedocs.io/en/latest/work-stealing.html),工作窃取似乎是故意禁用的。这似乎也适用于资源框架。
问题
有没有一种方法可以将任务限制与工作窃取相结合?