我如何将交互式瞬时 PBS 会话端口绑定到头节点,然后将头节点端口绑定到我的本地机器?

我如何将交互式瞬时 PBS 会话端口绑定到头节点,然后将头节点端口绑定到我的本地机器?

简而言之:我如何将交互式瞬时 PBS 会话端口绑定到头节点,然后将头节点端口绑定到我的本地计算机?因此,三台机器的端口绑定链。

更多细节:

免责声明:我不完全确定我是否理解端口绑定和转发之间的细微差别,因此如果我说的话听起来不对,请认为是我的错。

我有 3 台机器,涉及以下变量:

机器 接近性 超级用户访问 类型 持久的
笔记本电脑 当地的 是的 OpenSUSE 是的
头节点 偏僻的 PBS 头节点 是的
交互节点 偏僻的 PBS 互动环节

我可以ssh username@<ip-address> -L 8080:localhost:8080在头节点中执行 ssh,然后在笔记本电脑的 GUI 上jupyter lab --no-browser --port 8080打开与远程服务器的连接。Jupyter但头节点的权力有限。但是,我们可以访问计算能力上限明显更高的交互式会话。我使用以下 PBS 脚本启动并访问它们

#!/bin/bash
#PBS -N interactive-job
#PBS -V -j oe -o interactive-job.qlog
#PBS -P labpool
#PBS -l system_metrics=true
#PBS -l nodes=1,instance_type=m5.4xlarge,spot_price=auto,instance_ami=ami-0961c39af220b9f68

但是当我jupyter lab --no-browser --port 8080从头节点内部执行此操作时,我无法再jupyter在本地 GUI 上访问远程服务器。我怀疑这是因为我的本地计算机与头节点的端口绑定,但与交互式会话的端口绑定。

我首先想到的解决方案是创建一个端口绑定链,将交互式会话连接到头节点,并将头节点连接到我的本地机器。我怎样才能做到这一点?

我认为我需要按如下方式定制脚本:

#!/bin/bash
#PBS -N interactive-job
#PBS -V -j oe -o interactive-job.qlog
#PBS -P labpool
#PBS -l system_metrics=true
#PBS -l nodes=1,instance_type=m5.4xlarge,spot_price=auto,instance_ami=ami-0961c39af220b9f68

ssh interactive_session_name@new_ip -L 8080:localhost:8080 # **Not sure if this is right.**

主要的技术问题是interactive_session_name@new_ip每次都会发生变化,并在之后显示qsub -I job_script.sh有没有办法在脚本中预先推断出名称?

尝试在搜索引擎上查找 PBS 的定制信息已被证明是困难的,因为我经常会碰到有关其他 PBS(公共广播服务)的文章。

有什么办法可以解决这个问题吗?

相关内容