计算化学公社

 找回密码 Forget password
 注册 Register
Views: 1833|回复 Reply: 6
打印 Print 上一主题 Last thread 下一主题 Next thread

[GROMACS] 求助:高性能集群上使用GPU运行gromacs报错

[复制链接 Copy URL]

5

帖子

0

威望

57

eV
积分
62

Level 2 能力者

高性能集群上1个节点有56个核,有8块显卡;但是安装gromacs 2020.6时直接编译,貌似不能跨节点计算。输入文件为:
#!/bin/bash
#SBATCH -J TRPA1-apo1
#SBATCH -p gnall
#SBATCH -N 1
#SBATCH -o stdout.%j
#SBATCH -e stderr.%j
#SBATCH --no-requeue
#SBATCH --ntasks-per-node=56
#SBATCH --gres=gpu:1


module load compilers/gcc/v9.2.0
module load gpu/cuda/v11.6

export PATH=/gmx2020.6.cuda/bin:$PATH
export LD_LIBRARY_PATH=/gmx2020.6.cuda/lib64:$LD_LIBRARY_PATH

gmx mdrun -deffnm eq1 -pme gpu -nb gpu


运行报错:
-------------------------------------------------------
Program:     gmx mdrun, version 2020.6
Source file: src/gromacs/listed_forces/manage_threading.cpp (line 338)

Fatal error:
You are using 112 OpenMP threads, which is larger than GMX_OPENMP_MAX_THREADS
(64). Decrease the number of OpenMP threads or rebuild GROMACS with a larger
value for GMX_OPENMP_MAX_THREADS passed to CMake.

For more information and tips for troubleshooting, please check the GROMACS
website at http://www.gromacs.org/Documentation/Errors
-------------------------------------------------------



如果加上-ntomp 1运行正常,但是很慢。这个是为什么呀?

878

帖子

17

威望

5441

eV
积分
6659

Level 6 (一方通行)

小屁孩

2#
发表于 Post on 2023-6-20 22:06:20 | 只看该作者 Only view this author
GMX 2021之前的版本,默认的GMX_OPENMP_MAX_THREADS环境变量值为64,2022版开始默认为128。但你不能只简单粗暴地修改此值,否则接下去还会有巨量显性或隐性的问题等着你。

从你的表述来看,你对如何使用GMX、如何使用GPU加速GMX、如何在集群上使用GMX几乎完全不了解,更加不了解如何对性能进行调优。如果你按现在的路线继续做下去,那么最终价值上百万的集群的速度很可能不如价值一两万的PC。

由于这部分涉及非常多软硬件知识,我无法在此给你讲清楚,只能给你几个建议。

0. 说清楚CPU和GPU型号。

1. 考虑到你目前的水平,不要试图使用多块GPU运行1个模拟,更不要试图“跨节点计算”,老老实实用1块GPU运行1个模拟。虽然在一些条件下,通过对软硬件的仔细调优(对于已建成的集群,应当从软件编译阶段开始调),可以让多GPU乃至多节点运行单个模拟获得较高的并行效率,但这暂时还不适合你。

2. 基于1,编译内置thread-MPI的CUDA版GMX即可,不要用2020.6了,该版本的GPU update功能有bug,应当用2021.7或2022.5。

3. 基于1和2,运行mdrun时额外指定:-gpu_id [指定要用的GPUID] -ntmpi 1 -ntomp 14 -pin on -pinstride 1 -pinoffset [GPUID*14] -update gpu

4. 基于1、2、3,最好为每个模拟分别提交slurm任务脚本,每个任务申请7个CPU核心、1块GPU,指定节点

根据你的描述,以及gmx mdrun的输出,可以判定节点启用了超线程,这非常好,因为超线程对于GPU加速GMX来说有非常大的性能加成。3中参数的含义是:为每块GPU绑定7核14线程,8块GPU可以把56核112线程用完,此外,启用GPU update功能,以大幅提升GPU利用效率。由于我不知道你的GPU是什么,也未看到你的模型的具体内容和模拟参数,所以无法推测使用-bonded gpu后性能是否更好,这需要你自己测试。

(正在考虑写一篇如何在GPU集群上使用MD软件的科普、教程贴,毕竟假如新手都像你一样瞎用,完全就是在浪费珍贵的GPU集群资源。但如前所述,这涉及到非常多软硬件知识,给新手讲明白这些东西是一个巨大工程,目前还不确定收益如何)

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
冷血 + 5 我很赞同

查看全部评分 View all ratings

- 向着虚无前进 -

878

帖子

17

威望

5441

eV
积分
6659

Level 6 (一方通行)

小屁孩

3#
发表于 Post on 2023-6-20 22:26:18 | 只看该作者 Only view this author
本帖最后由 Entropy.S.I 于 2023-6-20 22:28 编辑

还是忍不住想吐槽,虽然如今GPU集群已经不是高攀不起的东西了,但鲜有人能高效地使用GPU集群,很多人都是在上面“瞎跑”。

我见过的“瞎跑”行为,包括但不限于:像你一样简单粗暴地mdrun,不设置任何详细的并行参数;在24核+4卡节点上用16核+1卡;用古董版本GMX;几个任务撞在一起;etc.
- 向着虚无前进 -

2425

帖子

1

威望

6197

eV
积分
8642

Level 6 (一方通行)

4#
发表于 Post on 2023-6-21 12:09:37 | 只看该作者 Only view this author
用了slurm调度,不用手动指定GPU ID。

8个GPU,如果没有NVLink,
使用多卡并行会很糟糕的。

无知无畏,会让几百万的设备,像一坨大便一样。

当然了,几百万的设备,
如何更加高效的利用起来,
也不是所谓的50元包邮就可以解决的。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

5

帖子

0

威望

57

eV
积分
62

Level 2 能力者

5#
 楼主 Author| 发表于 Post on 2023-6-21 12:10:51 | 只看该作者 Only view this author
谢谢大佬指点!

878

帖子

17

威望

5441

eV
积分
6659

Level 6 (一方通行)

小屁孩

6#
发表于 Post on 2023-6-21 12:56:56 | 只看该作者 Only view this author
本帖最后由 Entropy.S.I 于 2023-6-21 13:03 编辑
abin 发表于 2023-6-21 12:09
用了slurm调度,不用手动指定GPU ID。

8个GPU,如果没有NVLink,

也不是非得NVLink,确保GPU之间有P2P连接即可。没有NVLink,也可以用PCIe P2P,NVIDIA测过,那几款PCIe卡跑GMX的并行效率在4卡时也不是很糟,这就是PCIe P2P的功劳。要利用PCIe P2P,须启用GMX的GPU直接通信功能,操作方法在2022版之前和2022版及以后是不同的,自行查阅GMX手册。

https://developer.nvidia.com/hpc-application-performance


不过,GeForce卡没有PCIe P2P。
- 向着虚无前进 -

2425

帖子

1

威望

6197

eV
积分
8642

Level 6 (一方通行)

7#
发表于 Post on 2023-6-21 14:22:03 | 只看该作者 Only view this author
Entropy.S.I 发表于 2023-6-21 12:56
也不是非得NVLink,确保GPU之间有P2P连接即可。没有NVLink,也可以用PCIe P2P,NVIDIA测过,那几款PCIe卡 ...

是呀,说的没错。

手册有写的。

用户需要看手册,根据自己的硬件配置,
做对应设置。

不顾前因后果,一上来就多机多卡直接跑,基本会很糟糕的。
除非,这个平台,有真专业技术在运维。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-25 18:12 , Processed in 0.256133 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list