【发布时间】:2022-08-19 13:15:10
【问题描述】:
我正在尝试设置一个远程环境(首选 PyCharm,VSCode 也可以),这样我就可以在 SLURM 管理的集群中的计算节点上运行和调试我的所有实验。问题是我必须从登录节点(我通过 SSH 连接)运行srun 才能保留资源并进行连接。大多数时候我这样做我也最终在另一台机器上。我想要的是能够通过ssh 和srun 连接一次,然后将所有内容通过隧道连接到这个新的硬件受限工作环境。
我尝试过的一些事情:
-
使用
srun运行交互式bash会话,然后使用sattach将作业附加到该作业ID。我认为这将始终等到 bash 会话结束,然后才能运行sattach提供的命令。 -
sshing 进入一个已经在运行我的工作的节点。 (由于我认为是pam_slurm_adopt,我不能ssh进入任何节点,但我能够ssh进入我的工作已经在运行的地方。这可行,但让我可以访问机器上的所有 GPU 和所有硬件,一旦其他人加入同一个节点而只保留一个或两个 GPU,就会导致混乱。 -
此线程中的所有内容https://github.com/microsoft/vscode-remote-release/issues/1722
我的一个想法是 srun tmux 而不是 bash 然后转发端口并在通过 SSH 连接到登录节点时以某种方式附加到该 tmux 会话,但我不完全确定这将如何工作。
-
简而言之,您想将计算节点端口转发到您的本地机器吗?我每天都这样做,如果这是你想做的。
-
是的!您是否能够在尊重分配给
srun实例的硬件的同时做到这一点(仅使用正确数量的 CPU/内存/GPU)? -
是的。您需要在端口上启动服务器并将该端口转发到本地 PC。理想情况下,我使用 Jupyter 实验室服务器。我在 VS 代码上打开这个转发端口。您可以在 jupyter 服务器中使用 python 脚本以及 ipynb 文件。如果您分配 1 个 GPU,那么您将只能使用 1 个 GPU,如果这就是您的意思。
-
但这不允许你运行你的 VSCode SSH 环境,对吧?我可以通过打开端口来建立 SSH 连接吗?
-
您的意思是要在集群上运行本地环境吗?我不认为这是可能的。 HPC 不应该像这样工作。您可以使用 SSH 转发打开端口,但 HPC 集群中没有接收器。为什么不复制您的
requirements.txt并在 HPC 集群上创建一个新环境?此外,您可以创建 Apptainer 映像,因为 Docker 不支持 HPC。
标签: cluster-computing jobs slurm hpc