如何使用SLURMRunner(作业队列)设置Dask仪表板地址并通过SSH端口转发访问它?

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

我正在尝试使用 SLURMRunner 中的

dask-jobqueue
在远程集群上运行
Dask Scheduler 和 Workers
。我想将 Dask dashboard 绑定到
0.0.0.0
(以便可以通过端口转发访问)并从我的本地计算机访问它。

但是,仪表板始终绑定到默认 IP 和端口 (

10.x.x.x:8787
),并且我的配置尝试似乎都不起作用。这是我迄今为止尝试过的:


1. 环境变量方法

在运行脚本之前,我设置:

export DASK_DISTRIBUTED__SCHEDULER__DASHBOARD__ADDRESS="0.0.0.0:8789"
python my_script.py

但是当我检查日志时,仪表板仍然绑定到默认的IP和端口(

8787
)。


2. 以编程方式设置仪表板地址

在初始化

dask.config.set()
之前,我尝试使用
SLURMRunner
设置仪表板地址:

import dask
from dask_jobqueue import SLURMRunner
from dask.distributed import Client

dask.config.set({"distributed.scheduler.dashboard.address": "0.0.0.0:8789"})

runner = SLURMRunner()

client = Client(runner)

print(client.dashboard_link)

尽管进行了此设置,日志仍然显示仪表板绑定到

10.x.x.x:8787


3. 使用配置文件

我在

dask.yaml
创建了一个
~/.config/dask/dask.yaml
文件,其中包含以下内容:

distributed:
  scheduler:
    dashboard:
      address: "0.0.0.0:8789"

我确保通过运行来获取配置:

但是调度程序仍然绑定到

10.x.x.x:8787


问题:

如何强制由SLURMRunner

启动的Dask Scheduler
将仪表板绑定到
0.0.0.0:8789
,以便我可以通过SSH端口转发访问它?

是否有其他方法可以在

SLURMRunner
中配置或覆盖此行为?


备注:

  • Python
    3.10.10,
    dask
    2024.9.1,
    dask-jobqueue
    0.9.0
  • SLURMRunner 是一个更大脚本的一部分,所以我更愿意坚持使用它,而不是切换到手动
    dask-scheduler
    启动。

任何帮助或建议将不胜感激!

python dask slurm dask-distributed dask-jobqueue
1个回答
0
投票

根据 https://jobqueue.dask.org/en/latest/clusters-interactive.html#viewing-the-dask-dashboard,您应该使用

scheduler_options={'dashboard_address': '0.0.0.0:12435'}
kwargs。我不熟悉 SLURMRunner,但我可以看到在 Python 代码中它应该接受它。

© www.soinside.com 2019 - 2024. All rights reserved.