Python 是否可以在特定工作人员列表上运行dask/分布式作业

Python 是否可以在特定工作人员列表上运行dask/分布式作业,python,distributed,dask,Python,Distributed,Dask,我有一个有40个工人的计算网络,但我只需要在某些主机上执行计算。是否可以限制或重建网络以仅使用指定的工作线程?是的,您可以使用workers=关键字将特定的工作线程指定给client.submit、client.map、client.compute或client.persist futures = client.map(func, args, workers=['worker-1', 'worker-2']) 看 更多选择 您还可以向workers注册GPU之类的资源,并将计算限制为这些资源。

我有一个有40个工人的计算网络,但我只需要在某些主机上执行计算。是否可以限制或重建网络以仅使用指定的工作线程?

是的,您可以使用
workers=
关键字将特定的工作线程指定给client.submit、client.map、client.compute或client.persist

futures = client.map(func, args, workers=['worker-1', 'worker-2'])
看 更多选择


您还可以向workers注册GPU之类的资源,并将计算限制为这些资源。有关更多信息,请参阅。

您能更具体一点吗?除了回答是/否之外,很难说出你在寻找什么。请看。这有助于限制工人名单,但我有一个奇怪的情况。我在测试中有4个工人,10个任务用于计算,但只选择了两个随机工人进行计算。在另一个计算中,另外两个随机工人被选中。我找到了部分工人被选中的根本原因。我向工人们散播了一些数据:我找到了部分工人选择的根本原因。我将一些数据分散到了workers:
client.scatter({'config':{},'data':{},workers=['a','b','c','d'])
,因此我将数据部分分散到了两个worker:
{'tcp://a':['config'],'tcp://b':['data']}
当我使用broadcast时,我需要所有worker的数据,并且所有这些数据都用于计算:
client.scatter({'config':{},'data':{},workers=['a','b','c','d',broadcast=True)