gpt4 book ai didi

python - Dask - 如何将任务分配给特定的 CPU

转载 作者:行者123 更新时间:2023-12-05 06:51:26 24 4
gpt4 key购买 nike

我正在使用 Dask 处理研究批处理,这些批处理非常繁重(从几分钟到几小时不等)。任务之间没有通信,它们只产生副结果。我使用的机器已经虚拟化了它下面的资源(约 30 个 CPU),所以我只是运行 LocalCluster。有什么方法可以将特定的 CPU 分配给任务吗?在 docs只有 gpu 和内存的例子。

我试过以类似的方式分配 CPU,但任务甚至不会开始处理。

client.submit(process, d, resources={'CPU': 1}) for d in data]

最佳答案

在您指定时任务没有开始的可能原因

client.submit(process, d, resources={'CPU': 1}) for d in data]

集群是在没有指定每个工作人员都拥有该资源的情况下启动的(这必须在工作人员启动时完成)。以下是确保工作人员拥有该资源的方法:

from dask.distributed import Client, LocalCluster
cluster = LocalCluster(resources={'CPU': 1})
client = Client(cluster)

为了更细粒度的控制,可以将任务分配给特定的工作人员。首先,获取每个 worker 的地址

list_workers = list(client.scheduler_info()['workers'])

然后指定哪些 worker 可以完成任务:

# submit for completion only by the first worker in the list
results_specific_worker = [client.submit(process, d, workers=list_workers[0]) for d in data]

# submit for completion by the first two workers
results_specific_workers = [client.submit(process, d, workers=list_workers[0:2]) for d in data]

关于python - Dask - 如何将任务分配给特定的 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66162626/

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