超级计算
- 指引
- 校内用户超算集群申请与基本使用简明指南(2024年后新版)
- 使用手册
- 硬件资源
- 软件资源
- GNU
- Intel
- NVIDIA
- AMD
- Python
- Golang
- Open MPI
- Tcl/TK
- 计算软件
- VASP6 GPU 编译
- Quantum Espresso
- NAMD
- OOMMF
- Mumax3
- 支撑软件
- Singularity Image
- gnuplot
- OVITO
- Vim
- Zsh
- AlphaFold 2
- AlphaFold 3
- RoseTTAFold
- ParallelFold 2
- 服务门户
- 测试报告
- AMD EPYC Rome VASP 测试
- Gromacs
- vasp6 gpu 测试
- Gromacs-2021.3 (比较常用GPU队列)
- Desmond_2022-4在HPC上的表现和批量化MD操作
- 集群运行Numpy程序的测试实践与注意事项
- 校内用户超算集群申请与基本使用简明指南(2024年以前,已过时)
- 收费办法
指引
欢迎您使用e-Science中心的超算服务
高性能计算集群提供了安全多样的远程登录方法,使用 SFTP、ZMODEM、云盘等多种方式可以进行数据传输。集群已集成云盘便捷同步和备份数据,如数据量巨大可采用移动存储直接进行数据拷贝,主要文件数据请自行备份!注意查看组和用户的的存储配额情况,满了就无法写入数据了。
禁止在登录节点或计算节点直接运行计算程序,用户必须通过作业调度系统提交作业并控制作业,通过容器化技术可以在完全自主和隔离的环境中运行程序。海量作业需要进行优化以便管理,查看信息可见作业调度和集群等整体情况。
集群有丰富的种类各异计算资源,有详细的描述和配置信息,用户可以根据自己的需求进行选择。存储资源中的高性能的全闪Burst Buffer为所有文件系统提供了高速缓存,可大幅提高IO密集型作业的性能。
集群在/fs00/software/
中安装有大量的软件资源,如GNU、Intel、NVIDIA、AMD的编译器和数学库等,常用的计算资源和支撑软件。
集群的所有运行监控运行监控数据全部公开访问,所有维护操作都记录在维护记录中,其中对用户有显著影响和重大维护均在维护日志中列出。
请用户仔细阅读使用手册,如有疑问可以通过QQ群、邮件和电话咨询。
姚舸
地址:江苏省南京市鼓楼区金银街15号唐仲英楼
电话:025-83621186
QQ群:1406661 | 公众号:微结构eScience |
---|---|
校内用户超算集群申请与基本使用简明指南(2024年后新版)
2024年春节后,集群登录方式迎来较大更新,本文为翻新版简明指南。
本文将简述集群使用的基本过程,但是详细的操作和使用仍然需要仔细阅读超级计算使用说明。
一、账号获取
- 新用户在
scc.nju.edu.cn
首页点击注册账户。
- 无论校内还是校外用户,均正常按照流程注册:
- 填写表单,用户组名称输入所在课题组的用户组名(不知道就去问课题组里),提交申请;
- 组长(即课题组里负责审批的人,如果不清楚也问组里)登录
scc.nju.edu.cn
自助审批新用户,通过后账号立刻生效,即可使用。 - 新用户再次登入
scc.nju.edu.cn
,即可进行一些账号信息的维护,包括重置密码、查看机时费用等。
如果组里之前没注册过相关账号,请联系姚老师:
yaoge@nju.edu.cn
二、登入资产
注册成功后,用注册成功的账号和密码(不是统一身份认证)访问entry.nju.edu.cn
:
2.1、首次登入
首次登入必须使用浏览器,会要求设置两步认证,屏幕会出现一个二维码要求绑定。手机安装下列支持 RFC 6238 的 TOTP 客户端 APP,扫描二维码(也可手动输入),然后点击“完成绑定”。具体建议的APP参照:eScience服务与软件兼容性报告 -两步认证软件支持情况表。
两步认证请另行参阅:eScience服务双重认证简明指南
按照需求使用一个验证器即可。但注意,如果没有备份和导出功能,手机一旦更换,这个设置也会失效。
如需重新进行两步认证绑定(如手机丢失),请用注册预留邮箱发邮件至
yaoge@nju.edu.cn
申请并抄送填写用户注册表单的教职工邮箱。 下面以Microsoft Authenticator(绑定微软账号云端备份,推荐,但可能安卓/鸿蒙手机需要谷歌框架,不同机型如何打开或安装谷歌框架请直接百度)为例:
扫描二维码即可添加成功。
2.2、绑定成功后登入
打开前面的两步认证软件,点开对应entry.nju.edu.cn
的账号:
获取其中的一次性密码代码,登入
进入后,可以看见你的账户下分配的资产:
按照本页顶端的提示,安装AccessClient之后,点击更多,会显示三种访问方式:
- ssh:命令行登入,这个一般就足够了
- sftp:大量(数量多、体积大)文件传输
- Xfwd:图形界面
直接点击上述选项访问可以直接在从浏览器访问而无需再次登入账户。此外,用户可以通过点击右上角用户名,更改账号设置-会话配置-字符会话/文件传输来实现更加方便地登入。例如,将字符会话和文件传输会话访问方式分别修改为xshell
和xftp
或其他本机安装有的客户端,即可实现从entry.nju.edu.cn
点击直接唤起已经安装的Xshell和Xftp,无需再次输入密码。
三、登录资产
3.1、SSH客户端登入:以Xshell为例
由于命令行一定是需要跨过去的坎,所以后面默认会主要使用ssh方式。
Windows下推荐使用Xshell(当然你有其他的客户端甚至是原生的Linux都可以): 家庭/学校免费 - NetSarang Website(最新版直接下载普通版本即可使用)
安装完打开Xshell,点击左上角的新建来新建会话
设置自定义的名称之后,将主机设置为entry.nju.edu.cn
:
在连接-用户身份验证中,按照集群用户名/10.1.0.101/self
的格式填入用户名,同时密码空着(或者输入账户密码也可,但是需要阅读下面“分两步输入”的方法介绍):
确定后保存。
打开刚刚新建的会话,然后第一次连接可能会出现“SSH安全警告”,询问是否“接受此主机密码?”,接受并保存即可。
下一步中,需要输入密码。密码有两种输入方式:
- 一次性输入:和原来一样,遵循
账户密码+两步认证
的格式,其中账户密码和scc.nju.edu.cn
的登录密码相同,但是中间用空格空开。例如,账户密码为:qwerty
,此时两步认证软件内的代码为123456
,那么你这里需要填写qwerty 123456
。千万不要勾选记住密码,因为这个方式显然后半部分每次会变。 - 分两步输入:先输入账户密码,在字符界面需要“2nd Password”时再单独输入手机两步认证软件内中的动态口令。可以勾选记住密码,因为这个方式中账户密码不变。
登入成功后,是登录节点。应当会这么显示:
友情提示——在这里改字体和大小:
在这里改配色方案:
对自己的眼睛好一点……
当然,你也可以直接登录entry.nju.edu.cn
,按照前文说明配置会话,点击ssh
方式登录资产自动登录Xshell。这是最简单的做法。
扩展阅读: 什么是SSH?SSH是如何工作的? - 华为
3.2、更易用的文件传输:Xftp
集群支持sftp方式的文件传输。比起使用rz、sz等命令的方式,sftp客户端具有易用、直观的特点,适合传输多个、大批量的文件。Windows下,这里和Xshell配套的软件便是Xftp。
Xftp使用参数:
- 主机:entry.nju.edu.cn,默认端口22
- 协议:sftp
- 用户名:
集群用户名/10.1.0.101/self
- 密码:和上面登入Xshell的方法1一致,方法2不适用
其他情况可以去远程登录文档内寻找答案。
当然,你也可以直接登录entry.nju.edu.cn
,按照前文说明配置会话,点击sftp
方式登录资产自动登录Xftp。这是最简单的做法。
3.3、网页端的文件传输与编辑
新版scc.nju.edu.cn
集群门户引入了一个新功能:文件浏览器。这个功能会更像网盘一样,让你直接访问集群上的文件并进行一定简单操作。
在主页面左上角点开,可以看到 “文件浏览器” 应用,点击:
弹出的界面中,会要求你登录身份。注意,这里的登录方式和前文不一样,密码与scc.nju.edu.cn
登录方式一致。即:
- 账号:集群用户名
- 密码:
scc.nju.edu.cn
门户密码(无两步认证)
认证后,还有两步认证验证码:
这里的两步认证验证码即为entry.nju.edu.cn
中该集群账号所绑定的两步认证。
“管道”连接成功之后,刷新该页面就可以看到文件目录了。你可以在网页端完成对文件的操作,包括:
- 文件/文件目录上传、移动、复制、删除
- 文件/文件目录解压缩
- 文本在线编辑
- 图片在线预览
四、Linux命令行使用
命令行五花八门,说到底,都是命令 参数
(注意中间的空格)这种格式。
基本命令行参考:
命令 | 用途 |
---|---|
ls <路径> |
列出指定目录<路径>下的文件和文件夹 |
cd <路径> |
切换到指定目录<路径> |
mkdir <文件夹> |
在当前目录创建一个叫<文件夹>的文件夹 |
vim <文件> |
使用Vim编辑文本文件<文件>(脚本之类的),如果<文件>不存在,就创建它。Vim是一款非常强大的命令行编辑器,学习见:Linux vi/vim | 菜鸟教程、GitHub - wsdjeg/Learn-Vim_zh_cn |
rz 和sz <文件> |
少量小文件传输和下载 |
tar |
打包压缩与解压,可以用来打包或解压多个文件 |
cp |
复制 |
mv |
移动 |
rm |
删除 |
上表只是告诉了你一个目录,具体各个命令如何使用你可以根据上述表来搜索学习。
在集群上为了提交作业,还需要知道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
变量的值所表示的计算脚本
当然,如果上述流程实在用不习惯,也可以:
- 直接从图形界面登入,用文本编辑器修改
- 使用SFTP方案直接在本地修改,然后上传回去
无论是如何上传脚本,从Windows上传回集群最好用
dos2unix
命令来转换换行符,或者干脆在Windows下通过编辑器如VS Code自己的换行符切换来处理这个问题。
- 使用
scc.nju.edu.cn
的在线文件浏览器简单编辑文本
作业提交脚本本质上其实是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
CPU核数:6
(单GPU分配的默认值)
主机: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传输管理;或者先通过图形界面(xfwd)/网页端文件浏览器进行一些简单的数据结果查看,再把数据弄回来。
此外,亦可通过HPC账号集成的云盘来实现文件同步:集成云盘,其用法与Box云盘基本一致。
使用手册
使用前请仔细阅读本手册
远程登录
登录方式
远程控制-登录方式
参考上述远程控制-登录方式链接内容,并合并覆盖以下内容:
账号密码
- 账号:集群用户名
- 密码:集群密码
Web
- Web支持图形界面xfwd、命令行界面ssh,文件传输sftp
SSH
- Username: 输入集群用户名/10.1.0.101/self(如用户名是yaoge,则输入yaoge/10.1.0.101/self)
SFTP
- Username: 输入集群用户名/10.1.0.101/self(如用户名是yaoge,则输入yaoge/10.1.0.101/self)
注意事项
- 登录后用 passwd 命令更改密码,密码至少8个字符,包含小写字母、大写字母、数字和特殊字符中至少三种,不能是常见密码
- 必须通过作业调度系统进行计算,不得在登录节点或计算节点直接运行计算程序,否则会被杀掉进程
VPN
南京大学 VPN
- 使用南京大学统一身份认证账号、密码登录南京大学VPN
- 南京大学VPN使用方法参考信息化建设管理服务中心网站
eScience中心 VPN
- 从官网下载安装对应的 VPN 客户端
- 服务器:cm.yaoge123.cn
- 端口:4433
- 用户名、密码:超算的用户名密码,注意密码不含动态口令
- 登录后仅能通过此VPN访问eScience中心的服务
数据传输
- SFTP:使用SFTP客户端浏览并传输文件,适合大文件和整个目录的上下传。
- ZMODEM:在登录节点上可用rz上传文件、sz下载文件,适合单个小文件的上下传。
- 云盘:通过云盘自动同步、传输和备份文件。
- 数据拷贝:直接使用移动硬盘拷贝大量数据文件。
数据拷贝
为方便大数据传输,中心提供数据拷贝服务,用户需提供大容量移动存储设备,文件系统格式为 ext4/XFS/exFAT ,并告知需要拷贝数据的目录(绝对路径),保证剩余空间足够。
- 推荐使用文件系统为 ext4/XFS ,Linux可以直接读写,Windows的WSL(Windows Subsystem for Linux)也可以直接读写。
- exFAT 可以方便的同时被 Windows 和 Linux 读写,但是某些情况下无法拷贝文件,且对于机械硬盘不适于长期使用。
集成云盘
独立账号
高性能计算集群用户可以使用集群账号直接登录云盘,用户名为集群账号@hpc.nju.edu.cn
,密码即集群账号密码;如集群账号为yaoge
,用户名填写yaoge@hpc.nju.edu.cn
。首次使用需要登录网页端激活账号,但集群账号不能使用云盘的上下传外链功能。
云盘上的集群账号与南京大学统一身份认证账号相互独立,如集群账号yaoge@hpc.nju.edu.cn
和南京大学统一身份认证账号0102003
是两个完全独立的账号,需要分别激活才能使用。
文件同步
通过云盘的多平台多终端同步功能,可将集群中的目录和本地计算机的目录同步,对本地目录的操作几乎立刻反应在集群的目录中,不再需要通过 SFTP 上下传文件。
- 计算结果输出到集群同步目录中,本地计算机会自动下载,可在本地直接查看和编辑输出文件;
- 计算输入文件放到本地同步目录中,集群会自动下载,直接引用输入文件即可提交作业。
客户端
登录节点已安装云盘同步客户端和挂载盘客户端
- 同步客户端命令行界面:seaf-cli(Linux命令行同步客户端手册)
- 同步客户端图形化界面:seafile-applet
- 挂载盘客户端命令行界面:seadrive(Linux命令行挂载盘手册)
- 挂载盘客户端图形化界面:seadrive-gui
除官方客户端外,也支持rclone
便捷操作。
挂载盘命令行客户端
-
获取Token(
<username>
替换为集群账号,<password>
替换为密码)curl -d 'username=<username>@hpc.nju.edu.cn' -d 'password=<password>' https://box.nju.edu.cn/api2/auth-token/
-
创建配置文件
~/seadrive.conf
,<username>
替换为集群账号,<token>
替换为上一步的返回值[account] server = https://box.nju.edu.cn username = <username>@hpc.nju.edu.cn token = <token> is_pro = true [general] client_name = hpc-login [cache] size_limit = 10GB clean_cache_interval = 10
-
启动挂载盘,命令在前台运行,新开一个窗口进行其它操作
seadrive -c ~/seadrive.conf -f -d ~/.seadrive/data -l ~/.seadrive/data/logs/seadrive.log ~/SeaDrive
-
如果报错
Transport endpoint is not connected
,执行:fusermount -u ~/SeaDrive
-
~/SeaDrive
目录就是云盘挂载在本地的目录,可以直接读写访问
同步命令行客户端
- 创建客户端本地数据目录(目录名可更改)
mkdir ~/Seafile
- 初始化客户端并指定本地数据目录(上一步创建的目录)
seaf-cli init -d ~/Seafile
- 启动客户端
seaf-cli start
- 列出云盘资料库ID(
<username>
替换为集群账号)seaf-cli list-remote -s https://box.nju.edu.cn -u <username>@hpc.nju.edu.cn
- 将本地目录与云盘资料库同步(
<library-id>
替换为上一步列出的某个资料库ID,<folder>
替换为本地目录)
将云盘资料库下载到本地目录seaf-cli sync -s https://box.nju.edu.cn -u <username>@hpc.nju.edu.cn -l <library-id> -d <folder>
seaf-cli download -s https://box.nju.edu.cn -u <username>@hpc.nju.edu.cn -l <library-id> -d <folder>
- 查看当前同步状态
seaf-cli status
- 解除本地目录同步
seaf-cli desync -d <folder>
- 停止客户端
seaf-cli stop
使用 rclone 进行云端文件操作
rclone 是一个强大的云存储管理工具,云盘也在其支持的存储类型内。使用rclone
可以更加符合命令行用户使用习惯地去存取云盘文件。
- (登录后第一次需要)启用
rclone
工具module load rclone
- (仅需设置一次)初次使用
rclone
需要进行设置。在~/.config/rclone/
目录下创建一名为rclone.conf
的文件,内容(<username>
替换为集群账号)如下:;不一定必须叫 hpc_box,你可以任意设置这个标签,但是后文必须相应地使用该标签 [hpc_box] type = seafile url = https://box.nju.edu.cn user = <username>@hpc.nju.edu.cn ;如果开启了两步认证,下条设置为true 2fa = false
- (仅需设置一次)设置密码。
<password>
替换为密码:rclone config update hpc_box pass <password>
- 设置完毕后,之后按照下方使用即可。列出云端目录:
rclone lsd hpc_box:
- 创建云端资料库(
<library>
替换为资料库名):rclone mkdir hpc_box:<library> --seafile-create-library #例如, rclone mkdir hpc_box:test --seafile-create-library 将在云盘创建一个名为`test`的资料库。
- 向云端上传文件。
<destination_path>
替换为需要上传的本地路径,<source_path>
替换为云端路径:rclone copy <destination_path> hpc_box:<source_path> #例如,假设本地当前目录下有个 myfile.txt 文件: #rclone copy myfile.txt hpc_box:test 将把本地当前目录的 myfile.txt 文件上传至云端的 test 资料库下。 #再例如,假设本地当前目录下有个 myfolder 文件夹,里面有很多文件: #rclone copy myfoler hpc_box:test 将把本地当前目录的 myfolder 文件夹内的所有文件夹和文件(不包括 myfolder 自身)上传至云端的 test 资料库下。
- 从云端下载文件:
rclone copy hpc_box:<source_path> <destination_path> #例如,假设云端资料库`test`下有个 myfile.txt 文件: #rclone copy hpc_box:test/myfile.txt . 将把云端资料库`test`下的 myfile.txt 下载至本地当前目录。 #例如,假设云端资料库`test`下有个 myfolder 文件夹,里面有很多文件: #rclone copy hpc_box:test/myfolder . 将把云端资料库`test`下的 myfolder 文件夹内的所有文件夹和文件(不包括 myfolder 自身)下载至本地当前目录。
- 在传输过程中,如果加上
-P
会显示进度条,强烈建议添加;如果上传或下载过程中,文件较多,建议再加上--no-traverse
避免列出文件导致传输时间过长:rclone copy hpc_box:<source_path> <destination_path> -P --no-traverse #例如,假设云端资料库`test`下有个 myfile.txt 文件: #rclone copy hpc_box:test/myfolder . -P --no-traverse 将把云端资料库`test`下的 myfolder 文件夹内的所有文件夹和文件(不包括 myfolder 自身)下载至本地当前目录,且显示进度条,不列出所有文件。
- 更多
rclone
的用法见rclone - commands;若有加密资料库等其他云盘需求,或查看rclone
对云盘的支持功能,请参考rclone - seafile或rclone - storage systems。
环境变量
集群使用Environment Modules以模块的形式对环境变量进行管理。在高性能计算集群系统中,安装有多种软件及其不同版本,它们需要设置不同的环境变量,Environment Module可以将这些环境变量做成模块文件(modulefile)。模块可以被加载(load)、卸载(unload)、切换(switch)等,这些操作会改变相应的环境变量设置,让用户方便的在不同环境之间切换。相比将环境变量设置写入/etc/profile、~/.bashrc或~/.bash_profile,Environment Module操作只影响当前用户的当前登录环境;相比直接source文件,Environment Module的操作可以撤销(卸载)。普通用户还可以自己编写module,具有很好的定制性。用户不仅可以在命令行中Environment Modules,也能在作业提交脚本中使用,对编译和计算环境都能够很好的控制。
常用命令
- 显示module帮助:module help
- 显示所有可用模块:module avail
- 显示已加载模块:module list
- 加载模块:module load MODULEFILE
- 卸载模块:module unload MODULEFILE
- 切换模块:module switch OLD_MODULEFILE NEW_MODULEFILE(等价于:module unload OLD_MODULEFILE; module load NEW_MODULEFILE)
- 卸载所有已加载模块:module purge
- 显示模块说明:module whatis MODULEFILE
- 显示模块内容:module display MODULEFILE
- 增加搜索目录:module use
- 减少搜索目录:module unuse
非 Bash
使用非 Bash 作为 Login Shell 的用户,请在作业提交脚本的首行指明 Shell 或使用 bsub 选项 -L 指定作业运行时 Login Shell 为 Bash
如 Login Shell 为 tcsh,使用下面两种方法中的一种
#!/bin/tcsh #首行指明Shell
#BSUB ...
...
...
#BSUB -L /bin/bash #指定运行时Login Shell为Bash
...
加载模块示例
$ module avail #查看所有可用模块
------------------------------ /fs00/software/modulefiles ------------------------------
gcc/5.2.0 impi/5.0.3.048
iccifort/15.0.3 ips/2011sp1u3
ics/2013 ips/2015u3
ics/2013sp1u1 openmpi/1.10.0-gcc-5.2.0
imkl/11.2.3 openmpi/1.10.0-iccifort-15.0.3
$ module list #显示已加载模块
No Modulefiles Currently Loaded. #没有模块被加载
$ icc --version #故icc找不到
-bash: icc: command not found
$ module whatis ips/2015u3 #查看模块说明
ips/2015u3 : Intel Parallel Studio XE 2015 Update 3 Cluster Edition
$ module load ips/2015u3 #加载模块
$ icc --version
icc (ICC) 15.0.3 20150407
Copyright (C) 1985-2015 Intel Corporation. All rights reserved.
$ module list #显示已加载模块
Currently Loaded Modulefiles:
1) ips/2015u3
$ module unload ips/2015u3 #卸载模块
搜索路径示例
$ module use
Search path for module files (in search order):
/fs00/software/modulefiles
$ module avail
--- /fs00/software/modulefiles ---
gcc/12.1.0
……
$ module use /fs00/software/modulefiles/oneapi/2024.0 #添加MODULEPATH搜索目录
$ module use
Search path for module files (in search order):
/fs00/software/modulefiles/oneapi/2024.0
/fs00/software/modulefiles
$ module avail
--- /fs00/software/modulefiles/oneapi/2024.0 ---
mkl32/2024.0
compiler/2024.0.2
mkl/2024.0
……
--- /fs00/software/modulefiles ---
gcc/12.1.0
……
提交作业
集群使用作业调度系统管理所有计算作业,该系统接受用户的作业请求,并将作业合理的分配到合适的节点上运行,因此所有用户均应通过作业调度系统提交计算作业,不可直接在任何节点上直接运行。用户使用bsub
命令向作业调度系统提交作业,bsub
选项非常繁多,可对作业进行非常细致的控制,这里简要介绍常用选项和方法。
bsub 使用方式
命令行方式
bsub [options] command [arguments]
-
[options]
为 bsub 的选项,可以设定队列、CPU核数等 -
command
为计算程序,如果是 MPI 并行程序需要使用 mpirun 启动 -
[arguments]
为计算程序的参数
例:提交一个作业到 e5v3ib 队列,需要24核的 MPI 并行程序
$ bsub -q e5v3ib -n 24 "module load oneapi/2024.0/mpi && mpirun ./app" Job <3206000> is submitted to queue <e5v3ib>
脚本方式
bsub < jobfile
jobfile 为作业的 shell 脚本文件,文件名任意且不需要运行权限,脚本内容如下:
#BSUB [options]
command [arguments]
脚本中以#BSUB
开头的行后跟bsub
的选项,其它行为作业运行脚本
例:提交一个作业到 e5v3ib 队列,需要48核,需要大内存节点,作业名为 MgSiO3,标准输出文件为
out
,标准错误输出文件为err
,Intel MPI 的并行作业0$ cat job.lsf #BSUB -q e5v3ib #BSUB -n 48 #BSUB -J MgSiO3 #BSUB -o out #BSUB -e err module load ips/2018u4 mpirun ./app $ bsub < job.lsf Job <3207099> is submitted to queue <e5v3ib>.
等价如下命令行方式
$ bsub -q e5v3ib -n 48 -J MgSiO3 -o out -e err "module load ips/2018u4;mpirun ./app" Job <3207099> is submitted to queue <e5v3ib>.
bsub 常用选项
-
-J job_name
:作业名称
资源请求
-
-n min_tasks[,max_tasks]
:作业需要CPU核数;例:需要四核-n 4
;需要4~8核均可-n 4,8
-
-m
:作业运行的节点或节点组,多个节点写在双引号内并用空格分隔,节点组对应的具体节点可用bmgroup
命令查看,此选项很复杂。在 hostname/hostgroup 前后可用这些符号:后加!
指定头结点、后加+[num]
指定节点使用顺序。例:指定在 c04n01 和 c04n02 运行-m "c04n01 c04n02"
;指定可在 f01n01~n03,但是最希望在 f01n01、次希望在 f01n02-m "f01n01+2 f01n02+1 f01n03"
; -
-R "res_req"
:资源请求串,此选项非常复杂;例:有的队列某些节点内存较大,需要大内存节点可以指定 -R largemem -
-R "select[hname!=host_name]"
:排除host_name节点,如果要排除多个节点中间用&&连接,如-R "select[hname!=x001 && hname!=x002]"
排除x001和x002节点 -
-x
:作业需要独占节点,无论申请多少核,作业均独占所运行的节点 -
-W [hour:]minute
:作业运行最长时间,超过这个时间则被 kill
CPU绑定
-
-R affinity[core:cpubind=core:membind=localprefer:distribute=pack]
:作业调度系统将进行CPU亲和性绑定,注意可能会和程序本身(如MPI)的绑定冲突,使用前请测试!
自动重运行
-
-r
:如果计算节点或系统故障则自动重新运行作业 -
-Q "exit_code [exit_code ...]"
:根据作业退出码自动重新提交作业。使用空格分隔多个退出码,all指所有退出码,加~
排除一个或多个退出码。
输入输出
-
-I
:交互式作业,可在作业运行期间和程序进行交互(如输入参数等),可在调试期间使用,正常计算请勿使用 -
-K
:等待作业执行完才返回 -
-i input_file
:标准输入文件 -
-o output_file
:标准输出文件 -
-e error_file
:标准错误输出文件 - 以上三个选项的文件名中可以包含
%J
用于表示 JOBID。如果没有用-o
或-oo
指定标准输出文件,那么系统会自动设定为output_%J
;如不想要输出文件请设置-o /dev/null
更多选项见官方文档
GPU 作业
提交作业时使用 -gpu
选项申请所需的 GPU 资源,计算进程只可见作业调度系统分配的 GPU。CPU 核自动按照申请节点 GPU 的比例分配,如一节点8个 GPU 和40个 CPU 核,申请2个 GPU 则分配10个 CPU 核。
-gpu
的各个选项用:分隔,默认值为num=1:mode=shared:mps=no:j_exclusive=yes
,常用选项如下
-
num=number
:每台主机需要GPU的数量 -
mode=shared | exclusive_process
:GPU运行模式,shared
对应 Nvidia/AMD DEFAULT compute mode、exclusive_process
对应 Nvidia EXCLUSIVE_PROCESS -
mps=yes | no
:开启或关闭Nvidia Multi-Process Service (MPS)。关闭MPS,多进程通过时间分片的方式共享GPU;开启MPS,多进程共享一个CUDA Context并发执行,增加了GPU利用率 -
aff=yes | no
:是否强制进行严格的 GPU-CPU 亲和性绑定,还需要配合-R affinity[core:cpubind=core:membind=localprefer:distribute=pack]
才能一同完成GPU-CPU亲和性绑定
作业依赖
一个计算任务可能分成几步,而每一步对资源的需求不同,因此需要分开提交,但这些作业之间又具有依赖关系,bsub 可使用选项 -w 'dependency_expression'指定依赖关系。如果计算任务分成几步,但是每步对资源需求一样,那么请写在一个作业任务中依次执行。
-
-w 'done(job_ID | "job_name")'
:需要 job_ID 或 job_name 作业完成且状态为 DONE,即退出码为0 -
-w 'ended(job_ID | "job_name")
':需要 job_ID 或 job_name 作业完成或退出,状态为 EXIT 或 DONE - 支持逻辑表达式&& (AND)、|| (OR)、! (NOT)
- 孤儿作业(即依赖条件不可能满足的)1分钟后会被自动终止
更多详细信息见官方文档
MPI/OpenMP 混合作业
OpenMP (Open Multi-Processing) 是一种共享内存方式的单进程多线程并行编程技术;MPI (Message Passing Interface) 是一种多进程基于信息传递的并行编程技术。OpenMP 的特点是单节点、进程内、多线程、基于共享内存的并行运算;MPI 的特点是单或多节点、进程间、非共享内存、基于消息传递的并行运算。
混合并行编程模型构建的应用程序可以同时使用 OpenMP 和 MPI ,节点内NUMA内进程内使用 OpenMP 共享内存并行可降低内存需求,跨节点跨NUMA跨进程使用 MPI 消息传递可大规模并行。需要注意的是,并不是一个节点一个MPI进程是最优的,这往往会导致跨NUMA的内存访问,因此需要通过测试确定最佳配比。
mpirun一般会根据环境变量LSB_MCPU_HOSTS启动相应的MPI进程,因此可以通过下列方法改变此环境变量中每个节点的CPU核数,以匹配MPI/OpenMP混合作业的MPI进程分布:
-
#BSUB -n
指定的仍然是总CPU核数 - 提交作业脚本中需要在计算命令前首先运行
source /fs00/software/lsf/misc/ompthreads.sh [N]
- 每个 MPI 进程的 OpenMP 线程数量可以用环境变量
OMP_NUM_THREADS
指定或上述命令行参数指定,同时指定时命令行参数优先,需要保证每个节点的 CPU核数可以被线程数整除!
常用环境变量
作业运行时
- LSB_JOBID:作业ID
- LSB_QUEUE:队列名称
- LSB_JOBNAME:作业名称
- LSB_DJOB_NUMPROC:分配的CPU总核数
- LSB_DJOB_HOSTFILE:分配的节点列表文件,每行一个
- LSB_HOSTS:分配的节点列表,每个CPU核一个节点名的纯节点列表
- LSB_MCPU_HOSTS:分配的节点和核数列表,每个节点名和CPU核数的列表
LSB_DJOB_NUMPROC=6
LSB_HOSTS="node1 node1 node1 node2 node2 node2"
LSB_MCPU_HOSTS="node1 3 node2 3"
$ cat $LSB_DJOB_HOSTFILE
node1
node1
node1
node2
node2
node2
LSB_HOSTS 和 LSB_MCPU_HOSTS 以不同的格式包含相同的信息,LSB_MCPU_HOSTS 比 LSB_HOSTS 更短更精简,如果 LSB_HOSTS 超过 4096 字节,则仅有 LSB_MCPU_HOSTS。
作业脚本示例
串行作业
提交一个串行作业到 e52660 队列,命令行方式和脚本方式分别为:
$ bsub -q e52660 ./app
Job <3279929> is submitted to queue <e52660>.
$ cat job.lsf
#BSUB -q e52660
./app
$ bsub < job.lsf
Job <3279930> is submitted to queue <e52660>.
MPI 并行作业
MPI程序需要使用mpirun
启动
提交一个需要48核的 Intel MPI 并行作业到 e5v3ib,命令行方式为:
$ bsub -q e5v3ib -n 48 "module load ips/2018u4;mpirun ./app"
Job <3280120> is submitted to queue <e5v3ib>.
提交一个需要48核的 Open MPI 并行作业到 e5v3ib,脚本方式为:
$ cat job.lsf
#BSUB -q e5v3ib
#BSUB -n 48
module load iccifort/15.0.3 imkl/11.2.3 openmpi/1.10.0-iccifort-15.0.3
mpirun ./app
$ bsub < job.lsf
Job <3280122> is submitted to queue <e5v3ib>.
OpenMP 并行作业
OpenMP 不能跨节点,因此-n
不能指定超过一个节点的CPU核数
提交一个需要64核的 OpenMP 并行作业到 e7v4ib,使用程序参数 -nt 指定线程数量,命令行方式为:
$ bsub -q e7v4ib -n 64 "./app-nt \$LSB_DJOB_NUMPROC"
Job <3348175> is submitted to queue <e7v4ib>.
提交一个需要64核的 OpenMP 并行作业到 e7v4ib,使用环境变量OMP_NUM_THREADS
指定线程数量,脚本方式为:
$ cat job.lsf
#BSUB -q e7v4ib
#BSUB -n 64
OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
./app
$ bsub < job.lsf
Job <3348182> is submitted to queue <e7v4ib>.
MPI/OpenMP 混合作业
每个MPI进程跑6个OpenMP线程
通过环境变量OMP_NUM_THREADS
指定
#BSUB -q 6140ib
#BSUB -n 72
export OMP_NUM_THREADS=6
source /fs00/software/lsf/misc/ompthreads.sh
module load ips/2018u4
mpirun ./run
通过命令行参数指定(有些计算程序需要通过命令行参数指定线程数量)
#BSUB -q 6140ib
#BSUB -n 72
source /fs00/software/lsf/misc/ompthreads.sh 6
module load ips/2018u4
mpirun ./openmx -nt 6
GPU 作业
提交一个需要1个 GPU 的作业到 e5v4p100ib 队列
bsub -q e5v4p100ib -gpu num=1 ./gpu_app
提交一个需要4个 GPU 的作业到 62v100ib 队列,进行 GPU-CPU 绑定
bsub -q 62v100ib -gpu "num=4:aff=yes" ./gpu_app
控制作业
常用控制命令
命令 | 功能 |
---|---|
bjobs |
查看自己未结束的作业 |
bjobs -l JOBID |
查看某个未结束作业的详情 |
bhist |
查看自己已结束的历史作业 |
bhist -l JOBID |
查看某个已结束历史作业的详情 |
bpeek JOBID |
查看正在运行某个作业的stdout/stderr |
bkill JOBID |
终止某个作业 |
btop JOBID |
设置作业最先运行 |
bbot JOBID |
设置作业最后运行 |
作业状态
bjobs
命令的作业状态可能值包括:
状态 | 描述 |
---|---|
PEND | 作业正在等待中。也就是说,作业尚未开始。 |
PROV | 作业已被派发到一个正在唤醒的节能状态主机。在作业可以发送到 sbatchd之前,它处于PROV状态。 |
PSUSP | 作业在等待期间被挂起,可能是作业所有者或LSF管理员操作的。 |
RUN | 作业当前正在运行。 |
USUSP | 作业在运行期间被挂起,可能是作业所有者或LSF管理员操作的。 |
SSUSP | 作业被LSF挂起。 |
DONE | 作业以状态0终止。 |
EXIT | 作业以非零状态终止。 |
UNKWN | 一般是两种情况之一,如果作业状态长时间处于UNKWN状态,一般来 说就是计算节点坏了可以直接杀掉作业。①因为计算节点负载过高,未 能及时获取作业状态导致状态未知,这种情况一般只需要等待即可,待 负载下降获取状态后就正常了。②因为计算节点出现故障且长时间未恢 复,调度系统无法获取作业状态,此时如果登录不到相应的计算节点, 可以直接杀掉作业。 |
WAIT | 对于提交到块作业队列的作业,块作业中的成员正在等待运行。 |
ZOMBI | ①当sbatchd在执行主机上不可达时,非可重新运行的作业被bkill 杀死,并且作业显示为UNKWN。 ②运行可重新运行作业的主机不可用,并且LSF 已将作业重新排队,分配了新的作业ID,就像提交了新作业一样。 ③在执 行主机可用之后,LSF尝试杀死ZOMBI作业。ZOMBI作业成功终止后,作业 的状态将更改为EXIT。 使用MultiCluster时,当在远程执行群集上运行的作 业变为ZOMBI作业时,执行群集将像本地ZOMBI作业一样处理该作业。此外, 它还会通知提交群集作业处于ZOMBI状态,并且提交群集将重新排队作业。 |
作业等待
bwait -w "wait_condition" [-t timeout]
暂停并等待作业条件满足,不满足一直暂停等待,满足则执行完毕返回。
典型用法:在脚本中不要循环使用bjobs判断作业状态,而用bwait等待作业运行完成,这样更优雅且能显著降低对集群的压力。
-
-w wait_condition
:要满足的等待条件,此表达式与上述bsub -w
选项的格式相同。 -
-t timeout
:等待条件的超时,范围为1-525600分钟,默认为一年。
海量作业
作业组
为了便于管理海量的作业,可以对作业定义作业组。
作业组的名字是类似于Linux的路径名的树状结构,如作业组 /test ,而 /test/1 和 /test/2 都属于 /test
需要注意的是作业组是全局的,创建者是这个作业组的拥有者,作业组拥有者可以对这个作业组及其子组内的所有作业进行控制(哪怕这个作业是其他人提交的,拥有者也能进行控制)。如果您不想作业被别人控制,请确保提交到的作业组从/开始拥有者都是自己。
创建作业组
bgadd /test #显式创建作业组
bsub -g /test #使用bsub提交作业时指定一个不存在的作业组,则作业组会被隐式创建
查看作业组
bjgroup /test #最后一列就是作业组的拥有者,请注意拥有者也是层次继承的
删除作业组
bgdel /test #集群已经配置自动清理空的隐式创建的作业组
有了作业组以后就可以对一组作业进行控制了
bjobs -g /test #查看指定作业组的作业
bkill -g /test 0 #终止指定作业组的所有作业
作业序列
作业序列是一系列作业,这些作业执行相同的操作和资源要求,但是输入输出文件不同。这些作业共享同一个作业ID,并可以通过索引来区分每个子作业。
bsub 使用 -J "arrayName[indexList, ...]"
参数命名并创建一个作业序列,也可以理解为一个作业数组,中括号里面就是数组的下标,可以是一维数组也可以是多维数组。indexList = start[-end[:step]] 下标的起始、结束和步长均可指定。
作业调度系统提供了两个运行时变量 %I 和 %J,%I 为子作业的索引值,%J 为作业ID,一般用于输入输出文件名中;以及运行时环境变量 LSB_JOBINDEX
bsub -J "myArray[1-10]" myJob #提交一个有10个子作业的作业
bsub -J "myArray[1-10]" -i "input.%I" -o "output.%I" myJob #每个子作业定义不同的输入输出文件
bkill 123[1] #杀掉 jobid 是123的第一个子作业
bkill 123 #杀掉 jobid 是123的整个作业
海量作业
提交大量的作业,将使得作业的管理将变得困难,虽然可以用上述作业组和作业序列进行批量管理,但是海量作业仍然对调度系统会造成很大的压力,特别是分钟级或秒级的短作业在调度时会浪费大量的时间,因此可以根据作业情况将多个作业合并为一个作业提交。对于不同的作业可以用两种方法来进行合并:
多作业串行执行
申请1个CPU核,顺序执行每个串行作业,前一个运行完成后再运行下一个,可以将非常多的串行作业合并成一个。对于每个串行作业运行时间都很短且运行时间不一定相同的适用这种方式提交。
4个串行作业串行执行合并为一个作业,提交到x5650队列,脚本方式为:
$ cat job.lsf
#BSUB -q x5650
./a.out >& 1.out
./a.out >& 2.out
./a.out >& 3.out
./a.out >& 4.out
$ bsub < job.lsf
Job <3366369> is submitted to queue <x5650>.
多作业并行执行
申请N个CPU核,同时执行N个串行作业,N不可大于单节点CPU核数,每个串行作业运行时间需要相同,最后需要 wait 命令等待所有作业运行完毕返回。对于每个串行作业运行时间较长且运行时间都完全相同的适用这种方式提交。
12个串行作业并行执行合并为一个作业,提交到x5650队列,脚本方式为:
$ cat job.lsf
#BSUB -q x5650
#BSUB -n 12
( ./a.out >& 1.out )&
( ./a.out >& 2.out )&
( ./a.out >& 3.out )&
( ./a.out >& 4.out )&
( ./a.out >& 5.out )&
( ./a.out >& 6.out )&
( ./a.out >& 7.out )&
( ./a.out >& 8.out )&
( ./a.out >& 9.out )&
( ./a.out >& 10.out )&
( ./a.out >& 11.out )&
( ./a.out >& 12.out )
wait
$ bsub < job.lsf
Job <3366370> is submitted to queue <x5650>.
查看信息
查看队列
查看所有队列:bqueues
$ bqueues
QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP
x7542! 50 Open:Active - - - - 24 0 24 0
e5645! 50 Open:Active - - - - 0 0 0 0
e52643tgb! 50 Open:Active - - - - 8 0 8 0
……
6226rib 30 Open:Active - - - - 0 0 0 0
5218 30 Open:Active - - - - 0 0 0 0
6230r 30 Open:Active - - - - 32 0 32 0
-
QUEUE_NAME
:队列名称 -
PRIO
:队列优先级,越大优先级越高 -
STATUS
:队列状态。Open/Closed 表示是否可以提交,即用户是否可以提交作业到该队列;Active/Inact 表示否可以派发,即该队列的作业是否会被分发到计算节点运行。Open:Active 表示可提交可派发,Open:Inact 表示可提交但是不派发。 -
NJOBS
:排队、运行和挂起的作业所占总CPU核数 -
PEND
:排队中的作业所需总CPU核数 -
RUN
:运行中的作业所占总CPU核数 -
SUSP
:挂起的作业所占总CPU核数
查看队列详细信息:bqueues -l
$ bqueues -l e5v3ib
QUEUE: e5v3ib
-- CPU: 2*E5-2680v3, RAM: 256GB/128GB, NET: 56Gb FDR InfiniBand
……
SCHEDULING POLICIES: FAIRSHARE EXCLUSIVE
FAIRSHARE_QUEUES: e5v3ib e5v3ib! e7v4ib x5650ib 6140ib 62v100ib 722080tiib 72rtxib 7702ib ……
DISPATCH_ORDER: QUEUE
USER_SHARES: [root=, 999999] ……
SHARE_INFO_FOR: e5v3ib/
USER/GROUP SHARES PRIORITY STARTED RESERVED CPU_TIME RUN_TIME ADJUST GPU_RUN_TIME
root= 999999 202255.328 0 0 8456.5 1542 0.000 0
……
USERS: all ~test/
HOSTS: f01+10 f02+10 f03+10 f04+10 f05s+10 f05l/
RES_REQ: span[ptile=24]
Maximum slot reservation time: 43200 seconds
查看节点
lshosts #查看节点配置和资源
lshosts -gpu #查看节点GPU配置和拓扑结构
lsload #查看节点当前负载信息
lsload -gpu #查看节点GPU整体负载
lsload -gpuload #查看节点每个GPU负载
bhosts #查看所有节点状态
自动关机
集群会对动力环境进行监控,遇市电中断或温度过高,将会自动终止所有作业,按照安全顺序进行关机操作。
关机时会在 /fs00/reports/bjobs/
目录下会自动保存一份作业列表备查。如文件 /fs00/reports/bjobs/bjobs.20130728070457 表明2013年07月28日07点04分57秒时刻所有作业的状态(bjobs -uall -w
的输出),同时也说明这个时间点开始自动关机。
如果温度未触及高点,但已明显增高,为了防止温度继续增高,集群会停止派发新作业,并且关闭空闲节点。
进程监督
用户只能登录到登录节点,且可从登录节点登录到有自己正在运行作业的计算节点。
所有节点的用户进程都会被检查,如果发现如下情况,将会杀掉该节点此用户所有进程,并记录在 /fs00/reports/process 中
- 计算节点有进程未通过作业调度系统提交运行的
- 计算节点用户进程占用的CPU资源明显高于在作业调度系统中请求的CPU资源
- 登录节点用户占用大于2个CPU核心的
容器化
容器技术
容器技术能够对应用及其整个运行时环境(包括全部所需文件)一起进行打包或隔离。从而可以在不同环境(如开发、测试和生产等环境)之间轻松迁移应用,同时还可保留应用的全部功能。有了容器不再需要管理员为你安装任何东西。容器是一个独立的系统,你可以在里面做任何想做的事情。
Apptainer
2021年11月,Singularity 开源项目加入 Linux 基金会,并更名为 Apptainer。Apptainer 是一套类似于 Docker 的容器解决方案,是用于HPC容器系统。Apptainer 兼容 Singularity Image File (SIF)、Singularity 的环境变量、Singularity 的命令、自动迁移 Singularity 的用户配置。
镜像
一般保存为压缩只读Singularity Image File (SIF)格式的镜像文件。
公共镜像
在 /fs00/software/singularity-images/
已存放了许多常用的SIF镜像文件,可直接使用。
导入镜像
以从 Docker Hub 等镜像仓库或镜像文件直接创建SIF镜像文件
- 从 Docker Hub 导入镜像:
apptainer build ubuntu.sif docker://docker.nju.edu.cn/library/ubuntu
- 从 NVIDIA NGC 导入镜像:
apptainer build ngc_cuda.sif docker://ngc.nju.edu.cn/nvidia/cuda
- 从 docker save 保存的镜像文件导入镜像:
apptainer build abc.sif docker-archive://abc.tar
制作镜像
- 创建沙盒目录:
apptainer build --fix-perms --sandbox build docker://docker.nju.edu.cn/library/ubuntu
- 进入沙盒容器:
apptainer shell build/
- 在容器中安装和编译软件:如
apt
make
- 退出容器:
exit
- 将沙盒打包成SIF镜像文件:
apptainer build abc.sif build
因登录节点无root权限,可能出现问题,因此建议在自己的系统上制作镜像。
CI创建镜像
用 git.nju.edu.cn 上的 CI/CD 自动调用 kaniko 构建 Docker 镜像,详见官方文档,然后再导入apptainer build ocr.sif docker://reg.nju.edu.cn/yaoge123/ocr
一个简单的示例见:CI/CD自动化构建Docker镜像
提交作业
提交容器作业的示例脚本
#BSUB -q 62v100ib
#BSUB -gpu num=4
apptainer exec --nv cuda.sif app
常用选项
-
--nv
:提供NVIDIA GPUs & CUDA支持 -
--bind/-B src[:dest[:opts]]
:绑定额外的路径
相关网站
常见问题
网络
登录节点进行网络接入认证
在登录节点登录校园网账号
集群中的登录节点进行网络接入认证(即登入南京大学校园网认证p.nju.edu.cn
)后才可访问互联网,认证后登录节点所有用户均可访问互联网(相当于整个登录节点共享),请注意网络与账号隐私安全!
命令行登录和登出p.nju.edu.cn
的方法有:
curl -X POST https://p.nju.edu.cn/api/portal/v1/login -H "Content-type: application/json" -d '{"username":"<username>","password":"<password>"}'
curl -X POST https://p.nju.edu.cn/api/portal/v1/logout -H "Content-type: application/json" -d '{}'
curl -s "http://p2.nju.edu.cn/portal_io/login?username=<username>&password=<password>"
curl -s http://p2.nju.edu.cn/portal_io/logout
**【强烈推荐】**如果有一些软件源需求,如conda
、pip
等包管理,或者需要外部代码库、容器,您可以通过中心提供的下列服务直接在集群上使用,无需登录校园网认证:
计算节点访问网络
所有计算节点均不能自由无限制的访问外网(含校园网和互联网),如需访问可以单独申请开放。当前已经放开的网络访问
SSH/SFTP登录时报 no matching host key type found
SSH/SFTP登录时报错no matching host key type found. Their offer: ssh-rsa,ssh-dss
,命令行添加选项-o HostKeyAlgorithms=+ssh-rsa
或在~/.ssh/config
中增加HostKeyAlgorithms +ssh-rsa
安装
pip安装包到自己的目录下
Python的大多数包不需要root权限也能安装,只需在pip install后加-t指定安装目录即可,如:
cd scikit-opt-master
pip install -t $HOME .
这样就装到自己的家目录下。在~/.bashrc里或者作业脚本中加上环境变量
export PYTHONPATH=$HOME:$PYTHONPATH
作业
作业运行时实际占用CPU核数过多
- 在作业中限定使用的CPU核数与申请核数相同,否则超过申请核数使用资源的作业会被杀掉。
特别是Python,很多Python包会自动多核并行计算,需要使用环境变量(如 OMP_NUM_THREADS
、NUMEXPR_NUM_THREADS
、OPENBLAS_NUM_THREADS
、MKL_NUM_THREADS
)等方式设定线程数,与进程数一起匹配申请的核数。
export OMP_NUM_THREADS=$LSB_DJOB_NUMPROC
export NUMEXPR_NUM_THREADS=$LSB_DJOB_NUMPROC
export OPENBLAS_NUM_THREADS=$LSB_DJOB_NUMPROC
export MKL_NUM_THREADS=$LSB_DJOB_NUMPROC
- 可以尝试在提交作业时添加如下参数,做CPU亲和绑定
#BSUB -R affinity[core:cpubind=core:membind=localprefer:distribute=pack]
- 如果实在不行可以
#BSUB -x
独占节点运行作业
排队作业数上限
动态限制用户排队作业数不能超过MAX(1000,MIN((30000-总作业数)/10,(20000-总排队作业数)/6))
即用户排队作业数,不超过三万减去总作业数的十分之一,也不超过二万减去总排队作业数的六分之一,但保底一千个。
作业状态UNKWN
一般是两种情况之一,如果作业状态长时间处于UNKWN状态,一般来说就是计算节点坏了可以直接杀掉作业。
- 因为计算节点负载过高,未能及时获取作业状态导致状态未知,这种情况一般只需要等待即可,待负载下降获取状态后就正常了。
- 因为计算节点出现故障且长时间未恢复,调度系统无法获取作业状态,此时如果登录不到相应的计算节点,可以直接杀掉作业。
硬件资源
计算存储等所有硬件资源详情
服务节点
管理、监控、认证、调度和登录节点均为虚拟机,CPU/RAM/SSD根据需求分配
- CPU: Intel Xeon Platinum 8358 (32 Cores, 48MB Cache, 2.60 GHz, 11.2 GT/s UPI)
- RAM: 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 204.8 GB/s
- Storage: Huawei OceanStor Dorado 5500 V6 All-Flash Storage (NVMe over RoCE)
- Network: 4*25 Gigabit Ethernet
通讯网络
骨干以太网:2*100Gb
服务网络:100Mb/1Gb Ethernet
管理网络:1/10/25/40/100Gb Ethernet
高速网络:40/56/100/200Gb QDR/FDR/HDR InfiniBand, 100Gb Omni-Path Architecture
计算资源
命名规则和优先级
每组计算节点均对应两个队列;标准队列和优先队列
- 标准队列(CPU和加速卡型号+网络类型):所有用户都可以提交作业到这个队列进行计算;
- 优先队列(CPU和加速卡型号+网络类型+!):
- 公共设备的优先队列:仅用于测试用途,优先级高于标准队列,但运行时间、作业数量、核数都有限制,没有抢占。
- 自购设备的优先队列:只允许队列购置者提交作业,优先!队列的作业如果因为资源不足而不能运行,则会抢占标准队列作业的资源,将标准队列的作业挂起(状态SSUSP)或杀掉,腾出资源来运行优先!队列的作业,当作业完成后被挂起的作业会自动恢复执行。被挂起的作业可以用
brequeue <JOBID>
命令杀掉并自动重新提交。
- 每组计算节点的所有队列共享同一个 fairshare 数据。如果一个队列中的计算机由不止一个组出资购买,那么每个组在优先!队列运行中作业所能使用的节点限制为出资购买的部分,其它队列则无此限制。
- 组管理员可以来信设定本组所有用户可提交的队列,默认为所有队列均可提交作业。
- 所有公共共享队列共享同一个 fairshare 数据,公共共享队列的作业不会被抢占。
计算队列
合计
- 节点数量:333
- CPU插槽数:701
- CPU核数:14360
- GPU卡数:139
- GPU CUDA核数:1383552
- 内存:73376 GB
- 显存:2904 GB
- CPU和数据中心GPU双精度浮点计算理论峰值:896.232 TFLOPS (CPU: 736.972, GPU: 159.26)
- 消费级GPU单精度浮点计算理论峰值:5561.752 TFLOPS
总览
- 双路CPU:e52692v2ib、e52680v3ib、e5v3ib、e52630v4、e52640v4、e52650v4、e52680v4ib、e52682v4opa、5218、7702ib、5220r、6230r、5318h、6330ib、7k83、9654、9754、6458q
- 四路CPU:e74820v4、6140ib、5218q、9242opa
- 高主频CPU:e52643tgb、6226rib
- 双路大内存:6338
- 四路大内存:e7v4ib
- 数据中心GPU:e5v3k40ib、e5v4p100ib、6148v100ib、62v100ib、83a100ib
- 消费级GPU:722080tiib、72rtxib、813080、723080、723090ib、814080、734090d、944090d、734090ib、75434090ib
- CPU融合:cpu1
表格
SSD:
- / 表示节点本地根文件系统采用SSD,用户可用 /tmp 和 /var/tmp
- /ssd 表示节点有额外的SSD用于临时存储,用户可用 /ssd 和 /tmp/ssd
详情
e52643tgb
- 双精度浮点计算理论峰值:2.112 TFLOPS
- 购置者:万贤纲100%
- 10*Dell PowerEdge 12G R620
- Hostname: r001-r010
- CPU: 2*Intel Xeon E5-2643 (4 Cores, 10MB Cache, 3.30 GHz, 8.00 GT/s QPI)
- RAM: 4 Channels, DDR3-1600 ECC RDIMM, Bandwidth: 102.4 GB/s
- [r001-r003] 96 GB
- [r004-r010] 128 GB,
-R largemem
指定使用
- HDD: 600 GB 2.5in 10Krpm 6Gb/s SAS
- Network: 10 Gigabit Ethernet
e52692v2ib
- 双精度浮点计算理论峰值:16.896 TFLOPS
- 购置者:孙建75%,王强华25%
- 40*Inspur NX5440
- Hostname: i01n01-i01n20 i02n01-i02n20
- CPU: 2*Intel Xeon E5-2692 v2 (12 Cores, 30MB Cache, 2.20 GHz, 8 GT/s QPI)
- RAM: 64 GB (8x8GB), 4 Channels, DDR3-1866 ECC RDIMM, Bandwidth: 119.4 GB/s
- HDD: 600 GB 2.5in 10Krpm 6Gb/s SAS
- Network: Gigabit Ethernet, 40 Gbit/s QDR InfiniBand
e52680v3ib
- 双精度浮点计算理论峰值:24.96 TFLOPS
- 购置者:张海军100%
- 26*HP BladeSystem ProLiant BL460c Gen9
- Hostname: s03n01-s03n13 s04n01-s04n13
- CPU: 2*Intel Xeon E5-2680 v3 (12 Cores, 30MB Cache, 2.50 GHz, 9.6 GT/s QPI)
- RAM: 128 GB ([s03n01-s03n13 s04n01-s04n02] 8x16GB | [s04n03-s04n13] 16x8GB), 4 Channels, DDR4-2133 ECC RDIMM, Bandwidth: 136 GB/s
- HDD: 300 GB 2.5in 10Krpm 6Gb/s SAS
- Network: Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
e5v3ib
- 双精度浮点计算理论峰值:72 TFLOPS
- 购置者:公共共享100%
- 70*Lenovo Flex System x240 M5 5*Lenovo System x3650 M5
- Hostname: f01n01-f01n14 f02n01-f02n14 f03n01-f03n14 f04n01-f04n14 f05n01-f05n14 x013-x017 x013-x017
- CPU: 2*Intel Xeon E5-2680 v3 (12 Cores, 30MB Cache, 2.50 GHz, 9.6 GT/s QPI)
- RAM: 4 Channels, [f01n01-f05n14] DDR4-2133 ECC RDIMM, Bandwidth: 136 GB/s | [x013-x017] DDR4-1866 ECC RDIMM, Bandwidth: 119.4 GB/s
- [f01n01-f05n04] 128 GB (8x16GB)
- [f05n05-f05n14] 256 GB (8x32GB),
-R mem256g
或-R largemem
指定使用 - [x013-x017] 384 GB (24x32GB),
-R mem384g
或-R largemem
指定使用
- SSD: 2.5in SATA 6Gb/s
- [f01n01-f05n14] Samsung Enterprise SSD PM863, 32-layer 3D TLC, 120GB 170TBW
- [x013-x017] Samsung SSD 850 PRO, 32-layer 3D TLC, 512GB
- Network: Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
e5v3k40ib
- 双精度浮点计算理论峰值:3.82 TFLOPS
- 购置者:公共共享100%
- 1*Lenovo System x3650 M5
- Hostname: x001
- CPU: 2*Intel Xeon E5-2680 v3 (12 Cores, 30MB Cache, 2.50 GHz, 9.6 GT/s QPI)
- RAM: 128 GB (8x16GB), 4 Channels, DDR4-2133 ECC RDIMM, Bandwidth: 136 GB/s
- GPU: 2*NVIDIA Tesla K40 (2880 Cores 875MHz, 12GB 384-bit GDDR5 3.0GHz 288GB/s, PCIe3.0 x16)
- HDD: 300 GB 2.5in 10Krpm 6Gb/s SAS
- Network: 10 Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
e52630v4
- 双精度浮点计算理论峰值:1.408 TFLOPS
- 购置者:邵陆兵100%(邢定钰组)
- 2*Inspur NX5460M4
- Hostname: i04n01-i04n02
- CPU: 2*Intel Xeon E5-2630 v4 (10 Cores, 25MB Cache, 2.20 GHz, 8 GT/s QPI)
- RAM: 64 GB (4x16GB), 2 Channels, DDR4-2133 ECC RDIMM, Bandwidth: 68.3 GB/s
- HDD: 2*300 GB 2.5in 10Krpm 12Gb/s SAS RAID1
- Network: 10 Gigabit Ethernet
e52640v4
- 双精度浮点计算理论峰值:0.768 TFLOPS
- 购置者:李建新100%
- 1*Inspur NF5280M4
- Hostname: n001
- CPU: 2*Intel Xeon E5-2640 v4 (10 Cores, 25MB Cache, 2.40 GHz, 8 GT/s QPI)
- RAM: 128 GB (8x16GB), 4 Channels, DDR4-2133 ECC RDIMM, Bandwidth: 136.6 GB/s
- HDD: 2*600 GB 2.5in 10Krpm 12Gb/s SAS RAID1
- Network: Gigabit Ethernet
e52650v4
- 双精度浮点计算理论峰值:2.5344 TFLOPS
- 购置者:盛利100%
- 3*Inspur NF5270M4
- Hostname: n003-n005
- CPU: 2*Intel Xeon E5-2650 v4 (12 Cores, 30MB Cache, 2.20 GHz, 9.6 GT/s QPI)
- RAM: 128 GB (8x16GB), 4 Channels, DDR4-2400 ECC RDIMM, Bandwidth: 153.6 GB/s
- HDD: [n003-n004] 4*300 GB 2.5in 10Krpm 12Gb/s SAS RAID5 | [n005] 3*300 GB 2.5in 10Krpm 12Gb/s SAS RAID5
- Network: Gigabit Ethernet
e52680v4ib
- 双精度浮点计算理论峰值:20.4288 TFLOPS
- 购置者:王炜84.21%,法伟15.79%
- 19*HPE BladeSystem ProLiant BL460c Gen9
- Hostname: s04n14-s04n16 s05n01-s05n16
- CPU: 2*Intel Xeon E5-2680 v4 (14 Cores, 35MB Cache, 2.40 GHz, 9.6 GT/s QPI)
- RAM: 128 GB (8x16GB), 4 Channels, DDR4-2400 ECC RDIMM, Bandwidth: 153.6 GB/s
- SSD: Samsung Enterprise SSD PM863, 32-layer 3D TLC, 120GB 170TBW, 2.5in SATA 6Gb/s
- Network: Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
e52682v4opa
- 双精度浮点计算理论峰值:25.6 TFLOPS
- 购置者:万贤纲100%
- 20*Inspur NX5440M4
- Hostname: i03n01-i03n20
- CPU: 2*Intel Xeon E5-2682 v4 (16 Cores, 40MB Cache, 2.50 GHz, 9.6 GT/s QPI)
- RAM: 64 GB (8x8GB), 4 Channels, DDR4-2400 ECC RDIMM, Bandwidth: 153.6 GB/s
- SSD: Intel SSD DC S3500, 20nm MLC, 240GB 140TBW
- SSD: 2.5in SATA 6Gb/s, [i03n01-i03n10] Samsung Enterprise SSD PM863, 32-layer 3D TLC, 960GB 1400TBW | [i03n11-i03n20] Intel SSD DC S3610, 20nm MLC, 800GB 5.3PBW
- SSD mounted at /ssd & /tmp/ssd
- Network: Gigabit Ethernet, 100 Gbit/s Omni-Path Architecture
e74820v4
- 双精度浮点计算理论峰值:1.28 TFLOPS
- 购置者:陈申见100%
- 1*Dell PowerEdge R930
- Hostname: r012
- CPU: 4*Intel Xeon E7-4820 v4 (10 Cores, 25MB Cache, 2.00 GHz, 6.4 GT/s QPI)
- RAM: 256 GB (16x16GB), 4 Channels, DDR4-1333 ECC RDIMM
- HDD: 2*600 GB 2.5in 15Krpm 12Gb/s SAS RAID1
- Network: Gigabit Ethernet
e7v4ib
- 双精度浮点计算理论峰值:2.1504 TFLOPS
- 购置者:公共共享100%
- 1*Dell PowerEdge R930
- Hostname: r011
- CPU: 4*Intel Xeon E7-4850 v4 (16 Cores, 40MB Cache, 2.10 GHz, 8 GT/s QPI)
- RAM: 1024 GB (32x32GB), 4 Channels, DDR4-1333 ECC RDIMM
- SSD: 2*Intel SSD DC S3610, 20nm MLC, 200GB 1.1PBW, 2.5in SATA 6Gb/s RAID1
- Network: 10 Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
e5v4p100ib
- 双精度浮点计算理论峰值:10.296 TFLOPS
- 购置者:公共共享100%
- 1*Lenovo System x3650 M5
- Hostname: x002
- CPU: 2*Intel Xeon E5-2660 v4 (14 Cores, 35MB Cache, 2.00 GHz, 9.6 GT/s QPI)
- RAM: 128 GB (8x16GB), 4 Channels, DDR4-2400 ECC RDIMM, Bandwidth: 153.6 GB/s
- GPU: 2*NVIDIA Tesla P100 PCIe 16GB (3584 Cores 1328MHz, 16GB 715MHz 4096-bit HBM2 732 GB/s, PCIe3.0 x16)
- HDD: 300 GB 2.5in 10Krpm 6Gb/s SAS
- Network: Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
6140ib
- 双精度浮点计算理论峰值:84.7872 TFLOPS
- 购置者:公共共享100%
- 16*H3C B7800 G3
- Hostname: b01n01-b01n08 b02n01-b02n08
- CPU: 4*Intel Xeon Gold 6140 (18 Cores, 24.75MB Cache, 2.30 GHz)
- RAM: 384 GB (24x16GB), 6 Channels, DDR4-2666 ECC RDIMM, Bandwidth: 511.2 GB/s
- SSD: Micron 5100, TLC, 240GB, M.2 2280, SATA 6Gb/s
- Network: 10 Gigabit Ethernet, 100 Gbit/s EDR InfiniBand
6148v100ib
- 双精度浮点计算理论峰值:10.072 TFLOPS
- 购置者:赵宇心100%
- 1*Lenovo ThinkSystem SR650
- Hostname: x003
- CPU: 2*Intel Xeon Gold 6148 (20 Cores, 27.5MB Cache, 2.40 GHz)
- RAM: 192 GB (12x16GB), 6 Channels, DDR4-2666 ECC RDIMM, Bandwidth: 255.6 GB/s
- GPU: NVIDIA Tesla V100 PCIe 16GB (5120 CUDA Cores 1380MHz, 16GB HBM2 877MHz 4096-bit 900GB/s, PCIe3.0 x16)
- SSD: LITEON, 128GB, M.2 2280, SATA 6Gb/s
- Network: Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
5218
- 双精度浮点计算理论峰值:1.1776 TFLOPS
- 提供者:CPU/准系统 Intel、内存 本中心
- 1*Intel S2600WFT
- Hostname: o003
- CPU: 2*Intel Xeon Gold 5218 (16 Cores, 22MB Cache, 2.30 GHz)
- RAM: 192 GB (12x16GB), 6 Channels, DDR4-2666 ECC RDIMM
- SSD: Intel SSD DC S3500, 20nm MLC, 275TBW 480GB, 2.5in SATA 6Gb/s
- Network: Gigabit Ethernet
5218q
- 双精度浮点计算理论峰值:2.3552 TFLOPS
- 购置者:李建新100%
- 1*Inspur NF8480M5
- Hostname: n032
- CPU: 4*Intel Xeon Gold 5218 (16 Cores, 22MB Cache, 2.30 GHz)
- RAM: 256 GB (8x32GB), 4 Channels, DDR4-2666 ECC RDIMM, Bandwidth: 170.7 GB/s
- HDD: 2*600 GB 2.5in 10Krpm 12Gb/s SAS RAID1
- Network: Gigabit Ethernet
62v100ib
- 双精度浮点计算理论峰值:65.6 TFLOPS
- 购置者:公共共享100%
- 1*Inspur NF5468M5-S
- Hostname: n002
- CPU: 2*Intel Xeon Gold 6248 (20 Cores, 27.5MB Cache, 2.50 GHz)
- RAM: 768 GB (24x32GB), 6 Channels, DDR4-2933 ECC RDIMM, Bandwidth: 281.6 GB/s
- GPU: 8*NVIDIA Tesla V100 SXM2 32GB (5120 CUDA Cores 1530MHz, 32GB HBM2 877MHz 4096-bit 900GB/s, NVLink 300GB/s, PCIe3.0 x16)
- SSD: 2*Samsung Enterprise SSD PM883, TLC 3D NAND, 480GB 683TBW, 2.5in SATA 6Gb/s, RAID1
- SSD: 2*Intel SSD DC P4510, 64-Layer TLC 3D NAND, 2TB 2.61PBW, U.2 15mm, PCIe3.1 x4 NVMe, RAID0
- SSD mounted at /ssd & /tmp/ssd
- Network: 10 Gigabit Ethernet, 100 Gbit/s EDR InfiniBand
9242opa
- 双精度浮点计算理论峰值:141.312 TFLOPS
- 购置者:孙建100%
- 20*Intel S9248WK2HAC
- Hostname: s001-s020
- CPU: 2*Intel Xeon Platinum 9242 (48 Cores, 71.5MB Cache, 2.30 GHz)
- RAM: 384 GB (24x16GB), 12 Channels, DDR4-2933 ECC RDIMM, Bandwidth: 563.2 GB/s
- SSD: Intel SSD D3-S4510, 64-Layer TLC 3D NAND, 480GB 1.2PBW, M.2 2280, SATA 6Gb/s
- Network: Gigabit Ethernet, 100 Gbit/s Omni-Path Architecture
7702ib
- 双精度浮点计算理论峰值:57.344 TFLOPS
- 购置者:公共共享100%
- 14*Asus RS720A-E9-RS24V2
- Hostname: a001-a014
- CPU: 2*AMD EPYC 7702 (64 Cores, 256MB Cache, 2.0 GHz)
- RAM: 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s
- [a001-a010] 256 GB (16x16GB)
- [a011-a014] 512 GB (32x16GB),
-R largemem
指定使用
- SSD: Samsung SSD 970 EVO Plus, V-NAND 3-bit MLC, 250GB 150TBW, M.2 2280, PCIe3.0 x4 NVMe 1.3
- Network: Gigabit Ethernet, 100 Gbit/s HDR100 InfiniBand
722080tiib
- CPU双精度浮点计算理论峰值:3.072 TFLOPS
- GPU单精度浮点计算理论峰值:215.168 TFLOPS
- 购置者:公共共享100%
- 4*Gigabyte G242-Z10
- Hostname: g001-g004
- CPU: 1*AMD EPYC 7302 (16 Cores, 128MB Cache, 3.0 GHz)
- GPU: 4*NVIDIA GeForce RTX 2080 Ti 11GB (4352 CUDA Cores 1545MHz, 11GB GDDR6 7000MHz 352-bit 616 GB/s, PCIe3.0 x16)
- RAM: 256 GB (8x32GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 204.8 GB/s
- SSD: Intel SSD DC S4600, 3D NAND TLC, 240GB 1.40PBW, 2.5in SATA 6Gb/s
- SSD: Intel SSD DC P4510, 64-Layer TLC 3D NAND, 2TB 2.61PBW, U.2 15mm, PCIe3.1 x4 NVMe
- SSD mounted at /ssd & /tmp/ssd
- Network: Gigabit Ethernet, 100 Gbit/s HDR100 InfiniBand
72rtxib
- CPU双精度浮点计算理论峰值:2.304 TFLOPS
- GPU单精度浮点计算理论峰值:195.744 TFLOPS
- 购置者:公共共享100%
- 3*Gigabyte G242-Z10
- Hostname: g005-g007
- CPU: 1*AMD EPYC 7302 (16 Cores, 128MB Cache, 3.0 GHz)
- GPU: 4*NVIDIA TITAN RTX 24GB (4608 CUDA Cores 1770MHz, 24GB GDDR6 7000MHz 384-bit 672 GB/s, PCIe3.0 x16)
- RAM: 256 GB (8x32GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 204.8 GB/s
- SSD: Intel SSD DC S4600, 3D NAND TLC, 240GB 1.40PBW, 2.5in SATA 6Gb/s
- SSD: Intel SSD DC P4510, 64-Layer TLC 3D NAND, 2TB 2.61PBW, U.2 15mm, PCIe3.1 x4 NVMe
- SSD mounted at /ssd & /tmp/ssd
- Network: Gigabit Ethernet, 100 Gbit/s HDR100 InfiniBand
5220r
- 双精度浮点计算理论峰值:5.0688 TFLOPS
- 购置者:盛利100%
- 3*Inspur NF5280M5
- Hostname: n006-n008
- CPU: 2*Intel Xeon Gold 5220R (24 Cores, 35.75MB Cache, 2.20 GHz)
- RAM: 192 GB (6x32GB), 3 Channels, DDR4-2666 ECC RDIMM, Bandwidth: 127.8 GB/s
- SSD: 2*Intel SSD DC S4500, 3D NAND TLC, 480GB 0.90PBW, 2.5in SATA 6Gb/s, RAID1
- Network: Gigabit Ethernet
6226rib
- 双精度浮点计算理论峰值:65.3312 TFLOPS
- 购置者:万贤纲100%
- 22*Huawei FusionServer Pro 1288H V5
- Hostname: f001-f022
- CPU: 2*Intel Xeon Gold 6226R (16 Cores, 22MB Cache, 2.90 GHz)
- RAM: 192 GB (12x16GB), 6 Channels, DDR4-2933 ECC RDIMM, Bandwidth: 281.6 GB/s
- SSD: Huawei ES3610C V5, 3D TLC, 1.6TB 8.76PBW, HHHL, PCIe3.0 x4 NVMe 1.3
- Network: Gigabit Ethernet, 100 Gbit/s EDR InfiniBand
6230r
- 双精度浮点计算理论峰值:10.4832 TFLOPS
- 购置者:盛利100%
- 3*Inspur NF5280M5
- Hostname: n009-n011
- CPU: 2*Intel Xeon Gold 6230R (26 Cores, 35.75MB Cache, 2.10 GHz)
- RAM: 192 GB (6x32GB), 3 Channels, DDR4-2666 ECC RDIMM, Bandwidth: 127.8 GB/s
- SSD: 2*Samsung PM883, TLC 3D NAND, 480GB 683TBW, 2.5in SATA 6Gb/s
- Network: Gigabit Ethernet
5318h
- 双精度浮点计算理论峰值:5.76 TFLOPS
- 购置者:李建新100%
- 1*Inspur NF8480M6
- Hostname: n035
- CPU: 4*Intel Xeon Gold 5318H (18 Cores, 24.75MB Cache, 2.50 GHz)
- RAM: 512 GB (16x32GB), 4 Channels, DDR4-2666 ECC RDIMM, Bandwidth: 170.7 GB/s
- HDD: 2*Samsung PM893, V-NAND TLC, 960GB 1752TBW, 2.5in SATA 6Gb/s, RAID1
- Network: Gigabit Ethernet
6330ib
- 双精度浮点计算理论峰值:57.344 TFLOPS
- 购置者:公共共享100%
- 16*Inspur NF5180M6
- Hostname: n016-n031
- CPU: 2*Intel Xeon Gold 6330 (28 Cores, 42MB Cache, 2.00 GHz)
- RAM: 256 GB (16x16GB), 8 Channels, DDR4-2933 ECC RDIMM, Bandwidth: 375.5 GB/s
- SSD: Intel SSD D3-S4510, 64-Layer TLC 3D NAND, 240GB 0.9PBW, 2.5in SATA 6Gb/s
- Network: Gigabit Ethernet, 100 Gbit/s HDR100 InfiniBand
6338
- 双精度浮点计算理论峰值:16.384 TFLOPS
- 购置者:卢毅100%
- 4*Inspur NF5180M6
- Hostname: n012-n015
- CPU: 2*Intel Xeon Gold 6338 (32 Cores, 48MB Cache, 2.00 GHz)
- RAM: 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s
- [n012 n013] 1024 GB (32x32GB)
- [n014 n015] 2048 GB (32x64GB),
-R largemem
指定使用
- SSD: Intel SSD D3-S4510, 64-Layer TLC 3D NAND, 240GB 0.9PBW, 2.5in SATA 6Gb/s
- Network: 10 Gigabit Ethernet
7k83
- 双精度浮点计算理论峰值: 15.6672 TFLOPS
- 购置者:雷群利100%
- 2*Gigabyte R182-Z90 1*Asus RS700A-E11-RS4U
- Hostname: g008-g009 a016
- CPU: 2*AMD EPYC 7K83 (64 Cores, 256MB Cache, 2.55 GHz)
- RAM: 256 GB (16x16GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s
- SSD: Intel SSD D3-S4510, 64-Layer TLC 3D NAND, 480GB 1.2PBW, 2.5in SATA 6Gb/s
- Network: 10 Gigabit Ethernet
83a100ib
- 双精度浮点计算理论峰值:82.9248 TFLOPS
- 购置者:公共共享100%
- 1*Supermicro SYS-420GP-TNAR+ (Powerleader PR4908WV)
- Hostname: m001
- CPU: 2*Intel Xeon Platinum 8358 (32 Cores, 48MB Cache, 2.60 GHz)
- RAM: 512 GB (16x32GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s
- GPU: 8*NVIDIA A100 SXM4 40GB (6912 CUDA Cores 1410MHz, 40GB HBM2 1215MHz 5120-bit 1555GB/s, NVLink 600GB/s, PCIe4.0 x16)
- SSD: Samsung 983 DCT, V-NAND 3-bit MLC, 960GB 1.366PBW, M.2 22110, PCIe3.0 x4 NVMe 1.2b
- SSD: 2*Intel SSD D7-P5520, 144-Layer TLC 3D NAND, 3.84TB 7.0PBW, U.2 15mm, PCIe4.0 x4, NVMe 1.4, RAID0
- SSD mounted at /ssd & /tmp/ssd
- Network: 10 Gigabit Ethernet, 200 Gbit/s HDR InfiniBand
813080
- CPU双精度浮点计算理论峰值:7.9872 TFLOPS
- GPU单精度浮点计算理论峰值:476.32 TFLOPS
- 购置者:雷群利100%
- 1*Supermicro SYS-4029GP-TRT 1*Asus ESC8000 G4
- Hostname: m004 a018
- CPU: [m004] 2*Xeon Platinum 8163 (24 Cores, 33MB Cache, 2.50 GHz) | [a018] 2*Xeon Platinum 8168 (24 Cores, 33MB Cache, 2.70 GHz)
- RAM: [m004] 64 GB (4x16GB), 2 Channels, DDR4-2666 ECC RDIMM, Bandwidth: 85.3 GB/s | [a018] 128 GB (8x16GB), 4 Channels, DDR4-2666 ECC RDIMM, Bandwidth: 170.7 GB/s
- GPU: 8*NVIDIA GeForce RTX 3080 10GB (8704 CUDA Cores 2100MHz, 10GB GDDR6X 9501MHz 320-bit 760.3 GB/s, PCIe3.0 x16)
- SSD: [m004] Intel SSD D3-S4510, 64-Layer TLC 3D NAND, 480GB 1.2PBW, 2.5in SATA 6Gb/s | [a018] Intel SSD D3-S4610, 64-Layer TLC 3D NAND, 240GB 1.4PBW, 2.5in SATA 6Gb/s
- Network: Gigabit Ethernet
723080
- CPU双精度浮点计算理论峰值:4.608 TFLOPS
- GPU单精度浮点计算理论峰值:238.16 TFLOPS
- 购置者:雷群利100%
- 1*Asus ESC8000A-E11
- Hostname: a015
- CPU: 2*AMD EPYC 7B12 (64 Cores, 256MB Cache, 2.25 GHz)
- RAM: 128 GB (16x8GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s
- GPU: 8*NVIDIA GeForce RTX 3080 10GB (8704 CUDA Cores 2100MHz, 10GB GDDR6X 9501MHz 320-bit 760.3 GB/s, PCIe4.0 x16)
- SSD: Intel SSD D3-S4510, 64-Layer TLC 3D NAND, 240GB 0.9PBW, 2.5in SATA 6Gb/s
- Network: Gigabit Ethernet
723090ib
- CPU双精度浮点计算理论峰值:4.3008 TFLOPS
- GPU单精度浮点计算理论峰值:569.28 TFLOPS
- 购置者:公共共享100%
- 2*Supermicro AS -4124GS-TNR (Roycom)
- Hostname: m002-m003
- CPU: 2*AMD EPYC 7402 (24 Cores, 128MB Cache, 2.8 GHz)
- RAM: 512 GB (16x32GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s
- GPU: 8*NVIDIA GeForce RTX 3090 24GB (10496 CUDA Cores 2100MHz, 24GB GDDR6X 9751MHz 384-bit 936.2 GB/s, PCIe4.0 x16)
- SSD: Intel SSD D3-S4510, 64-Layer TLC 3D NAND, 480GB 1.2PBW, 2.5in SATA 6Gb/s
- SSD: 2*Intel SSD D7-P5520, 144-Layer TLC 3D NAND, 3.84TB 7.0PBW, U.2 15mm, PCIe4.0 x4, NVMe 1.4, RAID0
- SSD mounted at /ssd & /tmp/ssd
- Network: Gigabit Ethernet, 100 Gbit/s HDR100 InfiniBand
814080
- CPU双精度浮点计算理论峰值:4.1472 TFLOPS
- GPU单精度浮点计算理论峰值:194.960 TFLOPS
- 购置者:雷群利100%
- 1*Supermicro X11DPG-QT
- Hostname: m009
- CPU: 2*Xeon Platinum 8168 (24 Cores, 33MB Cache, 2.70 GHz)
- RAM: 64 GB (4x16GB), 2 Channels, DDR4-2666 ECC RDIMM, Bandwidth: 85.3 GB/s
- GPU: 4*NVIDIA GeForce RTX 4080 16GB (9728 CUDA Cores 3105MHz, 16GB GDDR6X 11201MHz 256-bit 716.8 GB/s, PCIe4.0 x16)
- SSD: Samsung PM883, TLC 3D NAND, 240GB 341TBW, 2.5in SATA 6Gb/s
- Network: Gigabit Ethernet
734090d
- CPU双精度浮点计算理论峰值:5.7344 TFLOPS
- GPU单精度浮点计算理论峰值:588.32 TFLOPS
- 购置者:王炜100%
- 1*Inspur NF5468A5
- Hostname: n034
- CPU: 2*AMD EPYC 7543 (32 Cores, 256MB Cache, 2.8 GHz)
- RAM: 768 GB (24x32GB) DDR4-2933 ECC RDIMM
- GPU: 8*NVIDIA GeForce RTX 4090 D 24GB (14592 CUDA Cores 3105MHz, 24GB GDDR6X 10501MHz 384-bit 1008 GB/s, PCIe4.0 x16)
- SSD: Intel SSD D5-P5530, 128-Layer TLC NAND, 960GB 1.7PBW, U.2 15mm, PCIe4.0 x4, NVMe 1.3c
- SSD: 2*SAMSUNG PM983a, 7.68TB 10.9PBW, U.2 7mm, PCIe3.0 x4, NVMe 1.3c
- SSD mounted at /ssd1 & /ssd2
- Network: Gigabit Ethernet
944090d
- CPU双精度浮点计算理论峰值:7.3728 TFLOPS
- GPU单精度浮点计算理论峰值:441.24 TFLOPS
- 购置者:王炜100%
- 1*Inspur NF5468A7
- Hostname: n033
- CPU: 2*AMD EPYC 9654 (96 Cores, 384MB Cache, 2.4 GHz)
- RAM: 768 GB (24x32GB) 12 Channels, DDR5-4800 ECC RDIMM, Bandwidth: 921.6 GB/s
- GPU: 6*NVIDIA GeForce RTX 4090 D 24GB (14592 CUDA Cores 3105MHz, 24GB GDDR6X 10501MHz 384-bit 1008 GB/s, PCIe4.0 x16)
- SSD: SSD 960GB
- SSD: 2*SAMSUNG PM983a, 7.68TB 10.9PBW, U.2 7mm, PCIe3.0 x4, NVMe 1.3c
- SSD mounted at /ssd1 & /ssd2
- Network: Gigabit Ethernet
734090ib
- CPU双精度浮点计算理论峰值:5.7344 TFLOPS
- GPU单精度浮点计算理论峰值:1321.28 TFLOPS
- 购置者:公共共享100%
- 2*Supermicro AS -4124GS-TNR (Wuzhou S748E4)
- Hostname: m005-m006
- CPU: 2*AMD EPYC 7543 (32 Cores, 256MB Cache, 2.8 GHz)
- RAM: 512 GB (16x32GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s
- GPU: 8*NVIDIA GeForce RTX 4090 24GB (16384 CUDA Cores 3105MHz, 24GB GDDR6X 10501MHz 384-bit 1008 GB/s, PCIe4.0 x16)
- SSD: Samsung PM883, TLC 3D NAND, 480GB 683TBW, 2.5in SATA 6Gb/s
- SSD: 2*Intel SSD D7-P5520, 144-Layer TLC 3D NAND, 3.84TB 7.0PBW, U.2 15mm, PCIe4.0 x4, NVMe 1.4, RAID0
- SSD mounted at /ssd & /tmp/ssd
- Network: Gigabit Ethernet, 100 Gbit/s HDR100 InfiniBand
75434090ib
- CPU双精度浮点计算理论峰值:5.7344 TFLOPS
- GPU单精度浮点计算理论峰值:1321.28 TFLOPS
- 购置者:孙建100%
- 2*Supermicro AS -4124GS-TNR (Wuzhou S748E4 | Roycom)
- Hostname: m007-m008
- CPU: 2*AMD EPYC 7543 (32 Cores, 256MB Cache, 2.8 GHz)
- RAM: 512 GB (16x32GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s
- GPU: 8*NVIDIA GeForce RTX 4090 24GB (16384 CUDA Cores 3105MHz, 24GB GDDR6X 10501MHz 384-bit 1008 GB/s, PCIe4.0 x16)
- SSD: Samsung PM883, TLC 3D NAND, 480GB 683TBW, 2.5in SATA 6Gb/s
- Network: Gigabit Ethernet, 100 Gbit/s HDR100 InfiniBand
9654
- 双精度浮点计算理论峰值:7.3728 TFLOPS
- 购置者:雷群利100%
- 1*Asus RS720A-E12-RS12
- Hostname: a017
- CPU: 2*AMD EPYC 9654 (96 Cores, 384MB Cache, 2.4 GHz)
- RAM: 384 GB (24x16GB), 12 Channels, DDR5-4800 ECC RDIMM, Bandwidth: 921.6 GB/s
- SSD: Intel SSD D3-S4510, 64-Layer TLC 3D NAND, 480GB 1.2PBW, 2.5in SATA 6Gb/s
- Network: 10 Gigabit Ethernet
9754
- 双精度浮点计算理论峰值:9.216 TFLOPS
- 购置者:雷群利100%
- 1*Inventec K885G6
- Hostname: v001
- CPU: 2*AMD EPYC 9754 (128 Cores, 256MB Cache, 2.25 GHz)
- RAM: 384 GB (24x16GB), 12 Channels, DDR5-4800 ECC RDIMM, Bandwidth: 921.6 GB/s
- SSD: Intel SSD D5-P5530, 128-Layer TLC NAND, 960GB 1.7PBW, U.2 15mm, PCIe4.0 x4, NVMe 1.3c
- Network: 1 Gigabit Ethernet
6458q
- 双精度浮点计算理论峰值:25.3952 TFLOPS
- 购置者:卢毅100%
- 4*Nettrix R620 G50
- Hostname: u001-u004
- CPU: 2*Intel Xeon Gold 6458Q (32 Cores, 60MB Cache, 3.10 GHz)
- RAM: 1024 GB (16x64GB), 8 Channels, DDR5-4800 ECC RDIMM, Bandwidth: 614.4 GB/s
- SSD: Samsung PM883, TLC 3D NAND, 480GB 683TBW, 2.5in SATA 6Gb/s, RAID1
- Network: 10 Gigabit Ethernet
cpu1
- 作业≤24 cores 单节点运行于公共共享的CPU队列 e5v3ib 6140ib 7702ib 6330ib 中的任意节点,但优先级小于这些队列
存储资源
合计
- 总容量:2.8 PiB
总览
- 高速全闪:bbfs
- 家目录:fsa、fs04、fs08、fs09、fs10、fs12、fs13、fs14、fs00
- 归档存储:/archive
表格
并行存储
高速全闪(Tier 0)
特点:热数据、高性能
/bbfs
采用全NVMe SSD构建的高性能Burst Buffer,具备极高的顺序和随机读写性能,无快照。
- 文件系统:bbfs
- 购置者:公共共享100%
- 可用容量:117 TiB
- IO节点:4*HPE ProLiant DL380 Gen10: bb01 bb02 bb03 bb04
- CPU: 2*Intel Xeon Gold 5122 (2 Cores, 16.5MB Cache, 3.60 GHz)
- RAM: 192 GB (12x16GB), 6 Channels, DDR4-2666 ECC RDIMM
- Network: 2*25 Gigabit Ethernet, 100 Gbit/s EDR InfiniBand, 100 Gbit/s Omni-Path
- SSD: 8*Intel SSD DC P4510, 64-Layer TLC 3D NAND, 4TB 6.3PBW, 2.5in U.2 15mm, PCIe 3.1 x4 NVMe
- 保护:元数据和数据双副本
/bbfs/fs*/
所有文件系统(/fs*/)均在此目录中有映射,/bbfs/fs*/ 是 /fs*/ 的高速缓存,在 /bbfs/fs*/ 中重读和写入具有极高的性能,与直接在 /fs*/ 下相比有显著提升,保存在 /bbfs/fs*/ 下的文件会自动回写 /fs*/ 保存。
如:作业输入文件位于 /fsa/home/yaoge/in,如果此输入文件近期会被读取多次(无论是单个作业还是多个作业),则应将输入文件路径指定为 /bbfs/fsa/home/yaoge/in,那么从第二次开始均从高速SSD上读取,减少作业读取文件上花费的时间。
如:作业输出文件如较大,则应将数据文件路径指定为 /bbfs/fsa/home/yaoge/out,那么将直接写入高速SSD中,然后系统会自动将文件回写到 /fsa/home/yaoge/out 便于长期保存,减少作业写入文件上花费的时间。
/bbfs/scratch/
用于保存临时文件,超过30天没有访问(atime)的文件会被自动删除,适合于临时存储计算中间结果、checkpoint等无需长期保留的文件。文件名以 .tmp 和 .temp 结尾的文件保存为单副本(无数据保护)。
如:作业运行过程中保存的Check Point文件或多个作业之间通过临时文件传输数据,这些文件无需长期保存,则可以保存在/bbfs/scratch/yaoge目录下,读写均在高速SSD上。
家目录(Tier 1)
特点:温数据、中性能、快照
快照
快照是特定时间点数据的只读副本,用户可以从中恢复删除的文件或文件的过往版本。部分家目录文件系统有快照,可以在文件系统目录/.snapshot中查找。
如:/fsa的快照位于/fsa/.snapshots,/fsa/.snapshots/20220804-1800是2022年8月4日18时0分创建的快照,在这个目录下可以查阅快照创建时间点的所有文件。
/fsa
- 购置者:公共共享100%
- 可用容量:361 TiB
- 快照:每日0时创建;每天快照保留7天,每周快照保留2周
- IO节点:2*HP ProLiant DL380 Gen9: io01 io02
- 网络:2*10 Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
- 存储:DDN SFA7700X,双控制器,每控制器 32GB 缓存带电池备份至闪存
- 硬盘:Data: 10TB 3.5-inch 7.2Krpm 12Gb/s SAS,每10个盘做一组RAID6,5组RAID6。Metadata: Toshiba Enterprise SSD PX02SMU040 MLC 10DWPD 400GB 2.5-inch 12Gb/s SAS,10个盘做一组RAID6。
/fs04
- 购置者:万贤纲100%
- 可用容量:14 TiB
- IO存储节点:Dell PowerEdge 12G R720xd: io08
- 网络:2*10 Gigabit Ethernet
- RAID卡:Dell PERC H710P Mini (LSI SAS2208 ROC), 1GB cache with Intelligent Battery Backup Unit
- 硬盘:900GB 2.5-inch 10Krpm 6Gb/s SAS,每5个盘做一组RAID5,4组RAID5,2个热备盘
/fs08
- 购置者:孙建100%
- 可用容量:14 TiB
- 快照:每日0时创建;每天快照保留3天
- IO节点:2*Inspur NF5270M3: io10 io11
- 网络:2*1 Gigabit Ethernet, 40 Gbit/s QDR InfiniBand
- 存储:Inspur AS500H (NetApp E2600),双控制器,每控制器 4GB 缓存带电池备份至闪存,Write caching with mirroring, High Performance Tier
- 硬盘:900GB 2.5-inch 10Krpm 6Gb/s SAS,每5个盘做一组RAID5,4组RAID5,2个全局热备盘
/fs09
- 购置者:孙建100%
- 可用容量:24 TiB
- 快照:每日0时创建;每天快照保留7天,每周快照保留2周
- IO节点:2*Inspur NF5270M3: io10 io11
- 网络:2*1 Gigabit Ethernet, 40 Gbit/s QDR InfiniBand
- 存储:Inspur AS500H (NetApp E2600),双控制器,每控制器 4GB 缓存带电池备份至闪存,Write caching with mirroring, High Performance Tier
- 硬盘:3TByte 3.5-inch 7.2Krpm 6Gb/s NL-SAS,12个盘做一个Disk Pool,保留1个硬盘空间,做2个Virtual Disk
/fs10
- 购置者:王强华100%
- 可用容量:9.9 TiB
- IO存储节点:Inspur NF5270M3: io12
- 网络:2*1 Gigabit Ethernet, 40 Gbit/s QDR InfiniBand
- RAID卡:LSI MegaRAID SAS 9271-8i (LSI SAS2208 ROC), 1GB缓存超级电容备份至闪存
- 硬盘:900GB 2.5-inch 10Krpm 6Gb/s SAS,每5个盘做一组RAID5,3组RAID5,1个全局热备盘
/fs12
- 购置者:张海军100%
- 可用容量:14 TiB
- IO节点:2*HP ProLiant DL380 Gen9: io01 io02
- 网络:2*10 Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
- 存储:HP MSA 2040 SAN,双控制器,每控制器 4GB 缓存带超级电容备份至闪存
- 硬盘:900GB 2.5-inch 10Krpm 6Gb/s SAS,每5个盘做一组RAID5,4组RAID5,3个全局热备盘
/fs13
- 购置者:张海军100%
- 可用容量:30 TiB
- IO节点:2*HP ProLiant DL380 Gen9: io01 io02
- 网络:2*10 Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
- 存储:HP MSA 2040 SAN,双控制器,每控制器 4GB 缓存带超级电容备份至闪存
- 硬盘:4TByte 3.5-inch 7.2Krpm 6Gb/s SAS,每6个盘做一组RAID6,2组RAID6,1个冷备盘
/fs14
- 购置者:陈申见100%
- 可用容量:262 TiB
- IO节点:Dell PowerEdge R730: io13
- 网络:2*10 Gigabit Ethernet
- RAID卡:Dell PERC H730P Mini (LSI SAS3108 ROC), 2GB NV cache with Intelligent Battery Backup Unit
- 硬盘:8TByte 3.5-inch 7.2Krpm 12Gb/s SAS,6个盘做一组RAID6
- RAID卡:Dell PERC H830 (LSI SAS3108 ROC), 2GB NV cache with Intelligent Battery Backup Unit
- JBOD:8TByte 3.5-inch 7.2Krpm 12Gb/s SAS,6个盘做一组RAID6,8组RAID6
支撑目录
/fs00
- 购置者:公共共享100%
- 可用容量:3.3 TB
- 快照:每日0时创建;每天快照保留7天,每周快照保留12周
- IO节点:HP ProLiant DL380 Gen9: io01 io02
- 网络:2*10 Gigabit Ethernet, 56 Gbit/s FDR InfiniBand
- 存储:HP MSA 2040 SAN,双控制器,每控制器 4GB 缓存带超级电容备份至闪存
- 硬盘:900GB 2.5-inch 10Krpm 6Gb/s SAS,2个盘做一组RAID1,2组RAID1,1个全局热备盘
- IO节点:Inspur NF5270M3: io10 io11
- 网络:2*1 Gigabit Ethernet, 40 Gbit/s QDR InfiniBand
- 存储:Inspur AS500H (NetApp E2600),双控制器,每控制器 4GB 缓存带电池备份至闪存,Write caching with mirroring, High Performance Tier
- 硬盘:900GB 2.5-inch 10Krpm 6Gb/s SAS,2个盘做一组RAID1,2个全局热备盘
- IO存储节点):Inspur NF5270M3: io12
- 网络:2*1 Gigabit Ethernet, 40 Gbit/s QDR InfiniBand
- RAID卡:LSI MegaRAID SAS 9271-8i (LSI SAS2208 ROC), 1GB cache with Battery Backup Unit
- 硬盘:900GB 2.5-inch 10Krpm 6Gb/s SAS,2个盘做一组RAID1,1个全局热备盘
- 保护:RAID1+元数据和数据双副本
归档存储(Tier 2)
特点:冷数据、低性能、快照
/archive
- 购置者:公共共享100%
- 可用容量:1.91 PiB
- 快照:每日0时创建;每天快照保留7天,每周快照保留4周
- IO存储节点:Dell PowerEdge R740xd: zfs
- 网络:2*25 Gigabit Ethernet
- 保护:RAID-Z 3
- 访问范围:/archive 仅登录节点
快照
快照是特定时间点数据的只读副本,用户可以从中恢复删除的文件或文件的过往版本,可以在文件系统目录/.zfs/snapshot中查找。
如:/archive的快照位于/archive/.zfs/snapshot,/archive/.zfs/snapshot/20220904-0000是2022年9月4日0时0分创建的快照,在这个目录下可以查阅快照创建时间点的所有文件。
对象存储(Tier 2)
打破壁垒实现集群内外数据的统一访问。同一份数据,集群内外共同使用,访问方式相同,再无迁移数据的烦恼!
s3.nju.edu.cn
- 购置者:公共共享100%
- 裸容量:2.12 PB
- 系统:紫光西部数据 UniverStor P20000
- 网络:12*10 Gigabit Ethernet
- 保护:纠删码 Large object: 15/4, Small object: 6/4
- 协议:S3
- Endpoint: http://s3.nju.edu.cn OR https://s3.nju.edu.cn
- Region: “空” 或 us-east-1
- 访问范围:集群、校园网、互联网
临时目录
- 计算和登录节点的本地目录,节点间相互独立不能跨节点互访
- 超过24小时未访问且节点无文件所有者进程的文件会被自动删除
/tmp/ /var/tmp/
节点本地根文件系统的临时文件目录
/dev/shm/
节点内存中的临时文件系统目录,容量为总内存的一半,重启不保留
/ssd/ /tmp/ssd
部分节点有额外的SSD用于临时存储,则挂载于此目录
软件资源
部分软件资源
GNU
GNU Compiler Collection
Name | Path | Module |
---|---|---|
GNU Compiler Collection (GCC) 12.1.0 & GNU Binutils 2.38 | /fs00/software/gcc/12.1.0 | gcc/12.1.0 |
GNU Compiler Collection (GCC) 11.3.0 & GNU Binutils 2.36.1 | /fs00/software/gcc/11.3.0 | gcc/11.3.0 |
GNU Compiler Collection (GCC) 10.5.0 & GNU Binutils 2.34 | /fs00/software/gcc/10.5.0 | gcc/10.5.0 |
GNU Compiler Collection (GCC) 9.5.0 & GNU Binutils 2.32 | /fs00/software/gcc/9.5.0 | gcc/9.5.0 |
GNU Compiler Collection (GCC) 8.5.0 & GNU Binutils 2.30 | /fs00/software/gcc/8.5.0 | gcc/8.5.0 |
GNU Compiler Collection (GCC) 7.5.0 & GNU Binutils 2.28.1 | /fs00/software/gcc/7.5.0 | gcc/7.5.0 |
GNU Compiler Collection (GCC) 6.5.0 & GNU Binutils 2.26.1 | /fs00/software/gcc/6.5.0 | gcc/6.5.0 |
GNU Compiler Collection (GCC) 5.4.0 | /fs00/software/gcc/5.4.0 | gcc/5.4.0 |
GNU Make
Name | Path | Module |
---|---|---|
GNU Make 4.3 | /fs00/software/make/4.3 | make/4.3 |
GNU Make 4.2.1 | /fs00/software/make/4.2.1 | make/4.2.1 |
GNU Make 4.2 | /fs00/software/make/4.2 | make/4.2 |
GNU Scientific Library
Name | Compiler | Path | Module |
---|---|---|---|
GNU Scientific Library (GSL) 2.7.1 | GCC 12.1.0 | /fs00/software/gsl/2.7.1-gcc12.1.0 | gsl/2.7.1-gcc12.1.0 |
GNU Scientific Library (GSL) 2.5 | GCC 8.3.0 | /fs00/software/gsl/2.5-gcc8.3 | gsl/2.5-gcc8.3 |
GNU C Library
Name | Compiler | Path | Module |
---|---|---|---|
GNU C Library (glibc) 2.36 | GCC 12.1.0 | /fs00/software/glibc/2.36-gcc12.1.0 | glibc/2.36-gcc12.1.0 |
GNU C Library (glibc) 2.30 | GCC 9.2.0 | /fs00/software/glibc/2.30-gcc9.2.0 | glibc/2.30-gcc9.2.0 |
GNU Binutils
Name | Compiler | Path | Module |
---|---|---|---|
GNU Binutils 2.38 | GCC 12.1.0 | /fs00/software/binutils/2.38-gcc12.1.0 | binutils/2.38-gcc12.1.0 |
GNU Binutils 2.27 | GCC 5.4.0 | /fs00/software/binutils/2.27-gcc5.4.0 | binutils/2.27-gcc5.4.0 |
Intel
Intel oneAPI
Name | Path | MODULEPATH |
---|---|---|
Intel oneAPI Base Toolkit 2024.0.1 Intel HPC Toolkit 2024.0.1 |
/fs00/software/intel/oneapi2024.0 | /fs00/software/modulefiles/oneapi/2024.0 |
Intel Parallel Studio
Name | Path | Module |
---|---|---|
Intel Parallel Studio XE 2020 Update 2 Cluster Edition | /fs00/software/intel/ps2020u2 | ips/2020u2 |
Intel Parallel Studio XE 2019 Update 5 Cluster Edition | /fs00/software/intel/ps2019u5 | ips/2019u5 |
Intel Parallel Studio XE 2018 Update 4 Cluster Edition | /fs00/software/intel/ps2018u4 | ips/2018u4 |
Intel Parallel Studio XE 2017 Update 6 Cluster Edition | /fs00/software/intel/ps2017u6 | ips/2017u6 |
Intel Parallel Studio XE 2017 Update 2 Cluster Edition | /fs00/software/intel/ps2017u2 | ips/2017u2 |
Intel Parallel Studio XE 2016 Update 4 Cluster Edition | /fs00/software/intel/ps2016u4 | ips/2016u4 |
Intel Parallel Studio XE 2015 Update 6 Cluster Edition | /fs00/software/intel/ps2015u6 | ips/2015u6 |
Intel Cluster Studio XE 2013 Service Pack 1 (SP1) Update 1 | /fs00/software/intel/cs2013sp1u1 | ics/2013sp1u1 |
Intel Cluster Studio XE 2013 | /fs00/software/intel/cs2013 | ics/2013 |
Intel Parallel Studio XE 2011 SP1 Update 3 | /fs00/software/intel/ps2011sp1u3 | ips/2011sp1u3 |
Intel Distribution for Python
Name | Path |
---|---|
Intel Distribution for Python 2.7 2019 Update 5 | /fs00/software/intel/ps2019u5/intelpython2 |
Intel Distribution for Python 3.6 2019 Update 5 | /fs00/software/intel/ps2019u5/intelpython3 |
Intel Distribution for Python 2.7 2018 Update 3 | /fs00/software/intel/python2018u3/intelpython2 |
Intel Distribution for Python 3.6 2018 Update 3 | /fs00/software/intel/python2018u3/intelpython3 |
Intel Distribution for Python 2.7 2017 Update 3 | /fs00/software/intel/python2017u3/intelpython2 |
Intel Distribution for Python 3.5 2017 Update 3 | /fs00/software/intel/python2017u3/intelpython3 |
NVIDIA
CUDA Toolkit
Name | Path | Module |
---|---|---|
CUDA Toolkit 12.3.1 | /fs00/software/cuda/12.3.1 | cuda/12.3.1 |
CUDA Toolkit 12.0.0 | /fs00/software/cuda/12.0.0 | cuda/12.0.0 |
CUDA Toolkit 11.8.0 | /fs00/software/cuda/11.8.0 | cuda/11.8.0 |
CUDA Toolkit 11.2.0 | /fs00/software/cuda/11.2.0 | cuda/11.2.0 |
CUDA Toolkit 10.2.89 | /fs00/software/cuda/10.2.89 | cuda/10.2.89 |
CUDA Toolkit 10.1.243 | /fs00/software/cuda/10.1.243 | cuda/10.1.243 |
CUDA Toolkit 10.0.130 | /fs00/software/cuda/10.0.130 | cuda/10.0.130 |
CUDA Toolkit 9.2.148 | /fs00/software/cuda/9.2.148 | cuda/9.2.148 |
CUDA Toolkit 9.0.176 with Patch 3 | /fs00/software/cuda/9.0.176 | cuda/9.0.176 |
CUDA Toolkit 8.0 GA2 8.0.61 with Patch 2 | /fs00/software/cuda/8.0.61 | cuda/8.0.61 |
cuDNN
Name | CUDA | Path | Module |
---|---|---|---|
cuDNN v8.9.7.29 | 12.x | /fs00/software/cudnn/8.9.7.29-cuda12 | cudnn/8.9.7.29-cuda12 |
cuDNN v8.9.7.29 | 11.x | /fs00/software/cudnn/8.9.7.29-cuda11 | cudnn/8.9.7.29-cuda11 |
cuDNN v8.7.0.84 | 11.x | /fs00/software/cudnn/8.7.0.84-cuda11 | cudnn/8.7.0.84-cuda11 |
cuDNN v8.7.0.84 | 10.2 | /fs00/software/cudnn/8.7.0.84-cuda10 | cudnn/8.7.0.84-cuda10 |
cuDNN v8.1.1.33 | 11.2 | /fs00/software/cudnn/11.2-v8.1.1.33 | cudnn/11.2-v8.1.1.33 |
cuDNN v8.2.2.26 | 10.2 | /fs00/software/cudnn/10.2-v8.2.2.26 | cudnn/10.2-v8.2.2.26 |
cuDNN v7.6.5.32 | 10.2 | /fs00/software/cudnn/10.2-v7.6.5.32 | cudnn/10.2-v7.6.5.32 |
cuDNN v7.6.4.38 | 10.1 | /fs00/software/cudnn/10.1-v7.6.4.38 | cudnn/10.1-v7.6.4.38 |
cuDNN v7.6.5.32 | 10.0 | /fs00/software/cudnn/10.0-v7.6.5.32 | cudnn/10.0-v7.6.5.32 |
cuDNN v7.1.4 | 9.2 | /fs00/software/cudnn/9.2-v7.1.4 | cudnn/9.2-v7.1.4 |
cuDNN v7.1.4 | 9.0 | /fs00/software/cudnn/9.0-v7.1.4 | cudnn/9.0-v7.1.4 |
cuDNN v7.0.5 | 8.0 | /fs00/software/cudnn/8.0-v7.0.5 | cudnn/8.0-v7.0.5 |
cuDNN v6.0 | 8.0 | /fs00/software/cudnn/8.0-v6.0 | cudnn/8.0-v6.0 |
cuDNN v5.1 | 8.0 | /fs00/software/cudnn/8.0-v5.1 | cudnn/8.0-v5.1 |
HPC SDK
Name | Path | MODULEPATH |
---|---|---|
HPC SDK 23.11 | /fs00/software/nvhpc/23.11 | /fs00/software/nvhpc/23.11/modulefiles |
HPC SDK 22.11 | /fs00/software/nvhpc/22.11 | /fs00/software/nvhpc/22.11/modulefiles |
HPC SDK 21.3 | /fs00/software/nvhpc/21.3 | /fs00/software/nvhpc/21.3/modulefiles |
HPC SDK 20.9 | /fs00/software/nvhpc/20.9 | /fs00/software/nvhpc/20.9/modulefiles |
HPC-X
Name | CUDA | Path | MODULEPATH |
---|---|---|---|
HPC-X 2.17.1 | 12.x | /fs00/software/hpcx/2.17.1-cuda12 | /fs00/software/hpcx/2.17.1-cuda12/modulefiles |
NCCL
Name | CUDA | Path | Module |
---|---|---|---|
NCCL 2.19.3 | 12.3 | /fs00/software/nccl/2.19.3-cuda12.3 | nccl/2.19.3-cuda12.3 |
NCCL 2.16.2 | 12.0 | /fs00/software/nccl/2.16.2-cuda12.0 | nccl/2.16.2-cuda12.0 |
NCCL 2.16.2 | 11.8 | /fs00/software/nccl/2.16.2-cuda11.8 | nccl/2.16.2-cuda11.8 |
NCCL 2.16.2 | 11.0 | /fs00/software/nccl/2.16.2-cuda11.0 | nccl/2.16.2-cuda11.0 |
NCCL v2.5.6 | 10.2 | /fs00/software/nccl/10.2-v2.5.6 | nccl/10.2-v2.5.6 |
NCCL v2.4.8 | 10.1 | /fs00/software/nccl/10.1-v2.4.8 | nccl/10.1-v2.4.8 |
TensorRT
Name | CUDA | cuDNN | Path | Module |
---|---|---|---|---|
TensorRT 8.6.1.6 | 12.0 | /fs00/software/tensorrt/8.6.1.6-cuda12.0 | tensorrt/8.6.1.6-cuda12.0 | |
TensorRT 8.6.1.6 | 11.8 | /fs00/software/tensorrt/8.6.1.6-cuda11.8 | tensorrt/8.6.1.6-cuda11.8 | |
TensorRT 8.5.2.2 | 11.8 | 8.6 | /fs00/software/tensorrt/8.5.2.2-cuda11.8-cudnn8.6 | tensorrt/8.5.2.2-cuda11.8-cudnn8.6 |
TensorRT 8.5.2.2 | 10.2 | 8.6 | /fs00/software/tensorrt/8.5.2.2-cuda10.2-cudnn8.6 | tensorrt/8.5.2.2-cuda10.2-cudnn8.6 |
TensorRT 8.2.0.6 | 11.4 | 8.2 | /fs00/software/tensorrt/8.2.0.6-cuda11.4-cudnn8.2 | tensorrt/8.2.0.6-cuda11.4-cudnn8.2 |
TensorRT 8.2.0.6 | 10.2 | 8.2 | /fs00/software/tensorrt/8.2.0.6-cuda11.4-cudnn8.2 | tensorrt/8.2.0.6-cuda10.2-cudnn8.2 |
AMD
AMD Optimizing C/C++ Compiler
Name | Path | Module |
---|---|---|
AMD Optimizing C/C++ Compiler 2.3.0 (AOCC) | /fs00/software/aocc/2.3.0 | aocc/2.3.0 |
AMD Optimizing C/C++ Compiler 2.1.0 (AOCC) | /fs00/software/aocc/2.1.0 | aocc/2.1.0 |
AMD Optimizing C/C++ Compiler 2.0.0 (AOCC) | /fs00/software/aocc/2.0.0 | aocc/2.0.0 |
AMD Optimizing CPU Libraries
Name | Path | Module |
---|---|---|
AMD Optimizing CPU Libraries 2.2 (AOCL) | /fs00/software/aocl/2.2 | aocl/2.2 |
AMD Optimizing CPU Libraries 2.0 (AOCL) | /fs00/software/aocl/2.0 | aocl/2.0 |
Python
请使用者自行解决License问题,本中心概不负责!
Anaconda
Name | Path | Module |
---|---|---|
Anaconda 3 (Python3) Latest | /fs00/software/anaconda/3 | anaconda/3 |
Anaconda 2 (Python2) Latest | /fs00/software/anaconda/2 | anaconda/2 |
Anaconda 5.0.1 (Python 3.6) | /fs00/software/anaconda/3-5.0.1 | anaconda/3-5.0.1 |
Anaconda 5.0.1 (Python 2.7) | /fs00/software/anaconda/2-5.0.1 | anaconda/2-5.0.1 |
Anaconda 3.4.1 (Python 3.6) | /fs00/software/anaconda/3-3.4.1 | anaconda/3-3.4.1 |
Anaconda 3.4.1 (Python 2.7) | /fs00/software/anaconda/2-3.4.1 | anaconda/2-3.4.1 |
Golang
Golang
Name | Path | Module |
---|---|---|
Golang 1.21.6 | /fs00/software/golang/1.21.6 | golang/1.21.6 |
Golang 1.19.5 | /fs00/software/golang/1.19.5 | golang/1.19.5 |
Golang 1.18.10 | /fs00/software/golang/1.18.7 | golang/1.18.10 |
Golang 1.17.13 | /fs00/software/golang/1.17.13 | golang/1.17.13 |
Golang 1.16.15 | /fs00/software/golang/1.16.15 | golang/1.16.15 |
Golang 1.15.15 | /fs00/software/golang/1.15.15 | golang/1.15.15 |
Open MPI
Open MPI
Name | Compiler | Path | Module |
---|---|---|---|
Open MPI 4.1.2 | GNU Compiler Collection (GCC) 11.2.0 | /fs00/software/openmpi/4.1.2-gcc11.2.0 | openmpi/4.1.2-gcc11.2.0 |
Open MPI 3.1.2 | GNU Compiler Collection (GCC) 8.2.0 | /fs00/software/openmpi/3.1.2-gcc8.2.0 | openmpi/3.1.2-gcc8.2.0 |
Open MPI 1.10.0 | Intel C++ Compiler XE 15.0 Update 3 & Fortran Compiler XE 15.0 Update 3 | /fs00/software/openmpi/1.10.0-iccifort-15.0.3 | openmpi/1.10.0-iccifort-15.0.3 |
Open MPI 1.10.0 | GNU Compiler Collection (GCC) 5.2.0 | /fs00/software/openmpi/1.10.0-gcc-5.2.0 | openmpi/1.10.0-gcc-5.2.0 |
Open MPI 1.10.5 | GNU Compiler Collection (GCC) 5.4.0 | /fs00/software/openmpi/1.10.5-gcc5.4.0 | openmpi/1.10.5-gcc5.4.0 |
Tcl/TK
Tcl/Tk
Name | Compiler | Path | Module |
---|---|---|---|
Tcl/Tk 8.6.12 | GNU Compiler Collection (GCC) 11.2.0 | /fs00/software/tcl/8.6.12-gcc11.2.0 | tcl/8.6.12-gcc11.2.0 |
Tcl/Tk 8.6.6 | Intel Parallel Studio XE 2017 Update 2 | /fs00/software/tcl/8.6.6-ips2017u2 | tcl/8.6.6-ips2017u2 |
Tcl/Tk 8.6.4 | /fs00/software/tcl/8.6.4 | tcl/8.6.4 | |
Tcl/Tk 8.6.4 | Intel Parallel Studio XE 2016 Update 2 | /fs00/software/tcl/8.6.4-ips2016u2 | tcl/8.6.4-ips2016u2 |
Tcl/Tk 8.6.4 | Intel Parallel Studio XE 2016 Update 2 | /fs00/software/tcl/8.6.4-ips2016u2-avx2 | tcl/8.6.4-ips2016u2-avx2 |
计算软件
请使用者自行解决License问题,本中心概不负责!
FFTW 3.3.7
/fs00/software/fftw/3.3.7-iccifort-17.0.6-* 依赖iccifort/17.0.6
FFTW 3.3.8
/fs00/software/fftw/3.3.8-ips2019u5 依赖ips/2019u5
LAMMPS 11Aug17
/fs00/software/lammps/11Aug17
OpenFOAM® v1806
/fs00/software/openfoam/v1806-ips2017u6
source /fs00/software/openfoam/v1806-ips2017u6/OpenFOAM-v1806/etc/bashrc
P4vasp 0.3.29
/fs00/software/p4vasp/0.3.29
Modulefile: p4vasp/0.3.29
Phonopy 1.11.2
/fs00/software/phonopy/1.11.2
Quantum ESPRESSO 5.2.0 & 6.1
/fs00/software/qe/5.2.0-ips2015u3/ 依赖ips/2015u3
/fs00/software/qe/6.1-ips2017u2/ 依赖ips/2017u2
ShengBTE
/fs00/software/shengbte 依赖 iccifort/15.0.3 openmpi/1.10.0-iccifort-15.0.3
Siesta 3.2-pl-5
/fs00/software/siesta/3.2-pl-5 依赖ips/2017u6
thirdorder 1.0.2 04d3f46feb78
/fs00/software/thirdorder/1.0.2
Modulefile: thirdorder/1.0.2 依赖 anaconda/2-4.3.1 spglib/1.9.9
TBPLaS
/fs00/software/tbplas
MKL+MPI Version
Modulefile:
- oneapi/2024.0/compiler/2024.0.2
- oneapi/2024.0/ifort/2024.0.2
- oneapi/2024.0/mkl/2024.0
- oneapi/2024.0/mpi/2021.11
VASP6 GPU 编译
VASP6 GPU(N卡) 编译实例
王勇 (孙建课题组)
人工微结构科学与技术协同创新中心高性能计算中心
根据vasp官方给出的信息,以后vasp gpu版本会着重开发openacc标准的版本,之前老cuda版本会逐渐被废弃,因此我们以vasp6.2 的openacc版本结合官方指导进行编译。 官方指导链接
https://www.vasp.at/wiki/index.php/OpenACC_GPU_port_of_VASP
编译器:
Openacc gpu Vasp6官方给出编译器意见为使用NVIDIA HPC-SDK或者 PGI's Compilers & Tools (version >=19.10)。在此vasp官方建议使用NVIDIA HPC-SDK且版本号最好为20.9,因为之后的版本可能会有一些对于vasp的bug。
关于NVIDIA HPC-SDK 20.9的安装,见
https://developer.nvidia.com/nvidia-hpc-sdk-209-downloads
相关主页,安装流程十分简单,使用wget下载,一键式安装,对于不连接外网的节点,可以手动下载tarball压缩包,上传后本地解压,在此不再赘述,安装前请使用nvidia-smi命令查看本地硬件驱动和兼容的cuda版本(version >=10.0),确保匹配,必要时候需升级硬件驱动。
安装HPC-SDK 20.9的过程中会询问安装路径,我们以路径为/usr/software/nv-hpcsdk
为例,在安装过程中指定此路径为例以后,需要设定环境变量:
export NVARCH=`uname -s`_`uname -m`;
export NVCOMPILERS=/usr/software/nv-hpcsdk #修改此处为安装路径
export PATH=$NVCOMPILERS/$NVARCH/20.9/compilers/bin:$PATH
export MANPATH=$MANPATH:$NVCOMPILERS/$NVARCH/20.9/compilers/man
export LD_LIBRARY_PATH=$NVCOMPILERS/$NVARCH/20.9/compilers/lib/:$LD_LIBRARY_PATH
export PATH=$NVCOMPILERS/$NVARCH/20.9/comm_libs/mpi/bin/:$PATH
上述可以每次使用gpu vasp6时手动添加在任务脚本,也可直接写在bashrc,但是不建议直接写在bashrc,可能会和intel版本的 mpirun冲突,造成其他之前软件的运行问题。
依赖库:
安装完NVIDIA HPC-SDK 20.9以后,还需要将软件运行需要的依赖库整理好,主要有CUDA Toolkit, QD, NCCL, 以及FFTW, 前三项直接包含在HPC-SDK,不需要单独安装。
对于FFTW,最好不要用nvhpc-sdk的编译器进行安装,如果设置了上面安装完hpc-sdk的环境变量,请先用GNU或者intel的编译器环境变量进行覆盖,不然可能会导致计算效率问题,可以自己编译,也可以直接使用集群内已经安装好的版本,路径为/fs00/software/fftw/3.3.8-ips2019u5
编译:
准备好编译器和依赖库以后,就可以进行编译了,进入vasp6.2根目录,
cp arch/makefile.include.linux_nv_acc makefile.include`
可以使用
which nvfortran | awk -F /compilers/bin/nvfortran '{ print $$1 }'`
查看nvfortran是否为nv-hpc-sdk的路径,如有问题,可以重新添加一遍环境变量。
(注:最近vasp官方又在官网添加了新的openacc+openmp混编版本的makefile.include.linux_nv_acc+omp+mkl来解决nccl库限制openacc版本只能单进程运行的问题,通过openmp来提升单进程多线程的运算效率,但目前没有太多相关测试的数据来支撑openmp混编会提升很多并行速度,所以在此我仍以旧版本的makefile.include.linux_nv_acc为例,同时官方也在积极改进这个问题,后续应该也可以多进程运行)
makefile.include的内容需要修改几处,包括确认编译器的位置,明确依赖库的路径等。修改后的makefile.include如下(需要注意和修改的位置后面有注释):
#Precompiler options
CPP_OPTIONS= -DHOST=\"LinuxPGI\" \
-DMPI -DMPI_BLOCK=8000 -DMPI_INPLACE -Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Dvasp6 \
-Duse_bse_te \
-Dtbdyn \
-Dqd_emulate \
-Dfock_dblbuf \
-D_OPENACC \
-DUSENCCL -DUSENCCLP2P
CPP = nvfortran -Mpreprocess -Mfree -Mextend -E $(CPP_OPTIONS) $*$(FUFFIX) > $*$(SUFFIX)
FC = mpif90 -acc -gpu=cc60,cc70,cc80,cuda11.0
FCL = mpif90 -acc -gpu=cc60,cc70,cc80,cuda11.0 -c++libs
FREE = -Mfree
FFLAGS = -Mbackslash -Mlarge_arrays
OFLAG = -fast
DEBUG = -Mfree -O0 -traceback
#Specify your NV HPC-SDK installation, try to set NVROOT automatically
NVROOT =$(shell which nvfortran | awk -F /compilers/bin/nvfortran '{ print $$1 }')
#or set NVROOT manually
#NVHPC ?= /opt/nvidia/hpc_sdk
#NVVERSION = 20.9
#NVROOT = $(NVHPC)/Linux_x86_64/$(NVVERSION)
#Use NV HPC-SDK provided BLAS and LAPACK libraries
BLAS = -lblas
LAPACK = -llapack
BLACS =
SCALAPACK = -Mscalapack
CUDA = -cudalib=cublas,cusolver,cufft,nccl -cuda
LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS) $(CUDA)
#Software emulation of quadruple precsion
QD = $(NVROOT)/compilers/extras/qd #注意并修改这里
LLIBS += -L$(QD)/lib -lqdmod -lqd
INCS += -I$(QD)/include/qd
#Use the FFTs from fftw
FFTW = /fs00/software/fftw/3.3.8-ips2019u5 #修改fftw路径至本地安装路径
LLIBS += -L$(FFTW)/lib -lfftw3
INCS += -I$(FFTW)/include
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
#Redefine the standard list of O1 and O2 objects
SOURCE_O1 := pade_fit.o
SOURCE_O2 := pead.o
#For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = nvfortran
CC_LIB = nvc
CFLAGS_LIB = -O
FFLAGS_LIB = -O1 -Mfixed
FREE_LIB = $(FREE)
OBJECTS_LIB= linpack_double.o getshmem.o
#For the parser library
CXX_PARS = nvc++ --no_warnings
#Normally no need to change this
SRCDIR = ../../src
BINDIR = ../../bin
此外编译前和每次提交任务前请清除其他环境并重新设置一遍环境变量:
module load ips/2019u5 #这是为了我们使用集群安装好的fftw找到依赖的路径
export NVARCH=`uname -s`_`uname -m`;
export NVCOMPILERS=/usr/software/nv-hpcsdk
export PATH=$NVCOMPILERS/$NVARCH/20.9/compilers/bin:$PATH
export MANPATH=$MANPATH:$NVCOMPILERS/$NVARCH/20.9/compilers/man
export LD_LIBRARY_PATH=$NVCOMPILERS/$NVARCH/20.9/compilers/lib/:$LD_LIBRARY_PATH
export PATH=$NVCOMPILERS/$NVARCH/20.9/comm_libs/mpi/bin/:$PATH
/usr/software/nv-hpcsdk
为nv-hpc-sdk的安装路径
确认好以上所有设置后,就可以使用
make std gam ncl
进行编译了,注意,由于openacc版本的原因,直接取消了编译make gpu的方式,编译得到的vasp_std之类的版本直接可以使用GPU进行计算。
其他注意事项:
1.由于nccl库的限制,openacc的gpu版本只能单进程运行.
2.INCAR中NCORE在openacc版本中只能设为1.
3.INCAR中NSIM和KPAR参数需要对不同体系进行测试来达到效率最大化,一般来说,KPAR和所使用的GPU也就是进程数一致,NSIM需要设置的比在cpu上更大,具体请自行测试.
更多相关问题可以见GPU官方指导
也可以去VASP论坛提问
Quantum Espresso
使用Apptainer
例:使用qe7.1版本,输入文件为当前目录下的FeO_test.in
,申请1个GPU提交到723090ib
队列,使用pw.x
#BSUB -J FeO_test
#BSUB -q 723090ib
#BSUB -gpu num=1
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
QE="apptainer run --nv /fs00/software/singularity-images/ngc_quantum_espresso_qe-7.1.sif"
${QE} pw.x < FeO_test.in > FeO_test.out
NAMD
NAMD 2.12 (2016-12-22)
- /fs00/software/namd/2.12
例:输入文件为当前目录下的in.conf,申请48个核提交到e5v3ib队列
#BSUB -n 48
#BSUB -q e5v3ib
input=in.conf
#bindir=/fs00/software/namd/2.12/verbs/
bindir=/fs00/software/namd/2.12/ibverbs/
nodefile=nodelist
echo "group main" > $nodefile
for i in `echo $LSB_HOSTS`
do
echo "host $i" >> $nodefile
done
${bindir}charmrun ++remote-shell ssh ++nodelist $nodefile +p$LSB_DJOB_NUMPROC ${bindir}namd2 $input
OOMMF
The Object Oriented MicroMagnetic Framework (OOMMF) 1.2 alpha 6
- /fs00/software/oommf/12a6-tcl8.6.4-ips2016u2 依赖tcl/8.6.4-ips2016u2和ips/2016u2
- /fs00/software/oommf/12a6-tcl8.6.4-ips2016u2-avx2 依赖tcl/8.6.4-ips2016u2-avx2和ips/2016u2
例:输入文件为当前目录下的sample.mif,申请72个核提交到6140ib队列
#BSUB -q 6140ib
#BSUB -n 72
module load ips/2016u2
module load tcl/8.6.4-ips2016u2-avx2
oommfin=sample.mif
oommfrun=/fs00/software/oommf/12a6-tcl8.6.4-ips2016u2-avx2/oommf.tcl
OOMMF_HOSTPORT=`tclsh $oommfrun launchhost 0`
export OOMMF_HOSTPORT
tclsh $oommfrun mmArchive
tclsh $oommfrun boxsi -numanodes auto -threads $LSB_DJOB_NUMPROC $oommfin
tclsh $oommfrun killoommf all
Mumax3
mumax 3.10
- /fs00/software/mumax/3.10-cuda11.0/
例:输入文件为当前目录下的sample.mx3,申请1个GPU提交到723090ib队列
#BSUB -q 723090ib
#BSUB -gpu num=1
mx3in=sample.mx3
module load cuda/11.2.0
/fs00/software/mumax/3.10-cuda11.0/mumax3 $mx3in
支撑软件
请使用者自行解决License问题,本中心概不负责!
AWS CLI v2
Name | Path | Module |
---|---|---|
AWS CLI current | /fs00/software/aws-cli/v2/current | aws-cli/current |
AWS CLI 2.9.6 | /fs00/software/aws-cli/v2/2.9.6 | aws-cli/2.9.6 |
bbcp
Name | Path | Module |
---|---|---|
bbcp 14.04.14.00.1 | /fs00/software/bbcp/14.04.14.00.1 | bbcp/14.04.14.00.1 |
Boost
Name | Path | Module |
---|---|---|
Boost 1.72.0 | /fs00/software/boost/1.72.0 | boost/1.72.0 |
Boost 1.58.0 | /fs00/software/boost/1.58.0 | boost/1.58.0 |
CMake
Name | Path | Module |
---|---|---|
CMake 3.23.2 | /fs00/software/cmake/3.23.2/ | cmake/3.23.2 |
CMake 3.16.3 | /fs00/software/cmake/3.16.3/ | cmake/3.16.3 |
CMake 3.11.4 | /fs00/software/cmake/3.11.4/ | cmake/3.11.4 |
Git
Name | Path | Module |
---|---|---|
Git 2.38.1 | /fs00/software/git/2.38.1 | git/2.38.1 |
Grace
Name | Path | Module |
---|---|---|
Grace 5.1.25 | /fs00/software/grace/5.1.25 | grace/5.1.25 |
HDF5
Name | Path | Module |
---|---|---|
HDF5 1.10.5 | /fs00/software/hdf5/1.10.5 | hdf5/1.10.5 |
libpng
Name | Path | Module |
---|---|---|
libpng 1.5.26 | /fs00/software/libpng/1.5.26 | libpng/1.5.26 |
jq
Name | Path | Module |
---|---|---|
jq 1.7 | /fs00/software/jq/1.7 | jq/1.7 |
Libxc
Name | Compiler | Path | Module |
---|---|---|---|
Libxc 5.2.2 | GNU Compiler Collection (GCC) 11.2.0 | /fs00/software/libxc/5.2.2 | libxc/5.2.2 |
libzip
Name | Path | Module |
---|---|---|
libzip 1.6.1 | /fs00/software/libzip/1.6.1 | libzip/1.6.1 |
NetCDF-C
Name | Path | Module |
---|---|---|
NetCDF-C 4.7.0 | /fs00/software/netcdf/c-4.7.0 | netcdf/c-4.7.0 |
PCRE
Name | Path | Module |
---|---|---|
PCRE 8.39 | /fs00/software/pcre/8.39 | pcre/8.39 |
Qt
Name | Path | Module |
---|---|---|
Qt 5.11.1 | /fs00/software/qt/5.11.1 | qt/5.11.1 |
rclone
Name | Path | Module |
---|---|---|
rclone latest | /fs00/software/rclone/latest | rclone/latest |
rclone 1.66.0 | /fs00/software/rclone/1.66.0 | rclone/1.66.0 |
Spglib (OpenMP)
Name | Compiler | Path | Module |
---|---|---|---|
Spglib 1.9.9 | /fs00/software/spglib/1.9.9 | spglib/1.9.9 | |
Spglib 1.9.0 | GNU Compiler Collection (GCC) 5.2.0 | /fs00/software/spglib/1.9.0-gcc5.2.0 | spglib/1.9.0-gcc5.2.0 |
tmux
Name | Path | Module |
---|---|---|
tmux 3.3a | /fs00/software/tmux/3.3a | tmux/3.3a |
zlib
Name | Path | Module |
---|---|---|
zlib 1.2.11 | /fs00/software/zlib/1.2.11 | zlib/1.2.11 |
Singularity Image
/fs00/software/singularity-images/
有丰富的官方容器镜像包
gnuplot
gnuplot
Name | Path | Module |
---|---|---|
gnuplot 5.2.7 | /fs00/software/gnuplot/5.2.7 | gnuplot/5.2.7 |
gnuplot 5.2.2 | /fs00/software/gnuplot/5.2.2 | gnuplot/5.2.2 |
gnuplot 5.0.6 | /fs00/software/gnuplot/5.0.6 | gnuplot/5.0.6 |
gnuplot 5.0.1 | /fs00/software/gnuplot/5.0.1 | gnuplot/5.0.1 |
OVITO
OVITO
Name | Path | Module |
---|---|---|
OVITO 3.7.12 | /fs00/software/ovito/3.7.12 | ovito/3.7.12 |
OVITO 2.9.0 | /fs00/software/ovito/2.9.0 | ovito/2.9.0 |
Vim
Vim
Name | Path | Module |
---|---|---|
Vim 9.0.1677 | /fs00/software/vim/9.0.1677 | vim/9.0.1677 |
Vim 8.2.0488 | /fs00/software/vim/8.2.0488 | vim/8.2.0488 |
Vim 8.1 | /fs00/software/vim/8.1 | vim/8.1 |
Zsh
Name | Path | Module |
---|---|---|
Zsh latest | /fs00/software/zsh/latest | zsh/latest |
Zsh 5.8 | /fs00/software/zsh/5.8 | zsh/5.8 |
或从镜像站下载编译安装
Environment Modules
添加 Environment Modules 至 Zsh
echo "source /fs00/software/modules/latest/init/profile.sh" >> ~/.zshrc
命令行提示符
- 因登录时需判断命令行提示符是否为
$
,因此建议保持 Bash 为默认 Shell,登录后通过下列命令切换至 Zsh
module load zsh/latest && exec zsh
- 如设置 Zsh 为默认 Shell 或登录会自动切换至 Zsh,则必须更改 Zsh 的命令行提示符(环境变量PS1)以
$
结尾($+空格),否则登录会失败!
Oh My Zsh
安装
在本地克隆后获取安装脚本再进行安装
git clone https://mirror.nju.edu.cn/git/ohmyzsh.git
cd ohmyzsh/tools
REMOTE=https://mirror.nju.edu.cn/git/ohmyzsh.git sh install.sh
切换已有 Oh My Zsh 至镜像源
git -C $ZSH remote set-url origin https://mirror.nju.edu.cn/git/ohmyzsh.git
git -C $ZSH pull
升级
omz update
主题
Powerlevel10k
安装
git clone --depth=1 https://mirror.nju.edu.cn/git/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
编辑 ~/.zshrc
的主题 ZSH_THEME="powerlevel10k/powerlevel10k"
升级
cd ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k && git pull
256色终端
开启 xterm 终端的256色以便正确显示提示颜色
echo "export TERM=xterm-256color" >> ~/.zshrc
永久在左侧显示主机名
在集群中经常需要登录到各个节点,因此最好在左侧永久显示主机名防止误操作
编辑 ~/.p10k.zsh
- 将
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
中的context
剪切到POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
的第一项 - 注释
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
这一行 - 更改
typeset -g POWERLEVEL9K_CONTEXT_PREFIX=
为''
插件
zsh-autosuggestions
安装
git clone https://mirror.nju.edu.cn/git/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
编辑 ~/.zshrc
在 plugins=
中添加 zsh-syntax-highlighting
plugins=( ... zsh-autosuggestions)
升级
cd ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && git pull
zsh-syntax-highlighting
安装
git clone https://mirror.nju.edu.cn/git/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
编辑 ~/.zshrc
在 plugins=
最后添加 zsh-syntax-highlighting
plugins=( [plugins...] zsh-syntax-highlighting)
升级
cd ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && git pull
AlphaFold 2
/fs00/software/alphafold/2.3.2/AlphaFold-v2.3.2.sif
#BSUB -J alphafold
#BSUB -q gpu
#BSUB -n 16
#BSUB -gpu num=1
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
export MKL_NUM_THREADS="$LSB_DJOB_NUMPROC"
ALPHAFOLD_DATADIR=/bbfs/data/alphafold/2
ALPHAFOLD_IMAGE=AlphaFold-v2.3.2.sif
ALPHAFOLD_APP=/app/alphafold
RUN_ALPHAFOLD="apptainer run --bind ${ALPHAFOLD_DATADIR}:${ALPHAFOLD_APP}/download \
--nv ${ALPHAFOLD_IMAGE}"
${RUN_ALPHAFOLD} python ${ALPHAFOLD_APP}/run_alphafold.py --use_gpu_relax \
--data_dir=${ALPHAFOLD_APP}/download \
--uniref90_database_path=${ALPHAFOLD_APP}/download/uniref90/uniref90.fasta \
--mgnify_database_path=${ALPHAFOLD_APP}/download/mgnify/mgy_clusters_2022_05.fa \
--bfd_database_path=${ALPHAFOLD_APP}/download/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
--pdb70_database_path=${ALPHAFOLD_APP}/download/pdb70/pdb70 \
--uniref30_database_path=${ALPHAFOLD_APP}/download/uniref30/UniRef30_2021_03 \
--template_mmcif_dir=${ALPHAFOLD_APP}/download/pdb_mmcif/mmcif_files \
--obsolete_pdbs_path=${ALPHAFOLD_APP}/download/pdb_mmcif/obsolete.dat \
--model_preset=monomer \
--max_template_date=2022-10-1 \
--db_preset=full_dbs \
--output_dir=output \
--fasta_paths=input/input.fasta
AlphaFold 3
/fs00/software/alphafold/3.0.0/AlphaFold-v3.0.0.sif
0. 基本信息
alphafold3是Google DeepMind开发的、用于生物分子复合体结构预测的人工智能模型,该模型接受一个json形式的、用于描述生物分子体系的文件,输出预测结构与置信度打分信息。结构预测过程主要分为两步:
- data pipeline: 在一定参数控制下,基于输入的序列信息进行生物信息学搜索,得到结构预测所需的共进化信息 (multi-sequence alginment, msa) 与结构模板 (templates),并将这些信息与输入信息整合,将整合信息作为json文件输出
- inference: 读取整合入msa和templates的json文件,转化为模型输入特征进行推理,输出mmcif格式的预测结构与confidence score
此处部署的是基于官方github库打包的apptainer容器。容器内包含alphafold3程序本体和依赖,不包含程序运行所需的数据库与预训练权重——这些需要在运行时以命令行参数传入。集群上部署有生信搜索所需数据库,模型权重的使用受term of use控制,请自行向Google DeepMind申请。
1. 使用方法
为避免冗长的路径和指令重复出现,定义变量
path_to_af3db="/bbfs/data/alphafold/3"
path_to_af3container="/fs00/software/alphafold/3.0.0/AlphaFold-v3.0.0.sif "
io_dir=</path/to/your/input/and/output>
weights_dir=<path/to/directory/containing/your/af3-weights>
RUN_ALPHAFOLD="apptainer run --nv --bind ${path_to_af3db}:/databases,${io_dir}:/host_iopath,${weights_dir}:/af3_weights ${path_to_af3container} python run_alphafold.py"
其中${path_to_af3db}
是集群上alphafold3数据库地址,${io_dir}
是输入文件所在的、及希望结果输出的目录,${weights_dir}
是自己申请的alphafold3权重文件所在目录。run_alphafold.py
是官方github库提供的接口文件。本页面后续出现的指令均默认这些变量存在。
输出帮助信息 (包括参数说明)
${RUN_ALPHAFOLD} --help
将输入文件input.json
放在${io_dir}
目录下,如下指令可使用alphafold3预测此文件描述体系的结构
${RUN_ALPHAFOLD} --db_dir=/databases/ --model_dir=/af3_weights/ \
--json_path=/host_iopath/input.json --output_dir=/host_iopath/
程序将根据input.json
中的name字段值,在${io_dir}
下创建同名子目录,data pipeline结束时补全的json文件、预测结构文件和confidence score都会被保存在这个子目录中。运行时log信息通过stderr输出 (这是python logging模块的行为)。关于更详细的输入输出文件说明,请参考官方input documentation和output documentation。
2. 分步运行data pipeline与inference
如前所述,程序运行主要分为data pipeline和inference两步。其中,data pipeline只使用cpu计算且耗时很长,如果在gpu队列上运行会导致gpu资源长期空置,可能导致高额费用和gpu资源浪费。因此,推荐先在cpu队列上运行data pipeline,得到中间结果 (也就是补全的json) 退出,然后再到gpu队列上进行结构预测。
为满足上述需求,可以用bool型命令行参数--run_data_pipeline
和--run_inference
控制模型只运行其中一步,两参数默认值均为True.
分步运行指令示例:
- data pipeline (cpu job)
${RUN_ALPHAFOLD} --db_dir=/databases/ --model_dir=/af3_weights/ \ --json_path=/host_iopath/input.json --output_dir=/host_iopath/ \ --run_inference=False
- inference (gpu job)
${RUN_ALPHAFOLD} --db_dir=/databases/ --model_dir=/af3_weights/ \ --json_path=/host_iopath/input.json --output_dir=/host_iopath/ \ --run_data_pipeline=False
另外,出于研究或加速计算的目的,用户可能希望使用自行准备的msa或templates,因而需要跳过alphafold3搜索步骤,此时需要手动将msa和templates写进输入json文件,然后带--run_data_pipeline=False
参数运行模型,进行结构预测。关于如何将msa和templates写入json文件,请自行参考DeepMind-input documentation。注意,msa和templates会以文本形式写入json中,因此写入了msa和templates的json文件大小会达到数十到百Mb量级。
3. 关于其他命令行参数
除去以上参数外,容器还可接受很多其他参数,可以用${RUN_ALPHAFOLD} --help
查看,或是在run_alphafold.py
中查看。我认为有3点值得注意:
-
--input_dir
和--json_path
都可以指定输入文件,使用时只应指定其一。当指定input_dir时,模型会从input_dir中寻找一个json格式文件,当作输入文件 -
--jackhmmer_n_cpu
和--nhmmer_n_cpu
指定生信搜索中使用cpu cores数目的上限 - 机器学习程序通常允许设置random seed来保证运行的可重复性,alphafold3的random seed不能以命令行参数指定,而是在input.json中
4. 队列兼容性、测试中的运行耗时
data pipeline对设备要求不高,inference则可能对gpu设备有些要求。目前测试了两例:
- 2PV7,蛋白,双链homomer,单链长度298
- 1AKE,蛋白,双链homomer,单链长度214
在队列83a100ib和734090d上测试结果显示:以上体系在单张A100卡 (memory 40 G) 或单张4090d (memory 24 G) 上均可完成inference. 在队列722080tiib和72rtxib上无法成功运行. 其他GPU队列未做测试。注意,官方performance documentation文档指出官方仅测试过alphafold3在A100(80G), A100(40 G)和H100设备上推理的准确性,因此使用如4090等其他设备做推理时,请自行校验结果准确性。
测试中data pipeline和inference计算所需时间如下:
- 使用8 cpu cores对一条长约300的蛋白序列进行msa和templates搜索耗时为1.5-2 h;其中,搜出msa后,根据部分匹配片段信息挑选出templates耗时为10 s量级,相对于总时间可以忽略
- 对每个随机种子,alphafold3会预测5个结构并按置信度打分挑选最好的作为最终结果,此过程耗时100 s左右;inference步总耗时与设置随机种子数有关
更多performance信息可参考官方performance documentation。
5. 运行结果准确性评估
比较2PV7预测结构与实验结构,全原子RMSD=4.410 (单位: Angstrom,下同)。 为衡量单链水平结构误差,计算预测A:B链-实验A:B链间RMSD,4个RMSD值分别为3.012, 2.759, 2.971, 2.740. 此单链上,alphafold3预测准确度低于alphafold2. 为衡量2个subunits间相对位置误差,计算DockQ分数为0.499>0.23,预测结构docking成功。
1AKE双链结构预测有较大错误,预测结构与1AKE实验结构RMSD=18.176,与4AKE实验结构RMSD=26.791,该结果远不如alphafold2-multimer。subunits间DockQ=0.019<<0.23,说明结构相对位置也预测错误。尚不清楚是Alphafold3本身原因,还是部署或使用不当导致。使用4090d和A100推理的结果无明显差异。
dockQ (Mirabello & Wallner, 2024, Bioinformatics) 打分用于衡量模型对subunits 间位置关系预测准确度。此分数取值范围是0-1,通常<0.23认为错误,>0.8认为准确。
RoseTTAFold
/fs00/software/rosettafold/1.1.0
注意:apptainer
默认会bind用户的home
目录,如果用户本来就有RoseTTAFold
或者folding
的conda环境则可能会发生冲突。用户可通过添加--no-home
选项避免此问题。
#BSUB -J RoseTTAFold
#BSUB -q gpu
#BSUB -n 8
#BSUB -gpu num=1
###### Configurie Numpy threads ######
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
export MKL_NUM_THREADS="$LSB_DJOB_NUMPROC"
###### Definition ######
ROSETTAFOLD_DATADIR=/bbfs/data/rosettafold # path to RoseTTAFold data (host)
ROSETTAFOLD_IMAGE=RoseTTAFold-1.1.0.sif # path to RoseTTAFold image (host)
ROSETTAFOLD_APPDIR=/app/RoseTTAFold # path to RoseTTAFold working directory (container)
###### Database ######
UNIREF30_DB=$ROSETTAFOLD_DATADIR/UniRef30_2020_06
BFD_DB=$ROSETTAFOLD_DATADIR/bfd
PDB100_DB=$ROSETTAFOLD_DATADIR/pdb100_2021Mar03
###### Example ######
RUN_ROSETTAFOLD="apptainer run --bind $UNIREF30_DB:$ROSETTAFOLD_APPDIR/UniRef30_2020_06 \
--bind $BFD_DB:$ROSETTAFOLD_APPDIR/bfd \
--bind $PDB100_DB:$ROSETTAFOLD_APPDIR/pdb100_2021Mar03 \
--nv $ROSETTAFOLD_IMAGE"
# For monomer structure prediction (e2e)
${RUN_ROSETTAFOLD} $ROSETTAFOLD_APPDIR/run_e2e_ver.sh $ROSETTAFOLD_APPDIR/example/input.fa output/
# For monomer structure prediction (pyrosetta)
${RUN_ROSETTAFOLD} $ROSETTAFOLD_APPDIR/run_pyrosetta_ver.sh $ROSETTAFOLD_APPDIR/example/input.fa output/
# For complex modeling
${RUN_ROSETTAFOLD} python $ROSETTAFOLD_APPDIR/network/predict_complex.py \
-i $ROSETTAFOLD_APPDIR/example/complex_modeling/paired.a3m \
-o output/ -Ls 218 310
# For PPI screening using faster 2-track version (example input and output are at example/complex_2track)
${RUN_ROSETTAFOLD} python $ROSETTAFOLD_APPDIR/network_2track/predict_msa.py \
-msa $ROSETTAFOLD_APPDIR/example/complex_2track/input.a3m \
-npz output/complex.npz -L1 218
ParallelFold 2
/fs00/software/parallelfold/2.0-2.3.1/ParallelFold-v2.0-with-AlphaFold-v2.3.1.sif
#BSUB -J parafold
#BSUB -q gpu
#BSUB -n 16
#BSUB -gpu num=1
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
export MKL_NUM_THREADS="$LSB_DJOB_NUMPROC"
ALPHAFOLD_DATADIR=/bbfs/data/alphafold/2
PARAFOLD_IMAGE=ParallelFold-v2.0-with-AlphaFold-v2.3.1.sif
PARAFOLD_APP=/app/ParallelFold
RUN_PARAFOLD="apptainer run --bind ${ALPHAFOLD_DATADIR}:${PARAFOLD_APP}/download \
--nv ${PARAFOLD_IMAGE}"
${RUN_PARAFOLD} python ${PARAFOLD_APP}/run_alphafold.py --use_gpu_relax \
--parameter_path=${PARAFOLD_APP}/download/params \
--uniref90_database_path=${PARAFOLD_APP}/download/uniref90/uniref90.fasta \
--mgnify_database_path=${PARAFOLD_APP}/download/mgnify/mgy_clusters_2022_05.fa \
--bfd_database_path=${PARAFOLD_APP}/download/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
--pdb70_database_path=${PARAFOLD_APP}/download/pdb70/pdb70 \
--uniref30_database_path=${PARAFOLD_APP}/download/uniref30/UniRef30_2021_03 \
--template_mmcif_dir=${PARAFOLD_APP}/download/pdb_mmcif/mmcif_files \
--obsolete_pdbs_path=${PARAFOLD_APP}/download/pdb_mmcif/obsolete.dat \
--model_preset=monomer \
--max_template_date=2022-10-1 \
--db_preset=full_dbs \
--output_dir=output \
--fasta_paths=${PARAFOLD_APP}/input/input.fasta
服务门户
https://scc.nju.edu.cn
登录方式
使用集群的用户名密码登录中心主持研发的HPC服务门户,在集群上没有账号的使用门户的用户名密码登录。
账号管理
组一般对应课题组,用户则对应每个人。因涉及到收费,组长一般为教职工(如PI、导师),组员一般为学生或老师。
组长可自助审批组员账号,通过后账号立刻生效,即可使用。组长还可以禁用启用组员账号,被禁用的账号不能远程登录集群和服务门户,被禁用账号的数据和作业不受影响。
申请新组
- 新组长首页点击申请组
- 南京大学校内人员请绑定统一身份认证;
- 填写表单,提交申请;
- 与管理员联系,等待审批。
申请组员
测试报告
AMD EPYC Rome VASP 测试
周健 2019.11.18
测试算例
Ruddlesden-Popper 钛酸锶 Sr4Ti3O10,305个原子。
输入文件
SYSTEM = STO
PREC=A
ENCUT=520
EDIFF=1E-6
ADDGRID=.T.
ISMEAR= 1
SIGMA=0.2
LWAVE=.F.
LCHARG=.F.
NELMIN=4
NELM=100
LREAL=Auto
K-Points
0
Gamma
2 2 1
0 0 0
eScience中心测试,软件版本:VASP5.4.4 Intel 2018,CUDA 10.1.243
队列信息 | CPU 核数 | Elapsed time (s) | scf次数 | E0 in OSZICAR |
---|---|---|---|---|
e5v3ib队列,2*Intel Xeon E5-2680 v3 (12 Cores 2.50 GHz) 256 G RAM | 24 | 6676 | 23 | -.23554005E+04 |
e52682v4opa队列, 2*Intel Xeon E5-2682 v4 (16 Cores, 2.50 GHz) | 32 | 5967 | 23 | -.23554005E+04 |
6140ib队列, 4*Intel Xeon Gold 6140 (18 Cores, 2.30 GHz) 384 G RAM | 72 | 2080 | 23 | -.23554005E+04 |
6140ib队列, 4*Intel Xeon Gold 6140 (18 Cores, 2.30 GHz) 384 G RAM | 36 | 2456 | 23 | -.23554005E+04 |
6140ib队列, 4*Intel Xeon Gold 6140 (18 Cores, 2.30 GHz) 384 G RAM | 18 | 5005 | 23 | -.23554005E+04 |
7702队列, 2*AMD EPYC 7702 (64 Cores, 256MB Cache, 2.0 GHz) 256 G RAM | 32 | 5034 | 23 | -.23554005E+04 |
7702队列, 2*AMD EPYC 7702 (64 Cores, 256MB Cache, 2.0 GHz) 256 G RAM | 64 | 3663 | 22 | -.23554005E+04 |
7702队列, 2*AMD EPYC 7702 (64 Cores, 256MB Cache, 2.0 GHz) 256 G RAM | 128 | 4401 | 23 | -.23554005E+04 |
7502队列, 2*AMD EPYC 7502 (32 Cores, 128MB Cache, 2.5 GHz) 256 G RAM | 32 | 5290 | 23 | -.23554005E+04 |
7502队列, 2*AMD EPYC 7502 (32 Cores, 128MB Cache, 2.5 GHz) 256 G RAM | 64 | 4176 | 22 | -.23554005E+04 |
62v100ib队列,2*Intel Xeon Gold 6248 (20 Cores, 27.5MB Cache, 2.50 GHz) 768 GB RAM,8*NVIDIA Tesla V100 SXM2 32GB (5120 CUDA Cores 1290MHz, 32GB HBM2 876MHz 4096-bit 900 GB/s, NVLink, PCI-E 3.0 x16) | 1CPU 1GPU | 3053 | 23 | -.23554005E+04 |
校计算中心测试,软件版本:VASP 5.4.4 Intel 2017,CUDA 10.1.168
队列信息 | CPU/GPU | Elapsed time (s) | scf次数 | E0 in OSZICAR |
---|---|---|---|---|
fat_384队列,4*Intel Xeon Gold 6248 (20 Cores, 2.50 GHz) 384 G RAM | 20 | 5326.949 | 23 | -.23554005E+04 |
fat_384队列,4*Intel Xeon Gold 6248 (20 Cores, 2.50 GHz) 384 G RAM | 40 | 3105.863 | 23 | -.23554005E+04 |
fat_384队列,4*Intel Xeon Gold 6248 (20 Cores, 2.50 GHz) 384 G RAM | 80 | 2896.237 | 21 | -.23554005E+04 |
gpu_v100队列,8 X TESLA V100 NVLink GPU,2 X CPU intel Xeon Gold 6248, 20核,2.5GHz, 768GB 内存 | 1/1 | 3202.687 | 23 | -.23554005E+04 |
gpu_v100队列,8 X TESLA V100 NVLink GPU,2 X CPU intel Xeon Gold 6248, 20核,2.5GHz, 768GB 内存 | 2/2 | 2244.153 | 23 | -.23554005E+04 |
gpu_v100队列,8 X TESLA V100 NVLink GPU,2 X CPU intel Xeon Gold 6248, 20核,2.5GHz, 768GB 内存 | 4/4 | 1379.651 | 23 | -.23554005E+04 |
gpu_v100队列,8 X TESLA V100 NVLink GPU,2 X CPU intel Xeon Gold 6248, 20核,2.5GHz, 768GB 内存 | 8/8 | 1214.461 | 23 | -.23554005E+04 |
结论
- AMD EPYC Rome 比 Intel V3/V4 快一些,但比 Intel Gold 系列慢许多
- 核心太多对于VASP并不有利
Gromacs
注意:为了保证GPU性能, 在没有特殊要求的情况下,请使用2021版本的Gromacs,并用GPU计算所有的相互作用。没特殊要求的话请看第三部分。
1. Gromacs-2018.8
说明:
Gromacs使用CPU计算成键相互作用,使用GPU计算非键相互作用。
编译环境:
gcc/7.4.0
cmake/3.16.3
ips/2017u2
fftw/3.3.7-iccifort-17.0.6-avx2
cuda/10.0.130
软件信息:
GROMACS version: 2018.8
Precision: single
Memory model: 64 bit
MPI library: MPI
OpenMP support: enabled (GMX_OPENMP_MAX_THREADS = 64)
GPU support: CUDA
SIMD instructions: AVX2_256
FFT library: fftw-3.3.7-avx2-avx2_128
CUDA driver: 11.40
CUDA runtime: 10.0
测试算例:
ATOM 102808(464 residues, 9nt DNA, 31709 SOL, 94 NA, 94 CL)
nsteps = 25000000 ;50 ns
eScience中心GPU测试: 所有GPU节点使用单个GPU进行模拟。
2. Gromacs-2021.3
说明:
使用的是集群自带的容器化(singularity)的gromacs-2021.3. Gromacs使用CPU计算成键相互作用,使用GPU计算非键相互作用。
文件位置
/fs00/software/singularity-images/ngc_gromacs_2021.3.sif
提交代码
#BSUB -q GPU_QUEUE
#BSUB -gpu "num=1"
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
SINGULARITY="singularity run --nv /fs00/software/singularity-images/ngc_gromacs_2021.3.sif"
${SINGULARITY} gmx mdrun -nb gpu -deffnm <NAME>
软件信息:
GROMACS version: 2021.3-dev-20210818-11266ae-dirty-unknown
Precision: mixed
Memory model: 64 bit
MPI library: thread_mpi
OpenMP support: enabled (GMX_OPENMP_MAX_THREADS = 64)
GPU support: CUDA
SIMD instructions: AVX2_256
FFT library: fftw-3.3.9-sse2-avx-avx2-avx2_128-avx512
CUDA driver: 11.20
CUDA runtime: 11.40
测试算例:
ATOM 102808(464 residues, 9nt DNA, 31709 SOL, 94 NA, 94 CL)
nsteps = 25000000 ;50 ns
eScience中心GPU测试: 所有GPU节点使用单个GPU进行模拟。
3. Gromacs-2021.3(全部相互作用用GPU计算)
说明:
由于从2019版本开始,不同的相互作用慢慢都可以在GPU上进行运算,2021版本已经可以将所有模拟的计算用GPU来模拟,所以尝试用GPU进行所有相互作用的运算。
文件位置
/fs00/software/singularity-images/ngc_gromacs_2021.3.sif
提交代码
#BSUB -q GPU_QUEUE
#BSUB -gpu "num=1"
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC" # 需要,否则会占用所有CPU,反而导致速度变慢
SINGULARITY="singularity run --nv /fs00/software/singularity-images/ngc_gromacs_2021.3.sif"
${SINGULARITY} gmx mdrun -nb gpu -bonded gpu -update gpu -pme gpu -pmefft gpu -deffnm <NAME> # 设置所有的运算用GPU进行
测试算例:
ATOM 102808(464 residues, 9nt DNA, 31709 SOL, 94 NA, 94 CL)
nsteps = 25000000 ;50 ns
eScience中心GPU测试: 所有GPU节点使用单个GPU进行模拟。
结论:
- 对于GPU节点来说,如果使用GPU+CPU混合运算,主要限制的速度的会是CPU,所以应该尽可能使用GPU进行相互作用的计算。
补充信息
每个GPU队列带有的CPU核数
Queue | CPU Core |
---|---|
72rtxib | 4 |
722080tiib | 4 |
723090ib | 6 |
62v100ib | 5 |
83a100ib | 8 |
vasp6 gpu 测试
Gromacs-2021.3 (比较常用GPU队列)
4. Gromacs-2021.3 (比较常用GPU队列)
说明:
使用Singularity容器解决方案,调用/fs00/software/singularity-images/ngc_gromacs_2021.3.sif完成Gromacs的能量最小化(em)、平衡模拟(nvt、npt)以及成品模拟(md)在公共共享100%GPU队列722080tiib、72rtxib、723090ib的表现。
队列情况:
队列 | 节点数 | 每节点CPU | 每节点内存(GB) | 平均每核内存(GB) | CPU主频(GHz) | 每节点GPU数量 | 每GPU显存(GB) | 浮点计算理论峰值(TFLOPS) |
---|---|---|---|---|---|---|---|---|
83a100ib | 1 | 64 | 512 | 8 | 2.6 | 8 | 40 | 双精度:82.92 单精度:------ |
723090ib | 2 | 48 | 512 | 10.7 | 2.8 | 8 | 24 | 双精度:4.30 单精度:569.28 |
722080tiib | 4 | 16 | 128 | 8.0 | 3.0 | 4 | 11 | 双精度:3.07 单精度:215.17 |
72rtxib | 3 | 16 | 128 | 8.0 | 3.0 | 4 | 24 | 双精度:2.30 单精度:195.74 |
前人关于Gromacs-2021.3(全部相互作用用GPU计算)的测试报告中,尝试用GPU来模拟102808个原子体系(464 residues, 9nt DNA, 31709 SOL, 94 NA, 94 CL)50 ns内所有相互作用的运算,结果表明83a100ib(250 ns/day以上)>723090ib(220 ns/day以上)>722080tiib(170 ns/day以上)>72rtxib(180 ns/day以上),但83a100ib和723090ib队列常年存在80以上的NJOBS,因此作为成品模拟的前期准备,笔者通常不使用这两个队列。
文件位置:
/fs00/software/singularity-images/ngc\_gromacs\_2021.3.sif
提交代码:
能量最小化(em.lsf)
#BSUB -q 72rtxib
#BSUB -gpu "num=1"
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
SINGULARITY="singularity run --nv /fs00/software/singularity-images/ngc_gromacs_2021.3.sif"
${SINGULARITY} gmx grompp -f minim.mdp -c 1aki_solv_ions.gro -p topol.top -o em.tpr
${SINGULARITY} gmx mdrun -nb gpu -ntmpi 2 -deffnm em
平衡模拟(nvt)
#BSUB -q 72rtxib
#BSUB -gpu "num=1"
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
SINGULARITY="singularity run --nv /fs00/software/singularity-images/ngc_gromacs_2021.3.sif"
${SINGULARITY} gmx grompp -f nvt.mdp -c em.gro -r em.gro -p topol.top -o nvt.tpr
${SINGULARITY} gmx mdrun -nb gpu -ntmpi 2 -deffnm nvt
平衡模拟(npt)
#BSUB -q 72rtxib
#BSUB -gpu "num=1"
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
SINGULARITY="singularity run --nv /fs00/software/singularity-images/ngc_gromacs_2021.3.sif"
${SINGULARITY} gmx grompp -f npt.mdp -c nvt.gro -r nvt.gro -t nvt.cpt -p topol.top -o npt.tpr
${SINGULARITY} gmx mdrun -nb gpu -ntmpi 2 -deffnm npt
成品模拟(md)
#BSUB -q 723090ib
#BSUB -gpu "num=1"
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
SINGULARITY="singularity run --nv /fs00/software/singularity-images/ngc_gromacs_2021.3.sif"
${SINGULARITY} gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -o md_0_1.tpr
${SINGULARITY} gmx mdrun -nb gpu -bonded gpu -update gpu -pme gpu -pmefft gpu -deffnm md_0_1
成品模拟(md)
也可以参照以下命令进行修改,以作业脚本形式进行提交:
#BSUB -q 723090ib
#BSUB -gpu "num=1"
export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC"
SINGULARITY="singularity run --nv /fs00/software/singularity-images/ngc_gromacs_2021.3.sif"
${SINGULARITY} gmx pdb2gmx -f protein.pdb -o protein_processed.gro -water tip3p -ignh -merge all <<< 4
${SINGULARITY} gmx editconf -f protein_processed.gro -o pro_newbox.gro -c -d 1.0 -bt cubic
${SINGULARITY} gmx solvate -cp pro_newbox.gro -cs spc216.gro -o pro_solv.gro -p topol.top
${SINGULARITY} gmx grompp -f ../MDP/ions.mdp -c pro_solv.gro -p topol.top -o ions.tpr
${SINGULARITY} gmx genion -s ions.tpr -o pro_solv_ions.gro -p topol.top -pname NA -nname CL -neutral <<< 13
${SINGULARITY} gmx grompp -f ../MDP/minim.mdp -c pro_solv_ions.gro -p topol.top -o em.tpr
${SINGULARITY} gmx mdrun -v -deffnm em
${SINGULARITY} gmx energy -f em.edr -o potential.xvg <<< "10 0"
${SINGULARITY} gmx grompp -f ../MDP/nvt.mdp -c em.gro -r em.gro -p topol.top -o nvt.tpr
${SINGULARITY} gmx mdrun -deffnm nvt
${SINGULARITY} gmx energy -f nvt.edr -o temperature.xvg <<< "16 0"
${SINGULARITY} gmx grompp -f ../MDP/npt.mdp -c nvt.gro -r nvt.gro -t nvt.cpt -p topol.top -o npt.tpr
${SINGULARITY} gmx mdrun -deffnm npt
${SINGULARITY} gmx energy -f npt.edr -o pressure.xvg <<< "18 0"
${SINGULARITY} gmx grompp -f ../MDP/md.mdp -c npt.gro -t npt.cpt -p topol.top -o md.tpr
${SINGULARITY} gmx mdrun -v -deffnm md
${SINGULARITY} gmx rms -f md.xtc -s md.tpr -o rmsd.xvg <<< "4 4"
软件信息:
GROMACS version: 2021.3-dev-20210818-11266ae-dirty-unknown
Precision: mixed
Memory model: 64 bit
MPI library: thread_mpi
OpenMP support: enabled (GMX_OPENMP_MAX_THREADS = 64)
GPU support: CUDA
SIMD instructions: AVX2_256
FFT library: fftw-3.3.9-sse2-avx-avx2-avx2_128-avx512
CUDA driver: 11.20
CUDA runtime: 11.40
测试算例:
ATOM 218234 (401 Protein residues, 68414 SOL, 9 Ion residues)
nsteps = 100000000 ; 200 ns
eScience中心GPU测试: 能量最小化(em)、平衡模拟(nvt、npt)使用1个GPU进行模拟,成品模拟(md)使用1个GPU进行模拟。
任务1 | em | nvt | npt | md |
---|---|---|---|---|
--- | 72rtxib | 722080tiib | 722080tiib | 723090ib |
CPU time | 1168.45 | 13960.33 | 42378.71 | |
Run time | 79 | 1648 | 5586 | 117.428 ns/day 0.204 hour/ns |
Turnaround time | 197 | 1732 | 5661 | |
任务2 | em | nvt | npt | md |
--- | 72rtxib | 722080tiib | 72rtxib | 722080tiib |
CPU time | 1399.30 | 15732.66 | 40568.04 | |
Run time | 93 | 1905 | 5236 | 106.862 ns/day 0.225 hour/ns |
Turnaround time | 181 | 1991 | 5479 | |
任务3 | em | nvt | npt | md |
--- | 72rtxib | 72rtxib | 72rtxib | 72rtxib |
CPU time | 1368.11 | 5422.49 | 5613.74 | |
Run time | 92 | 355 | 366 | 103.213 ns/day 0.233 hour/ns |
Turnaround time | 180 | 451 | 451 | |
任务4 | em | nvt | npt | md |
--- | 72rtxib | 72rtxib | 72rtxib | 722080tiib |
CPU time | 1321.15 | 5441.60 | 5618.87 | |
Run time | 89 | 356 | 369 | 111.807 ns/day 0.215 hour/ns |
Turnaround time | 266 | 440 | 435 | |
任务5 | em | nvt | npt | md |
--- | 72rtxib | 72rtxib | 72rtxib | 72rtxib |
CPU time | 1044.17 | 5422.94 | 5768.44 | |
Run time | 72 | 354 | 380 | 110.534 ns/day 0.217 hour/ns |
Turnaround time | 162 | 440 | 431 | |
任务6 | em | nvt | npt | md |
--- | 723090ib | 723090ib | 723090ib | 723090ib |
CPU time | 1569.17 | 7133.74 | 6677.25 | |
Run time | 81 | 326 | 325 | 114.362 ns/day 0.210 hour/ns |
Turnaround time | 75 | 320 | 300 | |
任务7 | em | nvt | npt | md |
--- | 723090ib | 723090ib | 723090ib | 722080tiib |
CPU time | 1970.56 | 5665.71 | 6841.73 | |
Run time | 91 | 253 | 327 | 111.409 ns/day 0.215 hour/ns |
Turnaround time | 123 | 251 | 328 | |
任务8 | em | nvt | npt | md |
--- | 72rtxib | 72rtxib | 72rtxib | 72rtxib |
CPU time | 1234.24 | 5540.59 | 5528.91 | |
Run time | 108 | 363 | 370 | 114.570 ns/day 0.209 hour/ns |
Turnaround time | 85 | 364 | 363 | |
任务9 | em | nvt | npt | md |
--- | 723090ib | 723090ib | 723090ib | 723090ib |
CPU time | 2016.10 | 7633.83 | 7983.58 | |
Run time | 93 | 342 | 361 | 115.695 ns/day 0.207 hour/ns |
Turnaround time | 130 | 377 | 356 | |
任务10 | em | nvt | npt | md |
--- | 723090ib | 723090ib | 723090ib | 72rtxib |
CPU time | 1483.84 | 7025.65 | 7034.90 | |
Run time | 68 | 317 | 333 | 102.324 ns/day 0.235 hour/ns |
Turnaround time | 70 | 319 | 316 |
结论:
-
能量最小化(em)在任务较少的722080tiib和72rtxib队列中,Run time分别为88.83 ± 12.45和83.25 ± 11.44s;
-
平衡模拟(nvt)任务在722080tiib、72rtxib和723090ib队列中,Run time分别为1776.50 ± 181.73、357.00 ± 4.08和309.50 ± 39.06 s;
-
平衡模拟(npt)任务在722080tiib、72rtxib和723090ib队列中,Run time分别为5411.00 ± 247.49、371.25 ± 6.08和336.50 ± 16.68 s;
-
原子数218234的 200 ns成品模拟(md)任务在722080tiib、72rtxib、和723090ib队列中,性能表现差别不大,分别为110.03 ± 2.75、115.83 ± 1.54和107.66 ± 5.90 ns/day。
-
综上,建议在能量最小化(em)、平衡模拟(nvt、npt)等阶段使用排队任务较少的72rtxib队列 ,建议在成品模拟(md)阶段按照任务数量(从笔者使用情况来看,排队任务数量72rtxib<722080tiib<723090ib<83a100ib)、GPU收费情况(校内及协同创新中心用户:72rtxib队列1.8 元/卡/小时=0.45元/核/小时、722080tiib队列1.2 元/卡/小时=0.3元/核/小时、723090ib队列1.8 元/卡/小时=0.3元/核/小时、83a100ib队列4.8 元/卡/小时=0.3元/核/小时)适当考虑队列。
-
在以上提交代码中,未涉及到Gromacs的并行效率问题(直接“num=4”并不能在集群同时使用4块GPU),感兴趣的同学可以查看http://bbs.keinsci.com/thread-13861-1-1.html以及https://developer.nvidia.com/blog/creating-faster-molecular-dynamics-simulations-with-gromacs-2020/的相关解释。但根据前辈的经验,ATOM 500000以上才值得使用两张GPU加速卡,原因在于Gromacs的并行效率不明显。感兴趣的同学也可以使用Amber的GPU并行加速,但对显卡的要求为3090或者tesla A100。这里提供了GPU=4的gromacs命令:
gmx mdrun -deffnm $file.pdb.md -ntmpi 4 -ntomp 7 -npme 1 -nb gpu -pme gpu -bonded gpu -pmefft gpu -v
Desmond_2022-4在HPC上的表现和批量化MD操作
拳打Amber脚踢Gromacs最终攀上Desmond高峰
一、说明:
笔者在长期受到Amber、Gromacs模拟系统构建的折磨后,痛定思痛决定下载带有GUI美观、完全自动化、一键分析的Desmond。上海科技大学Wang-Lin搭建了Schrödinger中文社区微信群(公众号:蛋白矿工),实现了使用者的互相交流和问答摘录整理,并就Schrödinger软件的使用编写了大量实用脚本。
基于命令行操作的Amber代码包非常适合生物分子体系的模拟,包括AmberTools、Amber两部分。前者免费,但提升生产力的多CPU并行和GPU加速功能需要通过Amber实现,但发展中国家(如中国)可以通过学术申请获得。
同样基于命令行操作的的Gromacs代码包由于上手快、中文教程详尽等优点收到初学者的一致好评,教程可以参考李继存老师博客(http://jerkwin.github.io/)、B站和计算化学公社(http://bbs.keinsci.com/forum.php)等。 初学者跟着教程做就可以(http://www.mdtutorials.com/),深入学习还是推荐大家去看官方的文档。
初识Desmond是使用世界上最贵的分子模拟软件之一的“学术版”Maestro时,它是由D.E.Shaw Research开发的MD代码,但在Schrödinger公司的帮助下实现了GUI图形界面操作。投资界科学家D.E.Shaw顺手还制造l一台用于分子动力学模拟的专业超级计算机Anton2,当然相对于宇宙最快的Gromacs还是差了点(懂得都懂)。学术和非营利机构用户更是可以在D.E.Shaw Research官方网站注册信息,免费获得拥有Maestro界面的Desmond软件。
Figure 1: Molecular Dynamics run using default parameters in Schrödinger Suite 2023-1.
二、Desmonds的安装:
在D.E.Shaw Research注册后下载相应软件包,上传到HPC集群个人home下任意位置,随后创建软件文件夹(作为后续安装路径)复制pwd输出的路径内容(笔者为/fsa/home/ljx_zhangzw/software):
mkdir software
pwd
解压安装,进入安装引导界面并按Enter继续进行安装:
tar -xvf Desmond_Maestro_2022.4.tar
cd DESRES_Academic_2022-4_Linux-x86_64
./INSTALL
输出以下界面后粘贴复制pwd输出的路径内容,Enter确认为安装路径:
输出以下界面后粘贴复制pwd输出的路径内容,Enter确认为临时文件路径:
输出以下界面后输入y,Enter确认上述两个路径并进行安装:
安装完成后进入安装路径,并写入环境变量:
cd /fsa/home/ljx_zhangzw/software
echo "export Desmond=${PWD}/" >> ~/.bashrc
同时由于Desmond对集群计算中提交任务队列的要求,需要在安装路径修改schrodinger.host以定义GPU信息,示例给出的是83a100ib队列中m001节点信息:
#localhost
name:localhost
temdir:/fsa/home/ljx_zhangzw/software
#HPC
name: HPC
host: m001
queue: LSF
qargs: -q 83a100ib -gpu num=1
tmpdir: /fsa/home/ljx_zhangzw/software
schrodinger: /fsa/home/ljx_zhangzw/software
gpgpu: 0, NVIDIA A100
gpgpu: 1, NVIDIA A100
gpgpu: 2, NVIDIA A100
gpgpu: 3, NVIDIA A100
gpgpu: 4, NVIDIA A100
gpgpu: 5, NVIDIA A100
gpgpu: 6, NVIDIA A100
gpgpu: 7, NVIDIA A100
需要注意的是:
1、修改tmpdir和schrodinger对应路径为自己的安装路径;
2、节点host、队列83a100ib以及显卡信息gpgpu: 0-7, NVIDIA A100自行调整,可以查看HPC的计算资源;
3、对于不同的任务调度系统,Schrödinger公司KNOWLEDGE BASE和蛋白矿工知乎号Q2进行了介绍;
4、截止2023年6月16日,HPC集群可供Desmond使用的计算卡(而非3090、4090等)包括:
队列 | GPU | Hostname | 加速卡机时收费 | ||
e5v3k40ib | 2*Intel Xeon E5-2680v3 2*NVIDIA Tesla K40 12GB 128GB RAM 56Gb FDR InfiniBand |
x001 gpgpu: 0, NVIDIA Tesla K40 gpgpu: 1, NVIDIA Tesla K40 |
校内及协同创新中心用户 1.2 元/卡/小时=0.1元/核/小时 |
1.2 | =0.1 |
e5v4p100ib | 2*Intel Xeon E5-2660v4 2*NVIDIA Tesla P100 PCIe 16GB 128GB RAM 56Gb FDR InfiniBand |
x002 gpgpu: 0, NVIDIA Tesla P100 gpgpu: 1, NVIDIA Tesla P100 |
校内及协同创新中心用户 1.68 元/卡/小时=0.12元/核/小时 |
||
62v100ib | 2*Intel Xeon Gold 6248 8*NVIDIA Tesla V100 SXM2 32GB 768GB RAM 100Gb EDR InfiniBand |
n002 gpgpu: 0, NVIDIA Tesla V100 |
校内及协同创新中心用户 3 元/卡/小时=0.6元/核/小时 |
||
72rtxib | AMD EPYC 7302 4*NVIDIA TITAN RTX 24GB 128GB RAM 100Gb HDR100 InfiniBand |
g005 or g006 or g007 gpgpu: 0, NVIDIA TITAN RTX |
校内及协同创新中心用户 1.8 元/卡/小时=0.45元/核/小时 |
||
83a100ib | 2*Intel Xeon Platinum 8358 8*NVIDIA Tesla A100 SXM4 40GB 512GB RAM 200Gb HDR InfiniBand |
m001 gpgpu: 0, NVIDIA A100 |
校内及协同创新中心用户 4.8 元/卡/小时=0.6元/核/小时 |
原因在于Desmond对于GPGPU (General-purpose computing on graphics processing units)的要求。并提出了一系列注意事项:
1、不支持Tesla K20、Tesla K40和Tesla K80卡。虽然我们仍然希望我们的GPGPU代码能够运行,但NVIDIA已经拒绝了CUDA 11.2工具包中对这些卡的支持。
2、我们仅支持最低CUDA版本11.2的这些卡的NVIDIA“推荐/认证”Linux驱动程序。
3、标准支持不包括消费级GPU卡,如GeForce GTX卡。
三、运行MD模拟
单次MD:
在个人笔记本(Linux)上依照上述步骤安装,或使用Windows浏览器以图形界面Web登陆HPC集群进行点击操作。
教程可参考2022薛定谔中文网络培训和知乎内容。需要注意的是:所有依赖Desmond的工作流在Windows或Mac平台上都不受支持,只能在Linux上运行。
批量MD:
1、plmd/DSMDrun: Desmond分子动力学模拟一键式运行脚本:
通过以上脚本实现当前路径下所有的mae文件(类似于PDB的结构文件,需通过Maestro转存)按照设置参数进行模拟,plmd -h中给出了示例和详细的输入命令介绍:
Usage: plmd [OPTION] <parameter>
An automatic Desmond MD pipline for protein-ligand complex MD simulation.
Example:
1) plmd -i "*.mae" -S INC -P "chain.name A" -L "res.ptype UNK" -H HPC_CPU -G HPC_GPU
2) plmd -i "*.mae" -S OUC -P "chain.name A" -L "chain.name B" -t 200 -H HPC_CPU -G HPC_gpu01
3) plmd -i "*.mae" -S "TIP4P:Cl:0.15-Na-Cl+0.02-Fe2-Cl+0.02-Mg2-Cl" -L "res.num 999" -G HPC_gpu03
4) plmd -i "*.cms" -P "chain.name A" -L "res.ptype ADP" -H HPC_CPU -G HPC_gpu04
Input parameter:
-i Use a file name (Multiple files are wrapped in "", and split by ' ') *.mae or *.cms ;
or regular expression to represent your input file, default is *.mae.
System Builder parameter:
-S System Build Mode: <INC>
INC: System in cell, salt buffer is 0.15M KCl, water is TIP3P. Add K to neutralize system.
OUC: System out of cell, salt buffer is 0.15M NaCl, water is TIP3P. Add Na to neutralize system.
Custom Instruct: Such as: "TIP4P:Cl:0.15-Na-Cl+0.02-Fe2-Cl+0.02-Mg2-Cl"
Interactive addition of salt. Add Cl to neutralize system.
for positive_ion: Na, Li, K, Rb, Cs, Fe2, Fe3, Mg2, Ca2, Zn2 are predefined.
for nagative_ion: F, Cl, Br, I are predefined.
for water: SPC, TIP3P, TIP4P, TIP5P, DMSO, METHANOL are predefined.
-b Define a boxshape for your systems. <cubic>
box types: dodecahedron_hexagon, cubic, orthorhombic, triclinic
-s Define a boxsize for your systems. <15.0>
for dodecahedron_hexagon and cubic, defulat is 15.0;
for orthorhombic or triclinic box, defulat is [15.0 15.0 15.0];
If you want use Orthorhombic or Triclinic box, your parameter should be like "15.0 15.0 15.0"
-R Redistribute the mass of heavy atoms to bonded hydrogen atoms to slow-down high frequency motions.
-F Define a force field to build your systems. <OPLS_2005>
OPLS_2005, S-OPLS, OPLS3e, OPLS3, OPLS2 are recommended to protein-ligand systems.
Simulation control parameter:
-m Enter the maximum simulation time for the Brownian motion simulation, in ps. <100>
-t Enter the Molecular dynamics simulation time for the product simulation, in ns. <100>
-T Specify the temperature to be used, in kelvin. <310>
-N Number of Repeat simulation with different random numbers. <1>
-P Define a ASL to protein, such as "protein".
-L Define a ASL to ligand, such as "res.ptype UNK".
-q Turn off protein-ligand analysis.
-u Turn off md simulation, only system build.
-C Set constraint to an ASL, such as "chain.name A AND backbone"
-f Set constraint force, default is 10.
-o Specify the approximate number of frames in the trajectory. <1000>
This value is coupled with the recording interval for the trajectory and the simulation time: the number of frames times the trajectory recording interval is the total simulation time.
If you adjust the number of frames, the recording interval will be modified.
Job control:
-G HOST of GPU queue, default is HPC_GPU.
-H HOST of CPU queue, default is HPC_CPU.
-D Your Desmond path. <$Desmond>
2、AutoMD: Desmond分子动力学模拟一键式运行脚本:
下载地址:Wang-Lin-boop/AutoMD: Easy to get started with molecular dynamics simulation. (github.com)
脚本介绍:AutoMD:从初始结构到MD轨迹,只要一行Linux命令? - 知乎 (zhihu.com)
由于Desmond学术版本提供的力场有限,plmd无法有效引入其他力场参数,因此在plmd的迭代版本AutoMD上,通过配置D.E.Shaw Research开发的Viparr和Msys代码在Desmond中引入如Amber,Charmm等力场来帮助模拟系统的构建。
在个人笔记本(Linux)上下载以下代码文件,并上传至集群个人home的software中:
wget https://github.com/DEShawResearch/viparr/releases/download/4.7.35/viparr-4.7.35-cp38-cp38-manylinux2014_x86_64.whl
wget https://github.com/DEShawResearch/msys/releases/download/1.7.337/msys-1.7.337-cp38-cp38-manylinux2014_x86_64.whl
git clone git://github.com/DEShawResearch/viparr-ffpublic.git
git clone https://github.com/Wang-Lin-boop/AutoMD
随后进入desmond工作目录,启动虚拟环境以帮助安装Viparr和Msys:
cd /fsa/home/ljx_zhangzw/software
./run schrodinger_virtualenv.py schrodinger.ve
source schrodinger.ve/bin/activate
pip install --upgrade pip
pip install msys-1.7.337-cp38-cp38-manylinux2014_x86_64.whl
pip install viparr-4.7.35-cp38-cp38-manylinux2014_x86_64.whl
echo "export viparr=${PWD}/schrodinger.ve/bin" >> ~/.bashrc
同时,将viparr-ffpublic.git解压并添加到环境变量:
echo "export VIPARR_FFPATH=${PWD}/viparr-ffpublic/ff" >> ~/.bashrc
最后,将AutoMD.git解压并进行安装,同时指定可自动添加补充力场:
cd AutoMD
echo "alias AutoMD=${PWD}/AutoMD" >> ~/.bashrc
chmod +x AutoMD
source ~/.bashrc
cp -r ff/* ${VIPARR_FFPATH}/
#AutoMD -h
在输入命令介绍中,给出了四个示例:胞质蛋白-配体复合物、血浆蛋白-蛋白复合物、DNA/RNA-蛋白质复合物、以及需要Meastro预准备的膜蛋白。在这些示例中:
通过-i命令输入了当前路径所有的复合物结构.mae文件(也可以是Maestro构建好的模拟系统.cms文件);
通过-S指定了模拟系统的溶液环境,包括INC(0.15M KCl、SPC水、K+中和)、OUC(0.15M NaCl、SPC水、Na+中和),以及自定义溶液环境如"SPC:Cl:0.15-K-Cl+0.02-Mg2-Cl";
通过-b和-s定义了模拟系统的Box形状和大小;
通过-F定义力场参数,由于学术版Desmond的要求不被允许使用S-OPLS力场,仅可使用OPLS_2005或其他力场;OPLS适用于蛋白-配体体系,Amber适用于蛋白-核酸,Charmm适用于膜蛋白体系,DES-Amber适用于PPI复合体体系,但是这些搭配并不是绝对的,我们当然也可以尝试在膜蛋白体系上使用Amber力场,在核酸体系上使用Charmm力场,具体的情况需要用户在自己的体系上进行尝试;
-F Charmm ff | aa.charmm.c36m, misc.charmm.all36, carb.charmm.c36, ethers.charmm.c35, ions.charmm36, lipid.charmm.c36 and na.charmm.c36 |
-F Amber ff | aa.amber.19SBmisc, aa.amber.ffncaa, lipid.amber.lipid17, ions.amber1lm_iod.all, ions.amber2ff99.tip3p, na.amber.bsc1 and na.amber.tan2018 |
-F DES-Amber | aa.DES-Amber_pe3.2, dna.DES-Amber_pe3.2, rna.DES-Amber_pe3.2 and other force fields in -F Amber |
Usage: AutoMD [OPTION] <parameter>
Example:
1) MD for cytoplasmic protein-ligand complex:
AutoMD -i "*.mae" -S INC -P "chain.name A" -L "res.ptype UNK" -F "S-OPLS"
2) MD for plasma protein-protein complex:
AutoMD -i "*.mae" -S OUC -F "DES-Amber"
3) MD for DNA/RNA-protein complex:
AutoMD -i "*.mae" -S "SPC:Cl:0.15-K-Cl+0.02-Mg2-Cl" -F Amber
4) MD for membrane protein, need to prior place membrane in Meastro.
AutoMD -i "*.mae" -S OUC -l "POPC" -r "Membrane" -F "Charmm"
Input parameter:
-i Use a file name (Multiple files are wrapped in "", and split by ' ') *.mae or *.cms ;
or regular expression to represent your input file, default is *.mae.
System Builder parameter:
-S System Build Mode: <INC>
INC: System in cell, salt buffer is 0.15M KCl, water is SPC. Add K to neutralize system.
OUC: System out of cell, salt buffer is 0.15M NaCl, water is SPC. Add Na to neutralize system.
Custom Instruct: Such as: "TIP4P:Cl:0.15-Na-Cl+0.02-Fe2-Cl+0.02-Mg2-Cl"
Interactive addition of salt. Add Cl to neutralize system.
for positive_ion: Na, Li, K, Rb, Cs, Fe2, Fe3, Mg2, Ca2, Zn2 are predefined.
for nagative_ion: F, Cl, Br, I are predefined.
for water: SPC, TIP3P, TIP4P, TIP5P, DMSO, METHANOL are predefined.
-l Lipid type for membrane box. Use this option will build membrane box. <None>
Lipid types: POPC, POPE, DPPC, DMPC.
-b Define a boxshape for your systems. <cubic>
box types: dodecahedron_hexagon, cubic, orthorhombic, triclinic
-s Define a boxsize for your systems. <15.0>
for dodecahedron_hexagon and cubic, defulat is 15.0;
for orthorhombic or triclinic box, defulat is [15.0 15.0 15.0];
If you want use Orthorhombic or Triclinic box, your parameter should be like "15.0 15.0 15.0"
-R Redistribute the mass of heavy atoms to bonded hydrogen atoms to slow-down high frequency motions.
-F Define a force field to build your systems. <OPLS_2005>
OPLS_2005, S-OPLS are recommended to receptor-ligand systems.
Amber, Charmm, DES-Amber are recommended to other systems. Use -O to show more details.
Use the "Custom" to load parameters from input .cms file.
Simulation control parameter:
-m Enter the maximum simulation time for the Brownian motion simulation, in ps. <100>
-r The relaxation protocol before MD, "Membrane" or "Solute". <Solute>
-e The ensemble class in MD stage, "NPT", "NVT", "NPgT". <NPT>
-t Enter the Molecular dynamics simulation time for the product simulation, in ns. <100>
-T Specify the temperature to be used, in kelvin. <310>
-N Number of Repeat simulation with different random numbers. <1>
-P Define a ASL to receptor, such as "protein".
-L Define a ASL to ligand and run interaction analysis, such as "res.ptype UNK".
-u Turn off md simulation, only system build.
-C Set constraint to an ASL, such as "chain.name A AND backbone"
-f Set constraint force, default is 10.
-o Specify the approximate number of frames in the trajectory. <1000>
This value is coupled with the recording interval for the trajectory and the simulation time:
the number of frames times the trajectory recording interval is the total simulation time.
If you adjust the number of frames, the recording interval will be modified.
Job control:
-G HOST of GPU queue, default is GPU.
-H HOST of CPU queue, default is CPU.
-D Your Desmond path. </fsa/home/ljx_zhangzw/>
-V Your viparr path. </fsa/home/ljx_zhangzw/schrodinger.ve/bin>
-v Your viparr force fields path. </fsa/home/ljx_zhangzw/viparr-ffpublic/ff>
示例任务提交脚本及命令,需修改相应计算节点和软件路径信息:
#BSUB -L /bin/bash
#BSUB -q 83a100ib
#BSUB -m m001
module load cuda/12.0.0
export Desmond=/fsa/home/ljx_zhangzw/
export viparr=/fsa/home/ljx_zhangzw/schrodinger.ve/bin
export VIPARR_FFPATH=/fsa/home/ljx_zhangzw/viparr-ffpublic/ff
alias AutoMD=/fsa/home/ljx_zhangzw/AutoMD/AutoMD
echo $PATH
echo $LD_LIBRARY_PATH
nvidia-smi
env|grep CUDA
AutoMD -i "*.mae" -S OUC -P "chain.name A" -L "res.ptype UNK" -F "OPLS_2005" -T 298 -s 10 -H m001 -G m001
在模拟参数控制命令中,通过-P和-L分别定义了mae文件中的受体和配体,-m默认
-T定义体系温度为298 K,默认进行100 ns和1次重复模拟次数,通过-H和-G指定了host文件中的相应计算队列。
四、性能表现:
笔者通过上述的示例任务提交脚本及命令调用Desmond和AutoMD进行了包含12个阶段的工作流:
Summary of user stages:
stage 1 - task
stage 2 - build_geometry
stage 3 - assign_forcefield
stage 4 - simulate, Brownian Dynamics NVT, T = 10 K, small timesteps, and restraints on solute_heavy_atom, 100 ps
stage 5 - simulate, Brownian Dynamics NVT, T = 10 K, small timesteps, and restraints on user defined sets, 100 ps
stage 6 - simulate, Langevin small steps NVT, T = 10 K, and restraints on solute heavy atoms, 12 ps
stage 7 - simulate, Langevin NPT, T = 10 K, and restraints on solute heavy atoms, 12 ps
stage 8 - simulate, Langevin NPT, T = 10 K, and restraints on solute heavy atoms, 12 ps
stage 9 - simulate, Langevin NPT and restraints on solute heavy atoms, 12ps
stage 10 - simulate, Langevin NPT and no restraints, 24ps
stage 11 - simulate, Final MD and analysis, 100000.0 ps
stage 12 - pl_analysis
(12 stages in total)
分别在83a100ib和72rtxib进行了相应尝试:
System Atoms:21173
System Residues:6363
System MOls:6202
Protein Atoms:2584
Protein Residues:162
Ligand Atoms:73
Ligand Residues:1
MIN time: 100 ps
MD time: 100000.0 ps
temperature: 298 K
Repeat: 1
Rondom numbers list: 2007
#Desmond
Multisim summary :
Total duration: 3h 38' 7"
Total GPU time: 3h 24' 42" (used by 8 subjob(s))
#HPC-83a100ib
Resource usage summary:
CPU time : 12745.00 sec.
Max Memory : 965 MB
Average Memory : 893.78 MB
Total Requested Memory : -
Delta Memory : -
Max Swap : -
Max Processes : 15
Max Threads : 45
Run time : 13262 sec.
Turnaround time : 13260 sec.
System Atoms:63284
System Residues:20178
System MOls:19955
Protein Atoms:2585
Protein Residues:224
Ligand Atoms:72
Ligand Residues:1
MIN time: 100 ps
MD time: 100000.0 ps
temperature: 298 K
Repeat: 1
Rondom numbers list: 2007
#Desmond
Multisim summary :
Total duration: 7h 51' 5"
Total GPU time: 7h 27' 48" (used by 8 subjob(s))
#HPC-72rtxib
Resource usage summary:
CPU time : 31316.00 sec.
Max Memory : 1634 MB
Average Memory : 400.16 MB
Total Requested Memory : -
Delta Memory : -
Max Swap : -
Max Processes : 15
Max Threads : 40
Run time : 85601 sec.
Turnaround time : 85602 sec.
笔者在测试时恰逢72rtxib g007中有同学在运行gmx,desmond的GPU利用率得到了进一步的凸显,但目前存在一点问题,即desmond在计算完毕后无法及时退出对GPU的占用,
***我将在错误解决后更新,或者如果你知道如何排除这个出错误,请在QQ群探讨***
五、模拟分析:
模拟完成后,将在工作路径创建一个名为结构文件名_随机种子号-md的文件夹,其中包含了:
多个阶段的工作流文件 | AutoMD.msj |
多个阶段 launching日志文件 | md_multisim.log |
多个阶段 launching阶段文件 | md_1-out.tgz ... md_12-out.tgz |
模拟系统结构文件 | -in.cms and -out.cms |
模拟执行参数文件 | md.cpt.cfg and md-out.cfg |
模拟轨迹文件夹 | md_trj |
模拟执行日志文件 | md.log |
检查点文件 | md.cpt |
能量文件 | md.ene |
包含RMSF、RMSF、SSE等常规分析的结果文件 | md.eaf |
此外,还包含了部分的分析脚本文件,更多用于MD轨迹分析的脚本文件还可以通过访问官方脚本库获得Scripts | Schrödinger (schrodinger.com);
文件夹内分析脚本 | |
Resume previous MD | bash resume.sh |
Extend MD | bash extend.sh # The total time will be extend to 2-fold of initial time |
Cluster trajectory | bash cluster.sh "<rmsd selection>" "<fit selection>" "<number>" |
Analysis Occupancy | bash occupancy.sh "<selection to analysis>" "<fit selection>" |
Analysis ppi contact | bash ppi.sh "<Component A>" "<Component B>" |
官网部分MD脚本 | |
Calculate the radius of gyration | calc_radgyr.py |
Thermal MMGBSA |
thermal_mmgbsa.py |
Calculate Trajectory B-factors |
trajectory_bfactors.py |
Analyze a Desmond Simulation |
analyze_simulation.py |
Merge Trajectories |
trj_merge.py |
上述分析脚本的使用需预先设置环境变量,随后在terminal键入$SCHRODINGER/run *.py -h查看相应脚本的帮助文件即可,如在个人计算机 (LINUX)中进行轨迹80-100ns的mmgbsa计算分析:
vim ~/.bashrc
#添加schrodinger所在目录的环境变量:
export SCHRODINGER=/opt/schrodinger2018-1
source ~/.bashrc
#执行80-100 ns的mmgbsa计算,间隔4帧
$SCHRODINGER/run thermal_mmgbsa.py *-2007-md-out.cms -j casein80_100 -start_frame 800 -end_frame 1000 -HOST localhost:8 -NJOBS 4 -step_size 4
结合thermal_mmgbsa.py的计算结果,breakdown_MMGBSA_by_residue.py脚本进一步实现了mmgbsa结合能的残基分解:
$SCHRODINGER/run breakdown_MMGBSA_by_residue.py *-prime-out.maegz *-breakdown.csv -average
结合thermal_mmgbsa.py产生所有帧的结构文件:MD_0_100ns-complexes.maegz,使用calc_radgyr.py脚本计算复合物的回旋半径:
$SCHRODINGER/run calc_radgyr.py -h
#usage: calc_radgyr.py [-v] [-h] [-asl ASL] infile
Calculates the radius of gyration of structures in the input file.
Calculate the radius of gyration of each structure in the input file,
which can be Maestro, SD, PDB, or Mol2 format.
Copyright Schrodinger, LLC. All rights reserved.
positional arguments:
infile Input file.
optional arguments:
-v, -version Show the program's version and exit.
-h, -help Show this help message and exit.
-asl ASL ASL expression for atoms to be included in the calculation. By
default, the radius of gyration includes all atoms.
#示例
$SCHRODINGER/run thermal_mmgbsa.py *-2007-md-out.cms -j * -start_frame 0 -end_frame 1001 -HOST localhost:8 -NJOBS 4 -step_size 1
$SCHRODINGER/run calc_radgyr.py *-2007-md-out.cms
结合binding_sasa.py脚本实现复合物的SASA分析:
$SCHRODINGER/run binding_sasa.py -h
#usage: binding_sasa.py [-v] [-h] [-r RESIDUES] [-d <angstrom distance> | -f] [-s] [-n]
[-o OUTPUT_FILE] [-l ASL] [-j JOBNAME]
[--trajectory <path to trj>] [--ligand_asl <ligand asl>]
[--framestep <frames in each step>]
[--water_asl <asl for waters to keep>]
input_file
Calculates SASA of ligand and receptor before and after receptor-ligand binding.
Computes the change in solvent accessible surface area (SASA) upon binding for
a ligand and receptor. The total SASA for the unbound system and the
difference upon binding is computed and decomposed into functional subsets,
such as per-residue terms, charged, polar, and hydrophobic
The script will operate on PV files, Desmond CMS files or a receptor-ligand
complex Maestro file.
Copyright Schrodinger, LLC. All rights reserved.
positional arguments:
input_file Input PV file, Desmond CMS file, or a receptor-ligand complex
Maestro file.
optional arguments:
-v, -version Show the program's version and exit.
-h, -help Show this help message and exit.
-r RESIDUES, --residue RESIDUES
Add specific residue to SASA report. Can be done multiple times
to add multiple residues. (format: ChainID,ResNum)
-d <angstrom distance>, --distance <angstrom distance>
Distance cutoff in angstroms. Receptor atoms further than
cutoff distance from ligand will not be included in protein-
ligand complex SASA calculation. Default is 5 angstroms.
-f, --full Calculates SASA for entire ligand and protein.
-s, --structure For each ligand and receptor, append additional output
reporting the surface area of backbone atoms, side chain atoms,
and atoms of each residue type.
-n, --secondary For each ligand and receptor, append additional output
reporting surface area for helix , strand and loop receptor
atoms.
-o OUTPUT_FILE, --output OUTPUT_FILE
Where to write the output file. If not specified, for PV input,
output file will be called <jobname>_out_pv.mae; for complex
files, it will be named <jobname>-out.mae. For --trajectory
jobs, only CSV output file is written
-l ASL, --selection ASL
ASL pattern to define specific residues to calculate SASA for.
-j JOBNAME, --jobname JOBNAME
Sets the jobname - base name for output files. If not
specified, it will be derived from the input file name.
--trajectory <path to trj>
Compute binding SASA over a trajectory. Use of this option
means the input file should be a Desmond .cms file. The path to
the Desmond trj directory must be supplied as the argument to
this flag. Output will be to a .csv file only. The ligand
structure will be determined automatically unless the
--ligand_asl flag is used.
--ligand_asl <ligand asl>
The ASL used to determine the ligand structure. By default,
this is determined automatically. Only valid for --trajectory
jobs.
--framestep <frames in each step>
--trajectory jobs calculate SASA every X frames. By default,
X=10. Use this flag to change the value of X.
--water_asl <asl for waters to keep>
By default, --trajectory jobs remove all waters before
calculating SASA. Use this to specify waters to keep
(--water_asl=all keeps all waters, --water_asl="within 5
backbone" keeps all waters with 5 Angstroms of the protein
backbone).
#示例
$SCHRODINGER/run binding_sasa.py *-2007-md-out.cms -f -j sasa_complex --trajectory *-2007-md_trj --framestep 1
还可以通过下载结构文件名_随机种子号-md的文件夹至个人笔记本,在TASKS中的Desmond找到Simulation Interaction Digram分析面板,并导入md.eaf文件进行常规分析。
借助AutoMD中的AutoTRJ脚本,可以使用常见的官方脚本来直接处理AutoMD的模拟结果:
(base) parallels@parallels:$ AutoTRJ -h
The trajectory analysis script for AutoMD. Refer to: https://github.com/Wang-Lin-boop/AutoMD
Usage: AutoTRJ [OPTION] <parameter>
Required Options:
-i <string> The path to trajectory or regular expression for trajectories(will be merged). such as "*-md".
-J <string> Specify a basic jobname for this task, the basename of -i is recommended.
-M <string> The running mode for this analysis task. the <..> means some options.
APCluster_<n>: affinity propagation clustering, the <n> is the number of most populated clusters.
CHCluster_<n>_<cutoff>: centroid hierarchical clustering, the <cutoff> is the RMSD thethreshold.
LigandAPCluster_<n>: APCluster for ligand, require "-L" option.
LigandCHCluster_<n>_<cutoff>: CHCluster for ligand, require "-L" option.
Occupancy: calculates the occupancy of component 2 in trajectory, require "-L" option.
PPIContact: identifies interactions occurring between the components, require "-L" option.
FEL: analyze the free energy landscape (FEL) for CA atoms, and cluster the trajectories by FEL.
CCM: plot the cross-correlation matrix of the trajectory.
SiteMap_<n>: running SiteMap on all frames of the trajectory, the <n> is the number of sites.
PocketMonitor: monitor the ligand binding pocket on the trajectory, require "-L" option.
MMGBSA: running MM-GBSA on the trajectory, require "-L" option.
BFactor: calculate atom B-factors from trajectory (receptor and ligand).
RMSF: calculate RMSF from trajectory (receptor).
ConvertXTC: convert the trajectory to XTC format.
You can parallel the analysis task by "+", such as, "APCluster_5+PPIContact+MMGBSA".
Analysis Range Options:
-R <ASL> The ASL of component 1 to be centered. <protein>
-L <ASL> The ASL of component 2 to be analyzed. <ligand>
Trajectories Processing Options:
-T <string> Slice trajectories when analyzed, if more than one trajectories given by -i, this slice will applied to all of them. The default is None. Such as "100:1000:1". <START:END:STEP>
-t <string> Slice trajectories when calculating MM/GBSA, such as "100:1000:1". <START:END:STEP>
-c During the clustering process, the frames of a trajectory are preserved for each cluster, while representative members are stored in the CMS files.
-A <file> Align the trajectory to a reference structure, given in ".mae" format.
-a Align the trajectory to the frist frame.
-C <ASL> Set a ASL to clean the subsystem from trajectory, such as -C "not solvent".
-P Parch waters far away from the component 2.
-w <int> Number of retained water molecules for parch (-P) stage. <200>
-m Treat the explicit membrane to implicit membrane during MM-GBSA calculation.
Job Control Options:
-H <string> HOST of CPU queue, default is CPU.与Desmond配置schrondinger.host相同
-N <int> CPU number for per analysis task. <30>
-G <path> Path to the bin of Gromacs. <此处填写Gromacs的路径>
-D <path> Path to the installation directory of Desmond. <此处填写Desmond或Schrodinger的路径>
#示例
AutoTRJ -i *-md_trj -J test_xpm -M FEL -G /usr/local/gromacs/bin/
#此处输入了md的轨迹文件,并指定分析人物名称为test_xpm,分析任务为FEL,额外指定了gmx的环境变量(由于在我自己的虚拟机上)
六、致谢:
需要强调的是,AutoMD是一个建立在Desmond软件包基础上的脚本,模拟的质量由Desmond本身决定,脚本没有对模拟程序本身做任何的改动,且所有的学术贡献归功于D. E. Shaw Research (无商业利益相关)。
AutoMD作为一个使用脚本,仅仅是为了解决了一些实际MD应用中的问题,方便初学者通过这个脚本快速上手MD,但请勿认为AutoMD是一种MD模拟的程序,其内核仍然是Desmond程序。
本文所有内容均来自上海科技大学Wang-Lin,笔者整理使用经验而已。
请大家多多引用作者关于 AutoMD脚本的文章:A new variant of the colistin resistance gene MCR-1 with co-resistance to β-lactam antibiotics reveals a potential novel antimicrobial peptide. Liang L, Zhong LL, Wang L, Zhou D, Li Y, et al. (2023) A new variant of the colistin resistance gene MCR-1 with co-resistance to β-lactam antibiotics reveals a potential novel antimicrobial peptide. PLOS Biology 21(12): e3002433. https://doi.org/10.1371/journal.pbio.3002433
集群运行Numpy程序的测试实践与注意事项
你正确安装Numpy了吗?
本测试主要使用的是某Numpy为底层的计算包,任务的核心在于求解矩阵对角化,使用的是LAPACK。计算的大头在于500次尺寸约为60000×60000的稀疏矩阵对角化计算。
从不同渠道安装的Numpy,其所使用的LAPACK优化可能并不一样,在不同的硬件上性能表现也大不相同。常见的优化有MKL、OpenBLAS和ATLAS,其中通常说来Intel的CPU上跑MKL会更快一些。
一般来说,不考虑指定渠道,默认情况下
conda install numpy
从Anaconda下载安装会根据你的CPU自动选择,若是Intel则用MKL,若是AMD则用OpenBLAS。当然,你可以切换到conda-forge
之类的去指定版本。
如果使用pip
安装,
pip install numpy
则一律是OpenBLAS。
MKL的插曲
测试最初采用MKL版Numpy计算,通过环境变量MKL_NUM_THREADS
这个环境变量设定不同的核数控制多线程计算(这是使用Numpy等存在隐性并行的库都需要注意的,参考常见问题-作业运行时实际占用CPU核数过多),在同一队列提交多个独占节点的计算任务。
MKL大多数情况下都比OpenBLAS快,即便是在AMD平台上也有传说中的MKL_DEBUG_CPU_TYPE=5
可以强开对MKL的支持。
但是,本次测试却出现了非常有趣的现象:
通过eScience中心的监控系统查看节点计算情况,发现大多数进程都陆陆续续计算完毕,平均在40分钟左右;而少数任务,例如最初申请了16核,突然在40分钟前后发现线程数急剧减少至单核或少量核,出现“一核有难,多核围观”的经典场面,内存也被释放掉了。但是主要的计算阶段仍然没有输出计算结果说明并不是核心计算完成陷入单线程无法结束的问题。
最终计算完成的时间统计也剧烈起伏。经过网上的一通搜索,并未发现很多案例。作为猜测,将其它的LAPACK优化库限制核数加入,都没有改善。更换AMD队列,仍然是同样的问题。也就是说,这个情况的出现与是Intel还是AMD的CPU没有关系。
然而最终,尝试性更换至OpenBLAS版本Numpy,发现问题神奇地解决了。
多核情况测试
由于MKL版本的神秘BUG,后来的测试通过OpenBLAS版本进行。多核计算单个任务的总耗时结果如下:
可以发现,OpenBLAS版Numpy的计算在7702ib队列和6140ib在48核以下的趋势类似,但高于48核不太一样。7702ib队列上核数越多相对而言加速的趋势一致;而6140ib队列上,核数越多反而可能会有加速效果的下降。但由于7702ib的核数更多,因此并不能排除核数大于72时也会有类似的情况。
从加速比(相对串行计算的时间比值)来看,对于本测试任务,OpenBLAS Numpy的加速比极限约为4~5倍。
并行效率(相对串行计算的时间比值再除以核数)则随核数增多衰减极快,16核往上效率极低,全靠数量取胜。
投放任务的策略
对单个任务来说,我们只关心这一次计算的时间,因此时间肯定是越短越好。但是往往时间和核数(准确来说是申请CPU乘以时间)影响计算费用,因此计算核时的指标额外决定了是否划算。根据收费办法我们可以画出实际的花费。显然有些队列上有时候申请过多的核并不一定是划算的,这也是做基准测试的意义所在。
更多时候,我们可能面对的是多个计算量相当的任务,只是计算参数不同。这种情况下,我们可以根据下列公式计算:
其中,N_task 指的是总任务数,N_max指的是考虑申请的总核数,N_cores指的是单个任务申请的核数,T_p是单个任务并行计算的耗时,与单个任务申请的核数有关系。N_cores与T_p相乘即为单个任务的计算核时。
可以看到,总的核时(T_total乘以N_max)也和上文的单个任务类似。
单从性价比而言,不同的核数下,我们对单个任务每加速一倍花了多少钱,也可以算出:
对于Numpy(OpenBLAS)计算本任务而言,性价比最高的莫过于4核。因此综合考虑时间、性价比,4核是个不错的选择。
总结
本次尝试使用集群对Numpy计算进行加速。在尝试过程中,发现需要注意几个问题:
- Numpy(并行版本)是隐性并行,所以也需要有特定的环境变量来控制与申请核数匹配,不然会被作业监控杀掉。
- 基于MKL版Numpy或者调用Numpy的计算包计算时,出现了突然任务变慢的情况,而且会长时间不结束。这与LAPACK优化库(MKL或OpenBLAS或者其他)同当前计算包的兼容性可能有关系,如果发现类似情况,可以尝试排除此类软件依赖的数值计算库是否存在这样的不同优化(甚至编译方式)的区别。
- Numpy的并行计算存在一个加速效果的上限,对本次测试的任务来说约为4~5倍。从时间、性价比的角度来说,并非核数越多越划算,例如本任务中,较为经济而且时间可接受的一个合理范围为4~16核,其中4核最具性价比;对单个任务,其花费可能尚可,但是日积月累也许是笔不小的数目。
校内用户超算集群申请与基本使用简明指南(2024年以前,已过时)
本文将简述集群使用的基本过程,但是详细的操作和使用仍然需要仔细阅读超级计算使用说明。
关于scc.nju.edu.cn和access.nju.edu.cn的信息已经过时,请阅读最新版:校内用户超算集群申请与基本使用简明指南(2024年后新版)
一、账号获取
- 新用户在
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命令行使用
命令行五花八门,说到底,都是命令 参数
(注意中间的空格)这种格式。
基本命令行参考:
命令 | 用途 |
---|---|
ls <路径> |
列出指定目录<路径>下的文件和文件夹 |
cd <路径> |
切换到指定目录<路径> |
mkdir <文件夹> |
在当前目录创建一个叫<文件夹>的文件夹 |
vim <文件> |
使用Vim编辑文本文件<文件>(脚本之类的),如果<文件>不存在,就创建它。Vim是一款非常强大的命令行编辑器,学习见:Linux vi/vim | 菜鸟教程、GitHub - wsdjeg/Learn-Vim_zh_cn |
rz 和sz <文件> |
少量小文件传输和下载 |
tar |
打包压缩与解压,可以用来打包或解压多个文件 |
cp |
复制 |
mv |
移动 |
rm |
删除 |
上表只是告诉了你一个目录,具体各个命令如何使用你可以根据上述表来搜索学习。
在集群上为了提交作业,还需要知道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
CPU核数:6
(单GPU分配的默认值)
主机: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云盘基本一致。
收费办法
e-Science 中心提供增值的计算和存储服务,为合理资源使用收取一定费用,以下皆为校内价格,校外均按照两倍计算。
计算存储资源服务
集群计算资源和存储资源须要付费使用,收费标准如下:
CPU机时
按照用户作业占用的CPU核*时收费,独占作业按照占用节点的所有CPU核收费,排队时间不收费。
队列 | 元/核/小时 |
---|---|
e52643tgb e52692v2ib e52680v3ib e5v3ib e52630v4 e52640v4 e52650v4 e52680v4ib e52682v4opa e74820v4 5218q 7702ib 5220r 7k83 9654 9754 cpu1 | 0.05 |
6140ib 9242opa 6226rib 6230r 5318h 6330ib | 0.06 |
e7v4ib 6338 6458q | 0.10 |
加速卡机时
按照用户作业占用的加速卡*时收费,CPU核按照占用节点加速卡的比例分配免费使用。为便于计算,加速卡费用平摊到CPU核统一计费,独占作业按照占用节点的所有GPU收费,排队时间不计算费用。
队列 | 元/卡/小时 | |
---|---|---|
e5v3k40ib | 1.2 | |
e5v4p100ib | 1.68 | |
6148v100ib | 3.6 | |
62v100ib | 3 | |
722080tiib | 1.2 | |
72rtxib | 1.8 | |
83a100ib | 4.8 | |
813080 | 1.2 | |
723080 | 1.2 | |
723090ib | 1.8 | |
814080 | 1.2 | |
944090d | 1.8 | |
734090ib 75434090ib 734090d | 1.8 |
计算机时折扣
校内用户按照用户组计费年的计算机时费总额打折。
计费机时 | 折扣 |
---|---|
大于5万 | 9折 |
大于10万 | 8折 |
大于50万 | 7折 |
并行存储
按照用户使用的空间收费,每个组免费提供1TiB空间。
路径 | 元/GiB/天 | 元/TiB/年 |
---|---|---|
/fsa | 0.00161 | ≈600 |
归档存储
按照用户使用的空间收费。
路径 | 元/GiB/天 | 元/TiB/年 |
---|---|---|
/archive | 0.00080 | ≈300 |
ftp://stor.nju.edu.cn | 0.00080 | ≈300 |
云盘存储
按照用户申请的容量配额收费。
网址 | 元/GB/天 | 元/TB/年 |
---|---|---|
box.nju.edu.cn | 0.00329 | ≈1200 |
设备托管服务
用户自行负责软硬件维护,将设备放置在本中心机房须要付费,收费标准如下:
基本收费
根据用户托管设备占用的空间和功耗按较高者收费,以下为典型设备的参考价格。
类型 | 元/月 |
---|---|
CPU计算节点(≤300W) | 150/台 |
CPU计算节点(≤600W) | 300/台 |
CPU计算节点(≤1200W) | 600/台 |
GPGPU等加速卡(≤150W) | 75/块 |
GPGPU等加速卡(≤300W) | 150/块 |
GPGPU等加速卡(≤450W) | 225/块 |
GPGPU等加速卡(≤600W) | 300/块 |
设备占用空间(上述类型配置和占用空间按较高者收取) | 250/U |
超限系数
当机房内完整的空机柜不足20%时,以课题组为单位根据占用机柜数量按系数倍数收费;机房内空机柜大于20%时,本系数均按1计算。
机柜数量 | 系数 |
---|---|
1 | 1 |
2 | 1.25 |
3 | 1.75 |
4 | 2.5 |
时间系数
从设备安装开始,按照使用年限系数倍数收费。
年限 | 系数 |
---|---|
≤5年 | 1 |
6年 | 1.3 |
7年 | 1.6 |
≥8年 | 1.9 |
共享
托管用户根据不同共享类型,按系数倍数收费。共享资源给其他用户使用,可收取计算资源机时费用于冲抵托管费用,具体收费标准参考本中心计算资源机时费,可由本中心和托管用户协商决定。
类型 | 系数 |
---|---|
独享使用 | 1 |
统一管理共享使用 | 0.8 |
云平台
虚拟机计算存储资源须要付费使用,收费标准如下:
CPU
按照虚拟机配置的CPU数量收费
类型 | 元/核/天 |
---|---|
Intel Xeon Platinum 8358 逻辑核 | 1.2 |
内存
按照虚拟机配置的内存容量收费
类型 | 元/GB/天 |
---|---|
DDR4 3200 ECC RDIMM | 0.2 |
存储
按照虚拟机配置的硬盘容量收费
类型 | 元/GiB/天 |
---|---|
Huawei OceanStor Dorado 5500 V6 All-Flash Storage (NVMe over RoCE) | 0.02 |
归档存储
虚拟机通过NFS访问归档存储,按照前述归档存储(/archive)收费
备份
每天进行备份并按照统一的天/周/月/年策略保留,按照备份存储使用的空间收费
类型 | 元/GiB/天 |
---|---|
虚拟机镜像 | 0.002 |
附注
- 特殊情况,由双方协商决定。
- 本办法由人工微结构科学与技术协同创新中心 e-Science 中心负责解释执行。
人工微结构科学与技术协同创新中心 e-Science 中心