首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Slurm集群下如何远程连接Jupyter并使用GPU资源?

Slurm集群下如何远程连接Jupyter并使用GPU资源?

作者头像
marsggbo
发布2022-09-19 15:44:51
发布2022-09-19 15:44:51
2.1K0
举报

背景

Slurm集群一般是由一个主节点(master)和各个带有GPU资源的子节点组成的,每次要想使用GPU需要通过主节点跳转到子节点。那么如果我们想使用jupyter使用子节点的GPU应该怎么做呢?

我有试过连接子节点后直接运行jupyter命令,然后再本地电脑上打开127.0.0.1:8888/token?=***,但是总是失败。其实,原因是因为我们本地电脑监听的是master节点的端口,并不能监听到子节点的端口,所以我们还需要将本地电脑和子节点的端口做映射之后才可访问jupyter。废话不多说,直接看如下教程:

方法

  1. 新建一个终端连接集群中的某个节点,假设节点名是v100

假设你已经远程连接到你的集群的master节点,然后执行以下命令进入某个指定的带有GPU资源的节点

代码语言:javascript
复制
srun -N 1 -p v100 -t 1440 --pty "bash";
  • -p v100表示连接名为v100的节点
  • -t 1440表示1440分钟,1440=24*60,即一天
  • --pty "bash"表示进入交互界面
  1. 查看节点IP
代码语言:javascript
复制
cat /etc/hosts

运行上述命令后会打印出主节点和所有子节点的IP,输出大概长这样

代码语言:javascript
复制
127.0.0.1               localhost.localdomain localhost localhost4.localdomain4 localhost4
::1                     localhost.localdomain localhost localhost6.localdomain6 localhost6
10.31.29.16           psgcluster.cm.cluster ** master.cm.cluster master localmaster.cm.cluster localmaster

10.31.11.21    wwmaster        wwmaster.psg.**.zone
10.10.0.1       hydra

# PSG Cluster
10.31.225.88    v99
10.31.225.89    v100

在这个例子中我们需要找到v100节点的ip,可以看到是10.31.225.89。记住这个IP,后面会用到。

  1. 运行jupyter-lab

第一步运行后会进入v100节点,之后我们需要运行jupyter环境,指定一下端口号,这里以8889为例,你也可以设置其他端口

代码语言:javascript
复制
jupyter-lab --port 8889
代码语言:javascript
复制
...
 LabApp] JupyterLab application directory is /datasets/xihe/miniconda3/envs/hyperbox/share/jupyter/lab
[I 2022-07-27 20:49:19.295 ServerApp] jupyterlab | extension was successfully loaded.
[I 2022-07-27 20:49:19.296 ServerApp] Serving notebooks from local directory: /home/xihe
[I 2022-07-27 20:49:19.296 ServerApp] Jupyter Server 1.11.0 is running at:
[I 2022-07-27 20:49:19.296 ServerApp] http://cluster:8889/lab?token=0be46135c38dfaa32e6c9257d00cbcb1d19ec3cc5d93f548
[I 2022-07-27 20:49:19.296 ServerApp]  or http://127.0.0.1:8889/lab?token=0be46135c38dfaa32e6c9257d00cbcb1d19ec3cc5d93f548
  1. 实现本地和子节点的端口映射

创建一个新的终端,使用ssh命令进行映射

代码语言:javascript
复制
ssh -L8889:10.31.225.89:8889 username@cluster.**.com

这样就完成了本地电脑和v100子节点在8889端口的映射,此时你在打开第3步输出的ip地址就可以访问jupyter啦,即http://127.0.0.1:8889/lab?token=0be46135c38dfaa32e6c9257d00cbcb1d19ec3cc5d93f548

MARSGGBO♥原创

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档