gpt4 book ai didi

dask - dask.distributed 中的信号量?

转载 作者:行者123 更新时间:2023-12-03 05:20:37 25 4
gpt4 key购买 nike

我有一个包含 n 个工作线程的 dask 集群,并希望工作线程对数据库进行查询。但数据库只能并行处理 m 个查询,其中 m < n。我如何在 dask.distributed 中对其进行建模?只有 m 个工作人员应该并行执行这样的任务。

我已经看到分布式支持锁( http://distributed.readthedocs.io/en/latest/api.html#distributed.Lock )。但这样一来,我只能并行执行一个查询,而不是 m。

我还发现我可以为每个工作人员定义资源( https://distributed.readthedocs.io/en/latest/resources.html )。但这也不合适,因为数据库独立于工作人员。我要么必须为每个工作人员定义 1 个数据库资源(这会导致太多并行查询)。或者我必须将m个数据库资源分配给n个worker,这对于设置集群来说是困难的,而且在执行上也不是最优的。

是否可以在 dask 中定义类似信号量的东西来解决这个问题?

最佳答案

你可能可以用锁和变量来破解一些东西。

一个更简洁的解决方案是像锁的实现方式一样实现信号量。根据您的经验,这可能并不难(锁实现有 150 行),并且会是一个受欢迎的拉取请求。

https://github.com/dask/distributed/blob/master/distributed/lock.py

关于dask - dask.distributed 中的信号量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48667371/

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