今天讲一个 GROMACS 使用中的经典坑。很多朋友私下跟我抱怨过:明明我机器上有一张顶级显卡,跑起来却慢得像蜗牛;GPU 占用度甚至不足 1%(明明手动加了 -nb gpu),跑得还不如以前的老显卡快。
一开始大家都以为显卡坏了,其实根本不是——原因只有一个:你忘了设置 -ntomp。
来科普一下:
-
-nb gpu:告诉 GROMACS 用 GPU 加速非键相互作用计算。 -
-ntomp:控制 CPU 的 OpenMP 线程数
如果你不设置-ntomp,GROMACS 会自动占满你机器上1/2 CPU 线程(如果总数不超过64倒不必担心这种情况)。可一旦总线程数超过96,则会出现CPU 忙得不可开交,GPU 根本没机会插手的情况。
解决办法其实很简单,指定调用的线程数即可。举个例子:
gmx mdrun -s topol.tpr -deffnm md -nb gpu -ntomp 16
小技巧:线程数不要设太大,通常选核心数16-32范围附近。
给大家一个参照:我的设备有128个线程,通常跑单个MD任务时我会把-ntomp设置为16。另外还有一点切记!设置的数字最好是偶数,不要设为奇数!!!

1657

被折叠的 条评论
为什么被折叠?



