Dask:从客户端获取调度程序地址
Dask: Get scheduler address from Client
我正在使用 dask-mpi 在我的 HPC 上进行部署。我想获得与另一个库一起使用的调度程序地址。这在 LocalCluster
(或任何其他显式集群定义)的情况下很简单,例如:
from dask.distributed import Client, LocalCluster
cluster = LocalCluster()
client = Client(cluster)
address = cluster.scheduler_address
但是 dask-mpi
初始化 没有 集群对象:
from dask.distributed import Client
from dask_mpi import initialize
initialize()
client = Client()
尝试访问基础 client.cluster
没有帮助,因为在这种情况下,它被设置为 None
。
是否有其他方法可以从 client
或其他地方获取调度程序地址?谢谢!
这不是直接的解决方案,直接来自 docs,但一种方法是指定写入调度程序文件的位置:
mpirun -np 4 dask-mpi --scheduler-file ~/dask-scheduler.json
该文件将包含连接信息:
from dask.distributed import Client
client = Client(scheduler_file='~/dask-scheduler.json')
目前没有记录(至少我在 docs 中找不到),但我发现 Client
对象有一个 scheduler
属性。地址和其他属性可以像这样获得:
from dask.distributed import Client
client = Client()
address = client.scheduler.address
我想 client.scheduler
应该 return 一个 Scheduler 对象,但我还没有做更多的挖掘。
我正在使用 dask-mpi 在我的 HPC 上进行部署。我想获得与另一个库一起使用的调度程序地址。这在 LocalCluster
(或任何其他显式集群定义)的情况下很简单,例如:
from dask.distributed import Client, LocalCluster
cluster = LocalCluster()
client = Client(cluster)
address = cluster.scheduler_address
但是 dask-mpi
初始化 没有 集群对象:
from dask.distributed import Client
from dask_mpi import initialize
initialize()
client = Client()
尝试访问基础 client.cluster
没有帮助,因为在这种情况下,它被设置为 None
。
是否有其他方法可以从 client
或其他地方获取调度程序地址?谢谢!
这不是直接的解决方案,直接来自 docs,但一种方法是指定写入调度程序文件的位置:
mpirun -np 4 dask-mpi --scheduler-file ~/dask-scheduler.json
该文件将包含连接信息:
from dask.distributed import Client
client = Client(scheduler_file='~/dask-scheduler.json')
目前没有记录(至少我在 docs 中找不到),但我发现 Client
对象有一个 scheduler
属性。地址和其他属性可以像这样获得:
from dask.distributed import Client
client = Client()
address = client.scheduler.address
我想 client.scheduler
应该 return 一个 Scheduler 对象,但我还没有做更多的挖掘。