当客户端不是默认调度程序时,Dask.distributed 性能报告不起作用

问题描述 投票:0回答:1

我刚刚尝试为带有

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 dask-distributed
1个回答
0
投票

在基于此线程创建 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)
© www.soinside.com 2019 - 2024. All rights reserved.