• 如何在HPC集群使用Jupyter Lab


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

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

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

    投递交互式任务

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

    qsub -I -q queueName
    
    

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

    shiyanhe@shiyanheNode23:~
    

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

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

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

    qsub -I -q cpu -l nodes=queueName -N jupyter
    

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

    qsub -I -q queueName -l ncpus=8,mem=64gb -N jupyter
    

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

    启动 Jupyter Lab

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

    jupyter lab --port=8888 --ip=shiyanheNode23 --no-browser
    

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

        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 连接即可:

    ssh  -N -f -L localhost:port:computingNode:port userName@loginNodeip
    

    比如:

    ssh -N -f -L localhost:8888:shiyanheNode23:8888 shiyanhe@192.168.1.100
    

    参考

    1. 在HPC的节点上使用jupyter notebook
    2. 远程访问电脑或集群中的jupyter notebook

  • 相关阅读:
    Python面试题汇总
    异常处理及反射
    DOM
    socket
    python生成器、迭代器、列表 字典 集合解析、迭代器表达式
    C++繁琐的类型转换,C++小知识之四种类型转换
    C++命名空间
    C++合并exe文件,将两个合并成一个
    BERT 之后,Transformer 还会出现高光时刻吗
    App开发常见布局,流式布局讲解
  • 原文地址:https://www.cnblogs.com/shiyanhe/p/15263183.html
Copyright © 2020-2023  润新知