前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在HPC集群使用Jupyter Lab

如何在HPC集群使用Jupyter Lab

作者头像
实验盒
发布2021-09-22 12:20:55
1.8K0
发布2021-09-22 12:20:55
举报
文章被收录于专栏:实验盒实验盒

在 PBS 任务递交系统的 HPC 集群上,我们需要在登录节点上用 qsub 命令递交任务,把计算任务投递到计算节点中运算。如果你想在集群上使用 Jupyter Lab 或者 Jupyter Notebook,该怎么办?

思路其实非常简单,可以先用 qsub 命令投递一个交互式任务,然后在交互式 shell 中打开 Jupyter Lab,设置好端口转发;也可以直接投递一个创建 Jupyter Lab 的任务,然后设置端口转发。

相对来说,第一种方法要简单一些,这里介绍第一种方法。如果想了解第二种方法,请在文章末尾查看相应链接。

投递交互式任务

使用 qsub 的 -I 可以创建交互式作业,这样你就能在终端上直接交互式使用计算节点。比如,递交的队列名字为 queueName,可以:

代码语言:javascript
复制
qsub -I -q queueName

成功的话,终端会显示连接上的节点名字:

代码语言:javascript
复制
shiyanhe@shiyanheNode23:~

这时候,你在终端上执行的各种命令,是在 shiyanheNode23 这个节点上运行的,而不是登录节点。

如要退出交互作业,可在终端输入 exit 命令,或使用按键 Ctrl+D

在投递交互式任务时,可以配合更多参数使用,比如指定队列、节点和任务名字,:

代码语言:javascript
复制
qsub -I -q cpu -l nodes=queueName -N jupyter

比如,指定队列和任务名字,申请 8 核 64 Gb 内存的资源:

代码语言:javascript
复制
qsub -I -q queueName -l ncpus=8,mem=64gb -N jupyter

查询所有队列,可以使用 qstat -q。查询空闲节点,可以使用 pbsnodes -l free。更多参数和命令的使用,请查找 PBS 使用教程和文档。

启动 Jupyter Lab

以登录的节点名字为 shiyanheNode23 、连接端口号为 8888 举例,接下来启动 Jupyter Lab:

代码语言:javascript
复制
jupyter lab --port=8888 --ip=shiyanheNode23 --no-browser

将会看得一长串文章,末尾包含连接信息。不过,这时候还不能直接连接,需要设置端口转发。

代码语言:javascript
复制
    To access the server, open this file in a browser:
        file:///home/shiyanhe/.local/share/jupyter/runtime/jpserver-15959-open.html
    Or copy and paste one of these URLs:
        http://shiyanheNode23:8888/lab?token=4t6e4c3046g89b16659cae6e5b1a6ede262a05953f4e7aev
     or http://127.0.0.1:8888/lab?token=4t6e4c3046g89b16659cae6e5b1a6ede262a05953f4e7aev

设置端口转发

Xshell

打开登录 HPC 登录节点的会话属性,按图片设置端口转发规则:

再新建一个 SSH 窗口,连接至 HPC 的登录节点。然后打开 http://127.0.0.1:8888/lab?token=XXXX 链接,就能使用 Jupyter Lab。

如果你提前知道计算节点或者指定了计算节点,可以直接在打开第一个 SSH 连接前就设置好端口转发,而不需要新建一个连接。

如果你不能提前知道使用的计算节点名称,建议在打开的第一个 SSH 连接时不要设置端口转发,以免跟这一步的新建的连接发生冲突。

MobaXterm

MobaXterm 的操作同样很简单,直接打开 Tunneling 选项,点击 New SSH tunnel, 填入端口转发信息:

保存好点一下 start 启动 SSH 隧道,再打开http://127.0.0.1:8888/lab?token=XXXX 链接就能使用 Jupyter Lab。

相对 XShell,MobaXterm 的设置要更为灵活,可以随时修改转发的信息,而无需新建 SSH 连接。

Shell

如果是在 Mac 或者 Linux 中操作,本地新建一个设置了端口转发规则的 SSH 连接即可:

代码语言:javascript
复制
ssh  -N -f -L localhost:port:computingNode:port userName@loginNodeip

比如:

代码语言:javascript
复制
ssh -N -f -L localhost:8888:shiyanheNode23:8888 shiyanhe@192.168.1.100

参考

  1. 在HPC的节点上使用jupyter notebook:https://www.cnblogs.com/leezx/p/12009741.html
  2. 远程访问电脑或集群中的jupyter notebook:https://zhuanlan.zhihu.com/p/186217467
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 实验盒 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 投递交互式任务
  • 启动 Jupyter Lab
  • 设置端口转发
    • Xshell
      • MobaXterm
        • Shell
        • 参考
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档