校内用户超算集群申请与基本使用简明指南(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使用参数:
主机: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命令行使用
命令行五花八门,说到底,都是命令 参数(注意中间的空格)这种格式。
基本命令行参考:
| |
| |
| |
| |
| |
| |
| |
| |
|
上表只是告诉了你一个目录,具体各个命令如何使用你可以根据上述表来搜索学习。
在集群上为了提交作业,还需要知道bsub、bjobs等集群使用的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云盘基本一致。