超级计算 hpc.nju.edu.cn 指引 欢迎您使用 e-Science中心 的 超算服务 高性能计算集群提供了安全多样的 远程登录 方法,使用 SFTP、ZMODEM、云盘等多种方式可以进行数据传输。集群已 集成云盘 便捷同步和备份数据,如数据量巨大可采用移动存储直接进行数据拷贝,主要文件数据请自行备份!注意查看组和用户的的存储配额情况,满了就无法写入数据了。 禁止在登录节点或计算节点直接运行计算程序,用户必须通过作业调度系统 提交作业 并 控制作业 ,通过 容器化 技术可以在完全自主和隔离的环境中运行程序。 海量作业 需要进行优化以便管理, 查看信息 可见作业调度和集群等整体情况。 集群有丰富的种类各异 计算资源 ,有详细的描述和配置信息,用户可以根据自己的需求进行选择。 存储资源 中的高性能的全闪Burst Buffer为所有文件系统提供了高速缓存,可大幅提高IO密集型作业的性能。 集群在 /fs00/software/ 中安装有大量的 软件资源 ,如 GNU 、 Intel 、 NVIDIA 、 AMD 的编译器和数学库等,常用的 计算资源 和 支撑软件 。 集群的所有运行监控 运行监控 数据全部公开访问,所有维护操作都记录在 维护记录 中,其中对用户有显著影响和重大维护均在 维护日志 中列出。 请用户仔细阅读使用手册,如有疑问可以通过QQ群、邮件和电话咨询。 姚舸 地址:江苏省南京市鼓楼区金银街15号唐仲英楼 电话:025-83621186 邮箱: yaoge@nju.edu.cn 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,点击左上角的 新建 来新建会话 设置自定义的名称之后,将 主机 设置为 enrty.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 - NetSarang Website 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 的文件夹( m a k e dir ectory)管理这一次的计算任务 第二行:切换进刚刚创建的那个目录( c hange d irectory) 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 Client 服务器:njucm.yaoge123.com 端口:4433 用户名、密码:超算的用户名密码,注意密码不含动态口令 登录后仅能通过此VPN访问eScience中心的服务 数据传输 SFTP:使用SFTP客户端浏览并传输文件,适合大文件和整个目录的上下传。 ZMODEM:在登录节点上可用rz上传文件、sz下载文件,适合单个小文件的上下传。 云盘:通过云盘自动同步和备份文件。 数据拷贝:直接使用移动硬盘拷贝大量数据文件。 数据拷贝 为方便大数据传输,中心提供数据拷贝服务,用户需提供支持 USB 3.0 接口的大容量移动硬盘存储设备,存储设备应为空且文件系统格式化为 ext4/XFS/exFAT ,并告知需要拷贝数据的目录(绝对路径),保证目录的容量小于移动存储的空余空间。 推荐使用文件系统为 ext4/XFS ,Linux可以直接读写,Windows的WSL(Windows Subsystem for Linux)也可以直接读写。 exFAT 可以方便的同时被 Windows 和 Linux 读写,但是某些情况下无法拷贝文件,且对于机械硬盘不适于长期使用。   高性能计算集群和 云盘 已紧密集成。 存储配额 并行文件系统fsa等有存储空间配额,存储空间收费按照配额收费。 可以使用命令 myquota 查看配额,用户和组配额同时生效。用户或组占用存储空间超过配额但是<10%的,可以在7天宽限期内降低至配额以内,超期将无法写入任何数据;超过配额>10%,立刻无法写入任何数据,需要降低至配额以内才能写入数据。 登录方式access(已废弃) 首次登录 因为需要进行两步认证绑定,故首次登录必须使用Web浏览器 在计算机上使用Web浏览器访问 https://access.nju.edu.cn 账号、密码:输入用户名、密码登录 手机安装支持 RFC 6238 的 TOTP 客户端APP,扫描二维码(也可手动输入),然后点击“完成绑定” 两步认证密码:输入手机 APP 中的动态口令登录 下载安装或升级客户端插件 Web登录(图形和命令行界面) 使用Web浏览器访问 https://access.nju.edu.cn 账号、密码:输入用户名、密码登录 两步认证密码:输入手机 APP 中的动态口令登录 下载安装或升级客户端插件,需要 Java 运行环境 Web 支持图形界面 xfce4/vnc、命令行界面 ssh ,Web 不支持 SFTP ! 图形界面修改分辨率:Applications - Settings - Display - Resolution SSH登录(命令行界面) 中国教育网地址:access.nju.edu.cn,端口:22(默认) 中国移动地址:njucm.yaoge123.com,端口:5022 Username: 输入用户名 Password: 输入密码+空格+动态口令(如密码是 YaoGe123 ,手机APP动态口令是 123456 ,则输入 YaoGe123 123456 ) SSH 不支持图形(X11-Forwarding) SSH 客户端: Putty 、 Xshell 、 Bitvise SSH Client 、 iTerm2 、 Termius …… SFTP登录(文件传输) 中国教育网地址:access.nju.edu.cn,端口:22(默认) 中国移动地址:njucm.yaoge123.com,端口:5022 Username: 输入用户名 Password: 输入密码+空格+动态口令(如密码是 YaoGe123 ,手机APP动态口令是 123456 ,则输入 YaoGe123 123456 ) SFTP 路径有特殊前缀( /hpc_login1 sftp (10.1.0.101)/self )。如家目录为 /fsa/home/yaoge123 ,则SFTP路径为 /hpc_login1 sftp (10.1.0.101)/self/fsa/home/yaoge123 SFTP 客户端: Xftp (Windows 推荐)、 WinSCP 、 Bitvise SSH Client 、 Termius (macOS 推荐)、 FileZilla 、 LFTP Xftp 如长时间连接后传输文件出错,可在“会话 (Sessions)”“属性 (Properties)”的“选项 (Options)”中勾选“仅使用主连接 (Use main connection only)” WinSCP 不可使用“后台传输 (Background Transfers)” FileZilla 长时间空闲不操作连接会中断,须在“站点 (Site)”的“传输设置 (Transfer Settings)”中勾选“限制并发连接数 (Limit number of simultaneous connections)”并设置“最大连接数 (Maximum number of connections)”为1 SFTP 挂载盘: SFTP Drive 、 SSHFS SFTP Drive 须设置“Authentication Type”为“Keyboard Interactive” 登录注意事项 连续输错5次密码(含动态口令),账号锁定5分钟 只有最新绑定的动态口令有效,为避免混淆建议在绑定前先删除老的条目,动态口令仅用于登录 access.nju.edu.cn Shell命令行提示符(环境变量PS1)最后必须以 $ 结尾($+空格) 登录后用 passwd 命令更改密码,密码至少8个字符,包含小写字母、大写字母、数字和特殊字符中至少三种,不能是常见密码 必须通过作业调度系统进行计算,不得在登录节点或计算节点直接运行计算程序,否则会被杀掉进程 集成云盘 独立账号 高性能计算集群用户可以使用集群账号直接登录云盘,用户名为 集群账号@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 挂载盘命令行客户端 获取Token( 替换为集群账号, 替换为密码) curl -d 'username=@hpc.nju.edu.cn' -d 'password=' https://box.nju.edu.cn/api2/auth-token/ 创建配置文件 ~/seadrive.conf , 替换为集群账号, 替换为上一步的返回值 [account] server = https://box.nju.edu.cn username = @hpc.nju.edu.cn 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( 替换为集群账号) seaf-cli list-remote -s https://box.nju.edu.cn -u @hpc.nju.edu.cn 将本地目录与云盘资料库同步( 替换为上一步列出的某个资料库ID, 替换为本地目录) seaf-cli sync -s https://box.nju.edu.cn -u @hpc.nju.edu.cn -l -d 将云盘资料库下载到本地目录 seaf-cli download -s https://box.nju.edu.cn -u @hpc.nju.edu.cn -l -d 查看当前同步状态 seaf-cli status 解除本地目录同步 seaf-cli desync -d 停止客户端 seaf-cli stop 环境变量 集群使用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 mpirun ./app Job <3206000> is submitted to queue 脚本方式 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 . 等价如下命令行方式 $ bsub -q e5v3ib -n 48 -J MgSiO3 -o out -e err "module load ips/2018u4;mpirun ./app" Job <3207099> is submitted to queue . 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 . $ cat job.lsf #BSUB -q e52660 ./app $ bsub < job.lsf Job <3279930> is submitted to queue . MPI 并行作业    MPI程序需要使用 mpirun 启动   提交一个需要48核的 Intel MPI 并行作业到 e5v3ib,命令行方式为: $ bsub -q e5v3ib -n 48 "module load ips/2018u4;mpirun ./app" Job <3280120> is submitted to queue .   提交一个需要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 . OpenMP 并行作业    OpenMP 不能跨节点,因此 -n 不能指定超过一个节点的CPU核数   提交一个需要64核的 OpenMP 并行作业到 e7v4ib,使用程序参数 -nt 指定线程数量,命令行方式为: $ bsub -q e7v4ib -n 64 "./app-nt \$LSB_DJOB_NUMPROC" Job <3348175> is submitted to queue .   提交一个需要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 . 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 设置作业最后运行 作业等待 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 . 多作业并行执行 申请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 . 查看信息 查看队列 查看所有队列: 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/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/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]] :绑定额外的路径 相关网站 Apptainer Apptainer User Guide Docker Hub NVIDIA NGC 常见问题 网络 登录节点进行网络接入认证 集群中的登录节点进行网络接入认证后即可访问互联网,认证后登录节点所有用户均可访问互联网,请注意网络安全!。 命令行登录和登出p.nju.edu.cn的方法有: curl -X POST https://p.nju.edu.cn/api/portal/v1/login -H "Content-type: application/json" -d '{"username":"","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=&password=" curl -s http://p2.nju.edu.cn/portal_io/logout 计算节点访问网络 所有计算节点均不能自由无限制的访问外网(含校园网和互联网),如需访问可以单独申请开放。当前已经放开的网络访问 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 、 MKL_NUM_THREADS 、 OPENBLAS_NUM_THREADS ,或对自己的计算程序设置一个自定义的环境变量)等方式设定线程数,与进程数一起匹配申请的核数。 如果实在不行可以 #BSUB -x 独占节点运行作业。也可以尝试在提交作业时添加如下参数,做CPU亲和绑定 #BSUB -R affinity[core:cpubind=core:membind=localprefer:distribute=pack] 排队作业数上限 动态限制用户排队作业数不能超过MAX(1000,MIN((30000-总作业数)/10,(20000-总排队作业数)/6)) 即用户排队作业数,不超过三万减去总作业数的十分之一,也不超过二万减去总排队作业数的六分之一,但保底一千个。 作业状态UNKWN 一般是两种情况之一,如果作业状态长时间处于UNKWN状态,一般来说就是计算节点坏了可以直接杀掉作业。 因为计算节点负载过高,未能及时获取作业状态导致状态未知,这种情况一般只需要等待即可,待负载下降获取状态后就正常了。 因为计算节点出现故障且长时间未恢复,调度系统无法获取作业状态,此时如果登录不到相应的计算节点,可以直接杀掉作业。 硬件资源 计算存储等所有硬件资源详情 服务节点 管理、监控、认证、调度、备份和登录节点均为虚拟机,CPU/RAM/HDD根据需求分配 CPU: Intel Xeon E5-2680 v3 (12 Cores, 30MB Cache, 2.50 GHz, 9.6 GT/s QPI) RAM: 4 Channels, DDR4-2133 ECC RDIMM, Bandwidth: 136 GB/s Storage: Huawei Oceanstor 5500 V3, 2.5-inch 10Krpm SAS 和 2.5-inch SSD SAS 自动分层 Network: 2*10 Gigabit Ethernet 通讯网络 服务网络:100Mb/1Gb Ethernet 管理网络:1/10/25/40/100Gb Ethernet 高速网络:20/40/56/100/200Gb DDR/QDR/FDR/HDR InfiniBand, 100Gb Omni-Path Architecture 计算资源 命名规则和优先级 每组计算节点均对应两个队列;标准队列和优先队列 标准队列(CPU和加速卡型号+网络类型):所有用户都可以提交作业到这个队列进行计算; 优先队列(CPU和加速卡型号+网络类型+!): 公共设备的优先队列:仅用于测试用途,优先级高于标准队列,但运行时间、作业数量、核数都有限制,没有抢占。 自购设备的优先队列:只允许队列购置者提交作业,优先!队列的作业如果因为资源不足而不能运行,则会抢占标准队列作业的资源,将标准队列的作业挂起(状态SSUSP)或杀掉,腾出资源来运行优先!队列的作业,当作业完成后被挂起的作业会自动恢复执行。被挂起的作业可以用 brequeue 命令杀掉并自动重新提交。 每组计算节点的所有队列共享同一个 fairshare 数据。如果一个队列中的计算机由不止一个组出资购买,那么每个组在优先!队列运行中作业所能使用的节点限制为出资购买的部分,其它队列则无此限制。 组管理员可以来信设定本组所有用户可提交的队列,默认为所有队列均可提交作业。 所有公共共享队列共享同一个 fairshare 数据,公共共享队列的作业不会被抢占。 计算队列 合计 节点数量:324 CPU插槽数:681 CPU核数:13656 GPU卡数:125 GPU CUDA核数:1179264 内存:69024 GB 显存:2568 GB CPU和数据中心GPU双精度浮点计算理论峰值:866.21616 TFLOPS (CPU: 706.95616, GPU: 159.26) 消费级GPU单精度浮点计算理论峰值:3871.552 TFLOPS 总览 双路CPU:e52692v2ib、e52680v3ib、e5v3ib、e52630v4、e52640v4、e52650v4、e52680v4ib、e52682v4opa、5218、7702ib、5220r、6230r、6330ib、7k83、9654、6458q 四路CPU:e74820v4、6140ib、5218q、9242opa 高主频CPU:e52643tgb、6226rib 双路大内存:6338 四路大内存:x7542、e7v4ib 数据中心GPU:e5v3k40ib、e5v4p100ib、6148v100ib、62v100ib、83a100ib 消费级GPU:722080tiib、72rtxib、813080、723080、723090ib、814080、734090ib、75434090ib CPU融合:cpu1 表格 队列 -R "res_req" 节点 数量 每节点 CPU核数 每节点 内存(GB) 平均每核 内存(GB) CPU主频 (GHz) 每节点 GPU数量 每GPU 显存(GB) SSD* x7542 1 24 512 21.3 2.66 e52643tgb 3 8 96 12.0 3.3 e52643tgb largemem 7 8 128 16.0 3.3 e52692v2ib 40 24 64 2.7 2.2 e52680v3ib 26 24 128 5.3 2.5 e5v3ib 60 24 128 5.3 2.5 root e5v3ib largemem 10 24 256 10.7 2.5 root e5v3k40ib 1 24 128 5.3 2.5 2 12 e52630v4 2 20 64 3.2 2.2 e52640v4 1 20 128 6.4 2.4 e52650v4 3 24 128 5.3 2.2 e52680v4ib 19 28 128 4.6 2.4 root e52682v4opa 20 32 64 2.0 2.5 root tmp e74820v4 1 40 128 3.2 2.0 e7v4ib 1 64 1024 16.0 2.1 root e5v4p100ib 1 28 128 4.6 2.0 2 16 6140ib 16 72 384 5.3 2.3 root 6148v100ib 1 40 192 4.8 2.4 1 16 root 5218 1 32 192 6.0 2.3 root 5218q 1 64 256 4.0 2.3 62v100ib 1 40 768 19.2 2.5 8 32 root tmp 9242opa 20 96 384 4.0 2.3 root 7702ib 10 128 256 2.0 2.0 root 7702ib largemem 4 128 512 4.0 2.0 root 722080tiib 4 16 256 16.0 3.0 4 11 root tmp 72rtxib 3 16 256 16.0 3.0 4 24 root tmp 5220r 3 48 192 4.0 2.2 root 6226rib 22 32 192 6.0 2.9 root 6230r 3 52 192 3.7 2.1 root 6330ib 16 56 256 4.6 2.0 root 6338 2 64 1024 16 2.0 root 6338 largemem 2 64 2048 32 2.0 root 7k83 3 128 256 2.0 2.55 root 83a100ib 1 64 512 8.0 2.6 8 40 root tmp 813080 1 48 64 1.3 2.5 8 10 root 813080 1 48 128 2.7 2.7 8 10 root 723080 1 128 128 1.0 2.25 8 10 root 723090ib 2 48 512 10.7 2.8 8 24 root tmp 814080 1 48 64 2.7 2.7 4 16 root 734090ib 2 64 512 8.0 2.8 8 24 root tmp 75434090ib 2 64 512 8.0 2.8 8 24 root 9654 1 192 384 2.0 2.4 root 6458q 4 64 1024 16 3.1 root * SSD: root 表示节点本地根文件系统采用SSD,用户可用 /tmp 和 /var/tmp tmp 表示节点有额外的SSD用于临时存储,用户还可用 /ssd 和 /tmp/ssd 详情 x7542 双精度浮点计算理论峰值:0.25536 TFLOPS 购置者:李建新100% 1*IBM System x3850 X5 Hostname: x008 CPU: 4*Intel Xeon X7542 (6 Cores, 18MB Cache, 2.66 GHz, 5.86 GT/s QPI) RAM: 512 GB, 64*8GB DDR3-978 ECC RDIMM HDD: 146 GB 2.5in 10Krpm 3Gb/s SAS Network: Gigabit Ethernet 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: 128 GB(r004-r010)/96 GB(r001-r003), 4 Channels, DDR3-1600 ECC RDIMM, Bandwidth: 102.4 GB/s 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 双精度浮点计算理论峰值:67.2 TFLOPS 购置者:公共共享100% 70*Lenovo Flex System x240 M5 Hostname: f01n01-f01n14 f02n01-f02n14 f03n01-f03n14 f04n01-f04n14 f05n01-f05n14 CPU: 2*Intel Xeon E5-2680 v3 (12 Cores, 30MB Cache, 2.50 GHz, 9.6 GT/s QPI) RAM: [f05n05-f05n14] 256 GB (8x32GB) | [f01n01-f05n04] 128 GB (8x16GB), 4 Channels, DDR4-2133 ECC RDIMM, Bandwidth: 136 GB/s -R largemem 指定使用大内存节点(f05n05-f05n14) SSD: Samsung Enterprise SSD PM863, 32-layer 3D TLC, 120GB 170TBW, 2.5in SATA 6Gb/s 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, 2.5in SATA 6Gb/s | [i03n11-i03n20] Intel SSD DC S3610, 20nm MLC, 800GB 5.3PBW, 2.5in SATA 6Gb/s 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: [a011-a014] 512 GB (32x16GB) | [a001-a010] 256 GB (16x16GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s 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 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: [n014 n015] 2048 GB (32x64GB) | [n012 n013] 1024 GB (32x32GB), 8 Channels, DDR4-3200 ECC RDIMM, Bandwidth: 409.6 GB/s -R largemem 指定使用大内存节点(n014 n015) 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 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 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 中的任意节点,但优先级小于这些队列 退出服务 5150 双精度浮点计算理论峰值:1.788 TFLOPS 42*IBM BladeCenter HS21 Hostname: c01n01-c04n14 CPU: 2*Intel Xeon 5150 (2 Cores, 4M Cache, 2.66 GHz, 1333 MHz FSB) RAM: 16GB / 8GB / 4GB Network: Gigabit Ethernet e5620 双精度浮点计算理论峰值:0.076.8 TFLOPS 1*IBM BladeCenter HS22 Hostname: c01n14 CPU: 2*Intel Xeon E5620 (4 Cores, 12M Cache, 2.40 GHz, 5.86 GT/s QPI) RAM: 48 GB Network: Gigabit Ethernet e5430 双精度浮点计算理论峰值:2.383 TFLOPS 购置者:刘俊明50%,万贤纲50% 28*HP BladeSystem ProLiant BL260c G5 Hostname: s01n01-s01n14 s02n01-s02n14 CPU: 2*Intel Xeon E5430 (4 Cores, 12M Cache, 2.66 GHz, 1333 MHz FSB) RAM: 16 GB HDD: 146 GB 2.5in 10Krpm 3Gb/s SAS Network: Gigabit Ethernet x5550ib 双精度浮点计算理论峰值:23.8336 TFLOPS 购置者:公共共享100% 280*IBM BladeCenter HS22 Hostname: c08n01-c08n14 c09n01-c09n14 c10n01-c10n14 ... c27n01-c27n14 CPU: 2*Intel Xeon X5550 (4 Cores, 8M Cache, 2.66 GHz, 6.40 GT/s QPI) RAM: 48 GB(c17,c18)/24 GB(c15,c16,c19,c20,c21)/12 GB, 3 Channels, DDR3-1333 ECC RDIMM, Bandwidth: 64 GB/s HDD: 146 GB 2.5in 10Krpm 6Gb/s SAS Network: Gigabit Ethernet, 20 Gbit/s DDR InfiniBand -R largemem 指定使用大内存(24G/48G)节点(c15,c16,c17,c18,c19,c20,c21) -R mem24g 指定使用24GB内存节点(c15n01-c15n14,c16n01-c16n14,c19n01-c19n14,c20n01-c20n14,c21n01-c21n14) -R mem48g 指定使用48GB内存节点(c17n01-c17n14,c18n01-c18n14) e52660 双精度浮点计算理论峰值:2.253 TFLOPS 购置者:公共共享100%(原董锦明100%) 8*中科曙光TC4600 Hostname: t01n01-t01n08 CPU: 2*Intel Xeon E5-2660 (8 Cores, 20M Cache, 2.20 GHz, 8.00 GT/s QPI) RAM: 32 GB, 4 Channels, DDR3-1600 ECC RDIMM, Bandwidth: 102.4 GB/s HDD: 300 GB 2.5in 10Krpm 6Gb/s SAS Network: Gigabit Ethernet 7742 提供者:AMD 1*QCT QuantaGrid D52BQ-2U Hostname: o001 CPU: 2*AMD EPYC 7742 (64 Cores, 256MB Cache, 2.25 GHz) RAM: 256 GB, 8 Channels, DDR4-2666 ECC RDIMM SSD: Micron 1100 3D TLC 256GB 2.5in 6Gb/s SATA Network: 10 Gigabit Ethernet 7502 提供者:CPU: AMD、系统: 奥工 1*Asus RS720A-E9-RS24V2 Hostname: o002 CPU: 2*AMD EPYC 7502 (32 Cores, 128MB Cache, 2.5 GHz) RAM: 256 GB, 8 Channels, DDR4-2933 ECC RDIMM SSD: Samsung SSD 970 PRO 512GB M.2 NVMe Network: Gigabit Ethernet x5650 双精度浮点计算理论峰值:3.57504 TFLOPS 购置者:公共共享100%(原邢定钰50%,舒大军50%) 28*IBM BladeCenter HS22 Hostname: c06n01-c06n14 c07n01-c07n14 CPU: 2*Intel Xeon X5650 (6 Cores, 12MB Cache, 2.66 GHz, 6.40 GT/s QPI) RAM: 48 GB, 3 Channels, DDR3-1333 ECC RDIMM, Bandwidth: 64 GB/s HDD: 146 GB 2.5in 10Krpm 3Gb/s SAS Network: Gigabit Ethernet, iWARP 10 Gigabit Ethernet x5650ib 双精度浮点计算理论峰值:35.7504 TFLOPS 购置者:公共共享100% 280*IBM BladeCenter HS22 Hostname: c08n01-c08n14 c09n01-c09n14 c10n01-c10n14 ... c27n01-c27n14 CPU: 2*Intel Xeon X5650 (6 Cores, 12MB Cache, 2.66 GHz, 6.40 GT/s QPI) RAM: 48 GB(c17,c18)/24 GB(c15,c16,c19,c20,c21)/12 GB, 3 Channels, DDR3-1333 ECC RDIMM, Bandwidth: 64 GB/s -R largemem 指定使用大内存(24G/48G)节点(c15,c16,c17,c18,c19,c20,c21) -R mem24g 指定使用24GB内存节点(c15,c16,c19,c20,c21) -R mem48g 指定使用48GB内存节点(c17,c18) HDD: 146 GB 2.5in 10Krpm 3Gb/s SAS Network: Gigabit Ethernet, 20 Gbit/s DDR InfiniBand e5645 双精度浮点计算理论峰值:0.4608 TFLOPS 购置者:马余强100% 4*IBM System x3650 M3 Hostname: x004-x007 CPU: 2*Intel Xeon E5645 (6 Cores, 12MB Cache, 2.40 GHz, 5.86 GT/s QPI) RAM: 16 GB, 2 Channels, DDR3-1333 ECC RDIMM, Bandwidth: 42.6 GB/s HDD: 4*300 GB 2.5in 10Krpm 6Gb/s SAS RAID5 Network: Gigabit Ethernet e52660tgb 双精度浮点计算理论峰值:4.506 TFLOPS 购置者:万贤纲100% 16*Dell PowerEdge 12G M620 Hostname: m02n01-m02n16 CPU: 2*Intel Xeon E5-2660 (8 Cores, 20MB Cache, 2.20 GHz, 8.00 GT/s QPI) RAM: 32 GB (8x4GB), 4 Channels, DDR3-1600 ECC RDIMM, Bandwidth: 102.4 GB/s HDD: 600 GB 2.5in 10Krpm 6Gb/s SAS SSD: Intel SSD 730, 20nm MLC, 480GB 128TBW, 2.5in SATA 6Gb/s SSD mounted at /ssd & /tmp/ssd Network: 10 Gigabit Ethernet e52660ib 双精度浮点计算理论峰值:3.379 TFLOPS 购置者:王炜100% 12*Dell PowerEdge 12G M620 Hostname: m03n01-m03n12 CPU: 2*Intel Xeon E5-2660 (8 Cores, 20MB Cache, 2.20 GHz, 8.00 GT/s QPI) RAM: 32 GB (8x4GB), 4 Channels, DDR3-1600 ECC RDIMM, Bandwidth: 102.4 GB/s HDD: 600 GB 2.5in 10Krpm 6Gb/s SAS (m03n01-m03n06) / 300 GB 2.5in 10Krpm 6Gb/s SAS (m03n07-m03n12) Network: Gigabit Ethernet, 56 Gbit/s FDR InfiniBand 存储资源 表格 类型 路径 容量 元数据 数据 快照创建时间点 快照保留策略 并行存储 /bbfs 117 TiB NVMe SSD NVMe SSD - - 并行存储 /fsa 361 TiB SAS SSD 7.2Krpm HDD 每日0时 每天快照保留7天 每周快照保留2周 并行存储 /fs04 14 TiB 10Krpm HDD 10Krpm HDD 并行存储 /fs08 14 TiB 10Krpm HDD 10Krpm HDD 每日0时 每天快照保留3天 并行存储 /fs09 24 TiB 7.2Krpm HDD 7.2Krpm HDD 每日0时 每天快照保留7天 每周快照保留2周 并行存储 /fs10 9.9 TiB 10Krpm HDD 10Krpm HDD 并行存储 /fs12 14 TiB 10Krpm HDD 10Krpm HDD 并行存储 /fs13 30 TiB 7.2Krpm HDD 7.2Krpm HDD 并行存储 /fs14 262 TiB 7.2Krpm HDD 7.2Krpm HDD 并行存储 /fs00 3.3 TiB 10Krpm HDD 10Krpm HDD 每日0时 每天快照保留7天 每周快照保留12周 归档存储 /archive 1.91 PiB 7.2Krpm HDD 7.2Krpm HDD 每日0时 每天快照保留7天 每周快照保留4周 对象存储 s3.nju.edu.cn 2.12 PB SATA SSD 7.2Krpm HDD - - 本地存储 /dev/shm RAM RAM - - 本地存储 /tmp HDD/SSD HDD/SSD - - 本地存储 /ssd SSD SSD - - 并行存储 高速全闪(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 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 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 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 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 IO存储节点:Dell PowerEdge R740xd: stor.nju.edu.cn 网络:2*25 Gigabit Ethernet 保护:RAID-Z 3 仅登录节点可访问 快照 快照是特定时间点数据的只读副本,用户可以从中恢复删除的文件或文件的过往版本,可以在文件系统目录/.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用于临时存储,则挂载于此目录 退出服务 /fs04 可用容量:885 GB IO存储节点:IBM System x3650: io03 RAID卡:IBM ServeRAID 8k (Adaptec), 256MB cache with battery 硬盘:146GB 3.5-inch 10Krpm 3Gb/s SAS,每5个盘做一组RAID5,每节点1组共2组RAID5,每节点1个热备盘 /fs02 可用容量:7.3 TB IO节点:IBM System x3650 M3: io05 网络:Chelsio 20 Gigabit Ethernet 存储:IBM System Storage DS3200, 1GB cache with battery backup 硬盘:2TByte 3.5-inch 7.2Krpm 3Gb/s SATA,6个盘做一组RAID6 /fs06 可用容量:443 GB IO存储节点:HP ProLiant DL380 G5: io09 高速网络:20 Gbit/s DDR InfiniBand RAID卡:HP Smart Array P400, 512MB Battery-Backed Write Cache 硬盘:146GB 2.5-inch 10Krpm 3Gb/s SAS,5个盘做一组RAID5,1个热备盘 /fs07 可用容量:7.3 TB IO节点:HP ProLiant DL380 G5: io09 高速网络:20 Gbit/s DDR InfiniBand 存储:HP StorageWorks MSA2312sa G2 单控制器 硬盘:1TByte 3.5-inch 7.2Krpm 3Gb/s SATA,每6个盘做一组RAID6,2组RAID6 /fs05 可用容量:1010 GB IO存储节点:HP ProLiant DL380 G5: io04 RAID卡:HP Smart Array P400, 512MB Battery-Backed Write Cache 硬盘:300GB 2.5-inch 10Krpm 3Gb/s SAS,5个盘做一组RAID5,1个热备盘 /fs05b 可用容量:932 GB IO存储节点:HP ProLiant DL380 G5: io04 RAID卡:HP Smart Array P400, 512MB Battery-Backed Write Cache 硬盘:1TByte 2.5-inch 7.2Krpm 3Gb/s NL-SAS,1个盘RAID0 /fs03 可用容量:2.2 TB IO存储节点:Dell PowerEdge 12G R720: io07 RAID卡:Dell PERC H710P Mini (LSI SAS2208 ROC), 1GB cache with Intelligent Battery Backup Unit 硬盘:600GB 2.5-inch 10Krpm 6Gb/s SAS,5个盘做一组RAID5,1个热备盘 /fs11 可用容量:16 TB IO节点:Dell PowerEdge 12G R720: io07 存储:Dell MD3200i 单控,2GB cache with battery backup 硬盘:2TByte 3.5-inch 7.2Krpm 6Gb/s NL-SAS,12个盘做一个Disk Pool,保留1个硬盘空间,做一个Virtual Disk /fs01 文件系统:fs01 购置者:公共共享100%(原邢定钰50%,舒大军50%) 可用容量:4.4 TB IO存储节点:IBM System x3650 M3: io05 io06 网络:Chelsio 2*10 Gigabit Ethernet RAID卡:IBM ServeRAID M5015 (LSI SAS2108 ROC), 512MB cache with Battery Backup Unit 硬盘:300GB 2.5-inch 10Krpm 6Gb/s SAS,每5个盘做一组RAID5,每节点2组共4组RAID5,每节点1个热备盘 软件资源 部分软件资源 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 计算软件 cd 请使用者自行解决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 Modulefile: oneapi/2024.0/compiler/2024.0.2 oneapi/2024.0/ifort/2024.0.2 oneapi/2024.0/mkl/2024.0 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 直接使用Singularity 例:使用qe7.1版本,输入文件为当前目录下的 FeO_test.in ,申请1个GPU提交到 723090ib 队列,使用 pw.x #BSUB -J FeO_test #BSUB -q 723090ib #BSUB -gpu num=1 module load singularity/latest export OMP_NUM_THREADS="$LSB_DJOB_NUMPROC" SINGULARITY="singularity run --nv /fs00/software/singularity-images/ngc_quantum_espresso_qe-7.1.sif" ${SINGULARITY} 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 mumax 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 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 服务门户 https://scc.nju.edu.cn 登录方式 使用集群的用户名密码登录中心主持研发的HPC 服务门户 ,在集群上没有账号的使用门户的用户名密码登录。 账号管理 组一般对应课题组,用户则对应每个人。因涉及到收费,组长一般为教职工(如PI、导师),组员一般为学生或老师。 组长可自助审批组员账号,通过后账号立刻生效,即可使用。组长还可以禁用启用组员账号,被禁用的账号不能远程登录集群和服务门户,被禁用账号的数据和作业不受影响。 申请新组 新组长首页点击 申请组 南京大学校内人员请绑定统一身份认证; 填写表单,提交申请; 与管理员联系,等待审批。 申请组员 新用户在首页点击 注册账户 南京大学校内人员请绑定统一身份认证; 填写表单,用户组输入Linux Group Name,提交申请; 组长登录 服务门户 自助审批新用户,通过后账号立刻生效,即可使用。 测试报告 AMD EPYC Rome VASP 测试 周健 2019.11.18 测试算例 Ruddlesden-Popper 钛酸锶 Sr 4 Ti 3 O 10 ,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" module load singlarity/latest 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 软件信息: 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" module load singlarity/latest 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 # 设置所有的运算用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" module load singularity/latest 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" module load singularity/latest 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" module load singularity/latest 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" module load singularity/latest 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" module load singularity/latest 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 gpgpu: 1, NVIDIA Tesla V100 gpgpu: 2, NVIDIA Tesla V100 gpgpu: 3, NVIDIA Tesla V100 gpgpu: 4, NVIDIA Tesla V100 gpgpu: 5, NVIDIA Tesla V100 gpgpu: 6, NVIDIA Tesla V100 gpgpu: 7, 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 gpgpu: 1, NVIDIA TITAN RTX gpgpu: 2, NVIDIA TITAN RTX gpgpu: 3, 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 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 校内及协同创新中心用户 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分子动力学模拟一键式运行脚本: 下载地址: Wang-Lin-boop/Schrodinger-Script: Some scripts to run Schrödinger jobs on HPC or localhost. (github.com) 脚本介绍: Wang-Lin-boop/Schrodinger-Script: Some scripts to run Schrödinger jobs on HPC or localhost. (github.com) 通过以上脚本实现当前路径下所有的 mae文件(类似于PDB的结构文件,需通过Maestro转存) 按照设置参数进行模拟,plmd -h中给出了示例和详细的输入命令介绍: Usage: plmd [OPTION] 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: 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. 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, 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等力场来帮助模拟系统的构建。 #在HPC上安装 Viparr 和 Msys 在个人笔记本(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] 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: 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. Lipid types: POPC, POPE, DPPC, DMPC. -b Define a boxshape for your systems. 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, 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". -e The ensemble class in MD stage, "NPT", "NVT", "NPgT". -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. -V Your viparr path. -v Your viparr force fields path. 示例任务提交脚本及命令 ,需修改相应计算节点和软件路径信息: #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  ""  ""  "" Analysis Occupancy bash occupancy.sh  ""  "" Analysis ppi contact bash ppi.sh  ""  ""  官网部分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 | -f] [-s] [-n] [-o OUTPUT_FILE] [-l ASL] [-j JOBNAME] [--trajectory ] [--ligand_asl ] [--framestep ] [--water_asl ] 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 , --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 _out_pv.mae; for complex files, it will be named -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 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 The ASL used to determine the ligand structure. By default, this is determined automatically. Only valid for --trajectory jobs. --framestep --trajectory jobs calculate SASA every X frames. By default, X=10. Use this flag to change the value of X. --water_asl 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] Required Options: -i The path to trajectory or regular expression for trajectories(will be merged). such as "*-md". -J Specify a basic jobname for this task, the basename of -i is recommended. -M The running mode for this analysis task. the <..> means some options. APCluster_: affinity propagation clustering, the is the number of most populated clusters. CHCluster__: centroid hierarchical clustering, the is the RMSD thethreshold. LigandAPCluster_: APCluster for ligand, require "-L" option. LigandCHCluster__: 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_: running SiteMap on all frames of the trajectory, the 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 The ASL of component 1 to be centered. -L The ASL of component 2 to be analyzed. Trajectories Processing Options: -T 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". -t Slice trajectories when calculating MM/GBSA, such as "100:1000:1". -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 Align the trajectory to a reference structure, given in ".mae" format. -a Align the trajectory to the frist frame. -C Set a ASL to clean the subsystem from trajectory, such as -C "not solvent". -P Parch waters far away from the component 2. -w 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 HOST of CPU queue, default is CPU.与Desmond配置schrondinger.host相同 -N CPU number for per analysis task. <30> -G Path to the bin of Gromacs. <此处填写Gromacs的路径> -D 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 - NetSarang Website Xftp使用参数: 主机:access.nju.edu.cn,默认端口22 协议:sftp 用户名:集群用户名 密码:和上面登入Xshell的密码一致 用户目录:如果你在上面ssh登入后,输入echo ~返回的是/fsa/home/集群用户名,那么sftp下用户目录就是/hpc_login1 sftp (10.1.0.101)/self/fsa/home/集群用户名 非Windows用户的SFTP方案见: SFTP登录(文件传输) 其他情况可以去 远程登录 文档内寻找答案。 四、Linux命令行使用 命令行五花八门,说到底,都是 命令 参数 (注意中间的空格)这种格式。 基本命令行参考: 命令 用途 ls <路径> 列出指定目录<路径>下的文件和文件夹 cd <路径> 切换到指定目录<路径> mkdir <文件夹> 在当前目录创建一个叫<文件夹>的文件夹 vim <文件> 使用Vim编辑文本文件<文件>(脚本之类的),如果<文件>不存在,就创建它。Vim是一款非常强大的命令行编辑器,学习见: Linux vi/vim | 菜鸟教程 、 GitHub - wsdjeg/Learn-Vim_zh_cn 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 的文件夹( m a k e dir ectory)管理这一次的计算任务 第二行:切换进刚刚创建的那个目录( c hange d irectory) 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云盘基本一致。