【问题标题】:Setting up a remote environment that runs on a SLURM compute node设置在 SLURM 计算节点上运行的远程环境
【发布时间】:2022-08-19 13:15:10
【问题描述】:

我正在尝试设置一个远程环境(首选 PyCharm,VSCode 也可以),这样我就可以在 SLURM 管理的集群中的计算节点上运行和调试我的所有实验。问题是我必须从登录节点(我通过 SSH 连接)运行srun 才能保留资源并进行连接。大多数时候我这样做我也最终在另一台机器上。我想要的是能够通过sshsrun 连接一次,然后将所有内容通过隧道连接到这个新的硬件受限工作环境。

我尝试过的一些事情:

  • 使用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


【解决方案1】:

我强烈建议您在这里查看最新回复:https://github.com/microsoft/vscode-remote-release/issues/1722#issuecomment-1216040876

我试过它对我来说就像一个魅力,无论你想要什么 SBATCH 参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多