gpt4 book ai didi

python - Dask Distributed - 如何为每个工作人员运行一个任务,使该任务在工作人员可用的所有内核上运行?

转载 作者:行者123 更新时间:2023-11-28 17:14:35 24 4
gpt4 key购买 nike

我对使用 distributed python 库还很陌生。我有 4 个工作人员,我已经成功地为每个工作人员使用 14 个内核(在 16 个可用内核中)启动了一些并行运行,导致 4*14=56 个任务并行运行。

但是,如果我只想在每个工作人员中同时执行一项任务,该如何进行。这样,我希望在工作器上并行使用 14 个内核执行一项任务。

最佳答案

Dask workers 维护一个线程池,用于启动任务。每个任务始终使用该池中的一个线程。您不能告诉任务从该池中获取多个线程。

但是,还有其他方法可以控制和限制 dask worker 的并发性。在您的情况下,您可能会考虑定义 worker resources .这会让您阻止许多大任务同时在相同的工作人员上运行。

在下面的示例中,我们定义每个工作人员都有一个 Foo 资源,并且每个任务都需要一个 Foo 才能运行。这将阻止任何两个任务在同一个工作人员上同时运行。

dask-worker scheduler-address:8786 --resources Foo=1
dask-worker scheduler-address:8786 --resources Foo=1

.

from dask.distributed import Client
client = Client('scheduler-address:8786')
futures = client.map(my_expensive_function, ..., resources={'Foo': 1})

关于python - Dask Distributed - 如何为每个工作人员运行一个任务,使该任务在工作人员可用的所有内核上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45052535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com