具体说明:GROMACS (2019.3 GPU版) 并行效率测试及调试思路 - 分子模拟 (Molecular Modeling) - 计算化学公社 (keinsci.com)
两块显卡相对于一块显卡的提升非常有限。如果装了两块显卡,想有效的利用这两块显卡,最好的办法是每块显卡跑一个独立gmx任务。问题是,这两个独立的gmx会相互干扰么?经过测试,结论是:cpu核数足够的情况下两块显卡单独运行两个Gromacs任务完全没有影响。JCC,2019的那篇文章中也可以看到,N显卡相对于单显卡的速度几乎就是N倍。
单Rank下,随着openmp threads数量增多,显卡计算NB+BF的速度最终超过了NB+PME,这是因为1080性能略差,这样CPU并行数量上去之后,CPU计算PME的速度最终能够超过GPU计算PME的速度。而多节点运行事实上不划算
==进程=火车,线程=车厢
Gitbash:提供了win下bash的方法
可以使用通配符,类似正则表达。并且可以使用|
管道符号,将命令组合起来
ls -a
显示全部文件 ls -l
列表显示文件 ls -la
列表显示全部文件
ls a*
显示所有 a*相关文件
manual 操作手册命令 man ls
帮助命令 --help
rmdir:移除路径 rm -r 递归删除==不要轻易使用rm -rf==
cat: 文件内容查看 touch:创建文件
grep: 检索命令
grep awk sed
]]>1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment
]]>网上搜索,注意到提示需要full trajectory file
结果突然发现80min后出结果了,
选择多个整体对象:marquee或者lasso按住shift 双击某个键;双击反应式的箭头选择整个反应
marquee时按住alt,则变成lasso功能
文字转结构:ctrl+shift+n
复制结构:按住ctrl
平行复制结构:ctrl+shift
热键更改:hotkeys.xml文件,位置在file-preference-directory-chemdraw items 默认隐藏在programdata里
keys
bond
调用管理员权限:su -
screen -S 文件名
比nohup好用 screen ctrl+a +d退出 ctrl+r继续 screen -ls有哪些窗口 screen -r 数字恢复
用top查看正在进行的进程
screen命令详解,https://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
]]>Hessian mdp文件(感觉也差不多,但emtol应该0.01或者更小)不过此前的Fmax可能设得太大了
define = -DFLEXIBLE
constraints = none
integrator = nm
nsteps = 10000
emtol = 1.0 ;这里不确定
emstep = 0.01
ns_type = gridpbc = xyznstlist = 5rlist = 0.9coulombtype = PMEvdwtype = Cut-offrvdw = 0.9Tcoupl = noPcoupl = nogen_vel = no
因为log里报:
Maximum force: 3.60376e+03
The force is probably not small enough to ensure that you are at a minimum.
Be aware that negative eigenvalues may occur
when the resulting matrix is diagonalized.
Finished mdrun on rank 0 Sun May 2 21:56:50 2021
所以全流程重来,在VM里emtol里就降低力的最大值,先试试emtol 100,并在做一次共轭cg,并直接进行真空模拟
1k次收敛到700,3.5k次收敛100
gmx grompp -f fws-VM1.mdp -c fws-PB.gro -p fws.top -o fws-VM1.tpr -maxwarn 1
fws-VM1.mdp
; 传递给预处理器的一些定义
define = -DFLEXIBLE ; 使用柔性水模型而非刚性模型, 这样最陡下降法可进一步最小化能量
; 模拟类型, 结束控制, 输出控制参数
integrator = steep ; 指定使用最陡下降法进行能量最小化. 若设为cg
则使用共轭梯度法
emtol = 20 ; 若力的最大值小于此值则认为能量最小化收敛(单位kJ mol^-1^ nm^-1^)
emstep = 0.01 ; 初始步长(nm)
nsteps = 4000 ; 在能量最小化中, 指定最大迭代次数
nstenergy = 10 ; 能量写出频率
energygrps = System ; 要写出的能量组
; 近邻列表, 相互作用计算参数
nstlist = 1 ; 更新近邻列表的频率. 1表示每步都更新
ns_type = grid ; 近邻列表确定方法(simple或grid)
coulombtype = PME ; 计算长程静电的方法. PME为粒子网格Ewald方法, 还可以使用cut-off
rlist = 1.0 ; 短程力近邻列表的截断值
rcoulomb = 1.0 ; 长程库仑力的截断值
vdwtype = cut-off ; 计算范德华作用的方法
rvdw = 1.0 ; 范德华距离截断值
constraints = none ; 设置模型中使用的约束
pbc = xyz ; 3维周期性边界条件
cutoff-scheme = Verlet ; 版本不加这个会有一个note提醒
gmx mdrun -v -deffnm fws-VM1
gmx_d grompp -f fws-VM2.mdp -c fws-VM1.gro -p fws.top -o fws-VM2.tpr -maxwarn 1
fws-VM2.mdp
; 传递给预处理器的一些定义
define = -DFLEXIBLE ; 使用柔性水模型而非刚性模型, 这样最陡下降法可进一步最小化能量
; 模拟类型, 结束控制, 输出控制参数
integrator = cg ; 指定使用最陡下降法进行能量最小化. 若设为cg
则使用共轭梯度法
emtol = 1.0 ; 若力的最大值小于此值则认为能量最小化收敛(单位kJ mol^-1^ nm^-1^)
emstep = 0.01 ; 初始步长(nm)
nsteps = 10000 ; 在能量最小化中, 指定最大迭代次数
nstenergy = 20 ; 能量写出频率
energygrps = System ; 要写出的能量组
; 近邻列表, 相互作用计算参数
nstlist = 1 ; 更新近邻列表的频率. 1表示每步都更新
ns_type = grid ; 近邻列表确定方法(simple或grid)
coulombtype = PME ; 计算长程静电的方法. PME为粒子网格Ewald方法, 还可以使用cut-off
rlist = 1.0 ; 短程力近邻列表的截断值
rcoulomb = 1.0 ; 长程库仑力的截断值
vdwtype = cut-off ; 计算范德华作用的方法
rvdw = 1.0 ; 范德华距离截断值
constraints = none ; 设置模型中使用的约束
pbc = xyz ; 3维周期性边界条件
gmx_d mdrun -v -deffnm fws-VM2
没装双精度报错:
Energy minimization has stopped, but the forces have not converged to the
requested precision Fmax < 1 (which may not be possible for your system). It
stopped because the algorithm tried to make a new step whose size was too
small, or there was no change in the energy since last step. Either way, we
regard the minimization as converged to within the available machine
precision, given your starting configuration and EM parameters.
Double precision normally gives you higher accuracy, but this is often not
needed for preparing to run molecular dynamics.
writing lowest energy coordinates.
Polak-Ribiere Conjugate Gradients converged to machine precision in 3590 steps,
but did not reach the requested Fmax < 1.
Potential Energy = -3.9830898e+03
Maximum force = 3.4626892e+01 on atom 493
Norm of force = 4.0448758e+00
Hessian mdp
define = -DFLEXIBLE constraints = none integrator = nm nsteps = 10000 emtol = 0.01 emstep = 0.01
ns_type = grid pbc = xyz nstlist = 5 rlist = 0.9 coulombtype = PME vdwtype = Cut-off rvdw = 0.9
只出50个结果,溶剂条件全是0,真空下有4个0,是低频结果
“电子能量”包括四项:(1)电子的动能(2)电子与电子间的库仑互斥能(3)核与核之间的库仑互斥能(4)电子与核之间的库仑吸引能。所以一般所说的“电子能量”其实并不完全是它的字面意思,因为也把核之间的互斥能包含了进去。
= V0 + 1/2 h(k/m)^0.5 = 单点能 + 1/2 v
问题:freq全是0,得不到数值
师兄说可能是蛋白质结构没有能量最小化,也可能是结构异常
1.1 确证有无能量最小化
1.1.1 报maximum force错误,教程里有建议跑很久 1.1.2 试图消除报的错 1.1.2.1 加一个cutoff-scheme = Verlet,再加一个genion,邻居搜索改成0(真空),但看漏斗网蜘蛛毒素溶剂化研究教程里,指出如果进行真空溶剂化,就需要这样 1.1.2.2 直接真空把emtol放到10以内很难实现,应该要跑很久,所以现收敛到500,在正式模拟中再提高精度,似乎以前没有做最后一步成品模拟 - 生成拓扑文件 - 真空能量最小化 - 做6w cg法最大力下降到0.01 期间使用 gmx energy -f file.edr -o file.xvg xmgrace file.xvg 查看能量下降图(可以中途使用editconf -f file.gro -o file.pdb 进行转换 - 再做hessian还是力700,大了 - 试着11.5w步,进一步下降到0.001 emtol最大力为732,反而之前的最大力为713…… VM1:力 713.357 VM2 828 VM2-1 713.04 VM3 819.37 VM3-1 749.25 VM3-2 731.95 使用dump中途输出一下frequency(看是否可用) gmx dump -f xxx.trr -om xxx.mdp >>xxx.txt 试试用大的计算一下? gmx nmeig nm.mtx
1.2 检查结构