Skip to main content

校内用户超算集群申请与基本使用简明指南(2024年后新版)

本文将简述集群使用的基本过程,但是详细的操作和使用仍然需要仔细阅读超级计算使用说明。

关于scc.nju.edu.cn和access.nju.edu.cn的信息已经过时,等待更新(新版文档正在重新建设中)

一、账号获取

    新用户在scc.nju.edu.cn首页点击注册账户

      校内用户绑定统一身份认证:① “统一认证平台用户”选择“是”;②点击验证信息;③获取验证码,验证码通过邮箱发送。

        填写表单,用户组输入导师账号名(不知道就去问课题组里),提交申请; 组长(即课题组里负责审批的人,如果不清楚也问组里)登录scc.nju.edu.cn自助审批新用户,通过后账号立刻生效,即可使用。 新用户再次登入scc.nju.edu.cn,即可进行一些账号信息的维护,包括重置密码、动态口令等。

        如果组里之前没注册过相关账号,请联系姚老师:

        二、登入资产

        注册成功后,用注册成功的账号(不是统一身份认证)访问access.nju.edu.cn

        2.1、首次登入

        首次登入会要求设置两步认证:

        两步认证请另行参阅:eScience服务双重认证简明指南

        按照需求使用一个验证器即可。但注意,如果没有备份和导出功能,手机一旦更换,这个设置也会失效(当然,你可以直接去scc.nju.edu.cn重置,如上文所说)。 下面以Microsoft Authenticator(绑定微软账号云端备份,推荐,但可能安卓/鸿蒙手机需要谷歌框架,不同机型如何打开或安装谷歌框架请直接百度)为例:

        扫描二维码即可添加成功。

        2.2、绑定成功后登入

        打开前面的两步认证软件,点开对应access.nju.edu.cn的账号:

        获取其中的一次性密码代码,登入

        进入后,可以看见你的账户下分配的资产:

        按照本页顶端的提示,安装ShtermClient之后,点击资产,会显示四个按钮:

          ssh:命令行登入,这个一般就足够了 sftp:大量(数量多、体积大)文件传输 Xfce4:远程图形界面,可以简单进行一些文件操作 VNC:远程图形界面

          三、登录资产

          3.1、SSH客户端登入:以Xshell为例

          由于命令行一定是需要跨过去的坎,所以后面默认会主要使用ssh方式。 Windows下推荐使用Xshell(当然你有其他的客户端甚至是原生的Linux都可以): 家庭/学校免费 - NetSarang Website

          安装完打开Xshell,点击左上角的新建来新建会话

          设置自定义的名称之后,将主机设置为access.nju.edu.cn(这是教育网/校园网入口):

          确定后保存。

          双击刚刚新建的会话,然后第一次连接可能会出现“SSH安全警告”,询问是否“接受此主机密码?”,接受并保存即可。

          下一个可能弹出的页面中,会询问你的用户名(注意!不是统一身份认证,是你的集群上的用户名!),为了方便可以勾选记住用户名

          下一步中,需要输入密码。密码请遵循账户密码+两步认证的格式,但是中间用空格空开。例如,账户密码为:qwerty,此时两步认证软件软件内的代码为123456,那么你这里需要填写qwerty 123456。千万不要勾选记住密码,因为这个格式显然后半部分每次会变。

          登入成功后,是登录节点。应当会这么显示:

          友情提示——在这里改字体和大小:

          在这里改配色方案:

          对自己的眼睛好一点……

          扩展阅读: 什么是SSH?SSH是如何工作的? - 华为

          3.2、更易用的文件传输:Xftp

          集群支持sftp方式的文件传输。比起使用rz、sz等命令的方式,sftp客户端具有易用、直观的特点,适合传输多个、大批量的文件。Windows下,这里和Xshell配套的软件便是Xftp。

          XFTP - NetSarang Website

          Xftp使用参数:

            主机:access.nju.edu.cn,默认端口22 协议:sftp 用户名:集群用户名 密码:和上面登入Xshell的密码一致 用户目录:如果你在上面ssh登入后,输入echo ~返回的是/fsa/home/集群用户名,那么sftp下用户目录就是/hpc_login1 sftp (10.1.0.101)/self/fsa/home/集群用户名

            非Windows用户的SFTP方案见:SFTP登录(文件传输)

            其他情况可以去远程登录文档内寻找答案。

            四、Linux命令行使用

            命令行五花八门,说到底,都是命令 参数(注意中间的空格)这种格式。

            基本命令行参考:

            命令 用途 ls <路径> 列出指定目录<路径>下的文件和文件夹 cd <路径> 切换到指定目录<路径> mkdir <文件夹> 在当前目录创建一个叫<文件夹>的文件夹 vim <文件> 使用Vim编辑文本文件<文件>(脚本之类的),如果<文件>不存在,就创建它。Vim是一款非常强大的命令行编辑器,学习见:Linux vi/vim | 菜鸟教程GitHub - wsdjeg/Learn-Vim_zh_cn rzsz <文件> 少量小文件传输和下载 tar 打包压缩与解压,可以用来打包或解压多个文件 cp 复制 mv 移动 rm 删除

            上表只是告诉了你一个目录,具体各个命令如何使用你可以根据上述表来搜索学习。 在集群上为了提交作业,还需要知道bsubbjobs等集群使用的lsf作业系统命令。这部分需要仔细阅读:https://doc.nju.edu.cn/books/efe93/page/4f4ad

            尽管有SFTP软件可以免去大量Linux命令文件操作,但是还是建议稍微了解一些Linux的基础命令。

            五、一个提交作业的演示

            基本的脚本提交

            以提交一个DMI_pbc.mix的mumax计算脚本为例: ssh登入后,在登录节点上输入:

            ls
            

            查看当前目录(登录节点的用户主目录)有些什么。

            mkdir mumax_20221014
            cd mumax_20221014
            

            第一行:创建一个mumax_20221014的文件夹(make directory)管理这一次的计算任务

            第二行:切换进刚刚创建的那个目录(change directory)

            rz
            

            唤起传输界面:

            选择要上传的mumax计算脚本DMI_pbc.mix文件。

            vim job.lsf
            

            创建一个job.lsf的作业提交脚本,并且参照https://doc.nju.edu.cn/books/efe93/page/mumax 的示例写入:

            #BSUB -q 723090ib
            #BSUB -gpu num=1
            
            mx3in=DMI_pbc.mix
            
            module load cuda/11.2.0
            /fs00/software/mumax/3.10-cuda11.0/mumax3 $mx3in
            

            第1行:作业参数,指定使用的计算队列

            第2行:作业参数,指定使用的GPU数目

            第4行:mx3in变量设定为DMI_pbc.mix,当然你可以不叫这个变量名

            第6行:载入cuda-11.2.0的依赖(见:https://doc.nju.edu.cn/books/efe93/page/nvidia

            第7行:使用mumax3软件输入mx3in变量的值所表示的计算脚本

            当然,如果上述流程实在用不习惯,也可以:

              直接用Xfce4从图形界面登入,用文本编辑器修改

                使用SFTP方案直接在本地修改,然后上传回去

                无论是如何上传脚本,从Windows上传回集群最好用dos2unix命令来转换换行符,或者干脆在Windows下通过编辑器如VS Code自己的换行符切换来处理这个问题。

                作业提交脚本本质上其实是shell脚本,因此Shell 教程 | 菜鸟教程也通用。

                bsub < job.lsf
                

                job.lsf通过bsub命令按照作业提交脚本的设定提交至计算队列。提交完成后会显示:

                [hfd_jitz@login1 mumax_test_2]$ bsub < mumax_job.lsf 
                Job <40999791> is submitted to queue <723090ib>.
                

                查看作业情况

                bjobs
                

                可以查看你当前在跑的任务情况:

                [hfd_jitz@login1 mumax_test_2]$ bjobs
                JOBID    USER        STAT  QUEUE       JOB_NAME   SUBMIT_TIME  EXEC_HOST
                40999791 hfd_jitz    RUN   723090ib    *x3 $mx3in Oct 14 22:08 6*m002
                

                任务ID:40999791

                计算队列:723090ib

                GPU编号:6

                主机:m002

                特别地,本例子是一个GPU任务,因此还可以这样查看GPU任务的运行情况:

                ssh m002
                

                登入到计算节点(注意看@前后的“host”已经从login1变为m002):

                [hfd_jitz@login1 mumax_test_2]$ ssh m002
                Last login: Fri Oct 14 11:37:26 2022 from m002
                [hfd_jitz@m002 ~]$ 
                

                在计算节点执行

                nvidia-smi
                

                可以查看GPU上的资源使用情况,对应的GPU编号即是你在使用的部分。

                top
                

                可以查看当前计算节点的任务。

                此外,还有一个可视化查看的方法:https://mon.nju.edu.cn

                进入grafana,在General/NVIDIA DCGM Exporter中,instance为m002:9400(也就是刚才那个m002)的GPU情况如下:

                可以看出,上述任务15分钟不到就跑完了。

                如果需要从计算节点m002返回到登录节点login1,则输入

                exit
                

                如果要下载文件,通过sz <文件路径>命令可以下载单个文件;或者通过Xftp传输管理;或者先通过图形界面(Xfce4)进行一些简单的数据结果查看,再把数据弄回来。

                此外,亦可通过HPC账号集成的云盘来实现文件同步:集成云盘,其用法与Box云盘基本一致。