如何在使用任务限制/工作资源时在dask.distributed中启用正确的工作窃取?

时间:2017-09-12 15:54:00

标签: dask dask-distributed

上下文

我正在使用dask.distributed来跨机器并行计算。因此,我在连接到dask-scheduler的不同机器上运行dask-workers,然后我可以将自定义图表与所需的密钥一起提交。

由于网络安装限制,我的输入数据(和输出存储)仅可用于机器的子集('i / o-hosts')。我尝试用两种方式解决这个问题:

  1. i / o操作中涉及的所有任务仅限于i / o-hosts(它们只能在可以访问数据的机器上运行的工作程序上运行)而非i / o任务仅限于非i / o /邻的主机
  2. i / o操作中涉及的所有任务都绑定到提供资源“io”(i / o-hosts)的工作者,非i / o任务绑定到非i / o主机上的工作者资源'计算'。
  3. 不允许非i / o任务在i / o-hosts上运行的想法是确保他们的工作人员可用于i / o任务。

    问题

    这两种方法都可以正常运行,因为它们将i / o任务限制在正确的工作人员身上。但是我注意到,当使用这两种方法中的任何一种时,只有极少数工作人员积累了大量任务,而大多数其他工作人员仍处于空闲状态。

    在了解了如何在工作人员之间分配任务之后,我发现对于受限制的任务(http://distributed.readthedocs.io/en/latest/work-stealing.html),工作窃取似乎是故意禁用的。这似乎也适用于资源框架。

    问题

    有没有一种方法可以将任务限制与工作窃取相结合?

0 个答案:

没有答案