计算化学公社

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

[GROMACS] Gromacs中GPU加速与CPU分配,同时跑两个模拟的时候速度直线下降

[复制链接 Copy URL]

7

帖子

0

威望

47

eV
积分
54

Level 2 能力者

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 Pipi_ 于 2026-6-13 14:42 编辑

在一台搭载双RTX 5090(驱动580.159.03,CUDA 12.8,PCIe拓扑为PHB/共享Host Bridge)和16核/32线程CPU的工作站上,分别在两张GPU上独立运行两个GROMACS 2026.2 mdrun任务(各自-ntmpi 1,CPU线程数分配互不重叠),单独运行时每个任务GPU利用率约55%、速度正常(约400-580 ns/day)。
但当第二个mdrun启动时,第一个任务的GPU利用率会瞬间从约55%骤降至0-6%,且两张GPU的利用率呈现交替抖动(GPU0出现非零时GPU1为0,反之亦然),计算速度从约77 M-cycles/step暴跌至11000+ M-cycles/step(约150倍退化)。停止第二个任务后,第一个任务的GPU利用率立即恢复正常。
两个任务命令如下:
export CUDA_VISIBLE_DEVICES=0
gmx mdrun -deffnm step7_production_run1 -v -ntmpi 1 -ntomp 14 -pin on -pinoffset 0

export CUDA_VISIBLE_DEVICES=1
gmx mdrun -deffnm step7_production_run1 -v -ntmpi 1 -ntomp 14 -pin on -pinoffset 18

CPU的占用似乎也没有按照设置的1-14,18-31这样来。此外,CPU的占用率正常应该是1400%,但提交了第二个任务后,CPU占用也一定程度下降,两个任务似乎在争抢CPU资源。


6万

帖子

99

威望

6万

eV
积分
128524

管理员

公社社长

2#
发表于 Post on 2026-6-15 18:24:33 | 只看该作者 Only view this author
第一个和第二个任务分别绑定在前8个和后8个物理核心上。并且mdrun直接用 -gpu_id 指定用哪个GPU再试
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

7

帖子

0

威望

47

eV
积分
54

Level 2 能力者

3#
 楼主 Author| 发表于 Post on 2026-6-16 09:19:47 | 只看该作者 Only view this author
sobereva 发表于 2026-6-15 18:24
第一个和第二个任务分别绑定在前8个和后8个物理核心上。并且mdrun直接用 -gpu_id 指定用哪个GPU再试

sob老师,我之前尝试过将第一个和第二个任务分别绑定在前8个和后8个物理核心上,还是失败了
不过目前问题已经解决了!!!!!代码如下:

export CUDA_VISIBLE_DEVICES=1

gmx mdrun -deffnm step7_production_run1 -v -ntmpi 1 -ntomp 14 -pin off &
LPA_PID=$!
sleep 3
for tid in $(ls /proc/$LPA_PID/task); do
    taskset -cp 16,17,18,19,20,21,22,23,24,25,26,27,28,29 $tid 2>/dev/null
done
wait $LPA_PID
这里把线程绑定关了,使用taskset来指定线程,第一张卡指定taskset -cp 0,1,2,3,4,5,6,7,8,9,10,11,12,13 $tid 2>/dev/null,现在能正常使用两张卡啦!


本版积分规则 Credits rule

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

GMT+8, 2026-7-25 08:30 , Processed in 0.410254 second(s), 20 queries , Gzip On.

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