我刚刚尝试为带有
Client()
的 LocalCluster
创建绩效报告。然而,似乎只有当 Client()
被注册为默认调度程序 (set_as_default=True
) 时,性能报告才有效。
import dask.distributed as dd
cluster = dd.LocalCluster(n_workers=2, threads_per_worker=4, memory_limit='5GiB')
client = dd.Client(cluster, set_as_default=False)
with dd.performance_report(filename='dask-report.html'):
print(client)
print(cluster)
我想念什么吗?
创建以下错误消息:
Traceback (most recent call last):
File “bla/test.py”, line 9, in <module>
with dd.performance_report(filename='dask-report.html'):
File "bla/lib/python3.10/site-packages/distributed/client.py", line 5497, in __enter__
get_client().sync(self.__aenter__)
File "bla/lib/python3.10/site-packages/distributed/worker.py", line 2771, in get_client
raise ValueError("No global client found and no address provided")
ValueError: No global client found and no address provided
有没有办法全局注册调度器?
提前致谢!
在基于此线程创建 Dask 功能请求 后,Florian Jetter 提供了一个当前有效的解决方案:
如果你不想将客户端设置为默认,你也可以使用 Client.as_current 将客户端设置为活动的默认客户端 只要你在上下文管理器中。
import dask.distributed as dd
cluster = dd.LocalCluster(n_workers=2, threads_per_worker=4, memory_limit='5GiB')
client = dd.Client(cluster, set_as_default=False)
with client.as_current():
with dd.performance_report(filename='dask-report.html'):
print(client)
print(cluster)