【发布时间】:2019-11-27 12:28:25
【问题描述】:
from dask.distributed import Client
Client()
Client(do_not_spawn_new_if_default_address_in_use=True) # should not spawn a new default cluster
这有可能以某种方式做到吗?
【问题讨论】:
标签: dask dask-distributed
from dask.distributed import Client
Client()
Client(do_not_spawn_new_if_default_address_in_use=True) # should not spawn a new default cluster
这有可能以某种方式做到吗?
【问题讨论】:
标签: dask dask-distributed
非公共函数distributed.client._get_global_client()如果存在则返回当前客户端,或者None
client = _get_global_client() or Client()
由于是内部的,API 可能会更改,恕不另行通知。
【讨论】:
您实际上不应该在同一个 Python 会话中创建多个客户端。可能值得深入挖掘您为什么不止一次致电Client()。
如果您已经在默认地址上运行了 Dask 集群,您可以设置 DASK_SCHEDULER_ADDRESS 环境变量,这将指示客户端查看那里而不是创建本地集群。
>>> import os
>>> os.environ['DASK_SCHEDULER_ADDRESS'] = 'tcp://localhost:8786'
>>> from dask.distributed import Client
>>> Client() # Does not create a cluster
<Client: 'tcp://127.0.0.1:8786' processes=0 threads=0, memory=0 B>
【讨论】:
Client() 调用放在一个单元格中,而其他代码会被多次调用,这是唯一的原因。与其说是必须拥有,不如说是美好的。
Client() 放在一个您只调用一次的不同单元格中。