只有当它在任何工作人员中都不活跃时才提交一个 dask 进程
Submit a dask process only if it's not active in any of the workers
假设我有N个工人。我需要在其中一名工人中提交带有 dask client.submit
的程序,但前提是它在任何工人中都不是 运行。关于如何实现这一目标的任何提示?我可以从调度程序中获取此信息吗?
Dask 标记您对使用 client.submit
(或延迟或任何 high-level API)提交的函数的调用。因此,如果您提交与集群中已有的 运行 相同的新工作,它不会重复该任务,而是等待 already-running 完成。 (您可以使用关键字 pure=False
关闭此行为)
这里我们得到了四次相同的随机数:
In [35]: client.gather([client.submit(random.random) for _ in range(4)])
Out[35]: [0.609188678994237, 0.609188678994237, 0.609188678994237, 0.609188678994237]
假设我有N个工人。我需要在其中一名工人中提交带有 dask client.submit
的程序,但前提是它在任何工人中都不是 运行。关于如何实现这一目标的任何提示?我可以从调度程序中获取此信息吗?
Dask 标记您对使用 client.submit
(或延迟或任何 high-level API)提交的函数的调用。因此,如果您提交与集群中已有的 运行 相同的新工作,它不会重复该任务,而是等待 already-running 完成。 (您可以使用关键字 pure=False
关闭此行为)
这里我们得到了四次相同的随机数:
In [35]: client.gather([client.submit(random.random) for _ in range(4)])
Out[35]: [0.609188678994237, 0.609188678994237, 0.609188678994237, 0.609188678994237]