Chr*_*ing 5 dask dask-distributed
我有一个带有n个worker的dask集群,并希望worker对数据库进行查询.但是数据库只能并行处理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).但这也不合适,因为数据库独立于工人.我要么必须为每个worker定义1个数据库资源(这会导致太多的并行查询).或者我必须将m个数据库资源分配给n个工作者,这在设置集群和执行中次优时很困难.
是否可以在dask中定义类似信号量的东西来解决这个问题?
你可能可以用锁和变量来破解一些东西。
一个更简洁的解决方案是像锁的实现方式一样实现信号量。根据您的经验,这可能并不难(锁实现有 150 行),并且会是一个受欢迎的拉取请求。
https://github.com/dask/distributed/blob/master/distributed/lock.py
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |