计算化学公社

 找回密码 Forget password
 注册 Register

如何提升qe的计算速度?

查看数: 4963 | 评论数: 13 | 收藏 Add to favorites 11
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-9-30 10:13

正文摘要:

各位老师好, 小弟最近因为在尝试VCA方面的计算,因而专门去学习了一下quantum espresso的使用。小弟在使用的时候,发现quantum espresso的计算效率比vasp低了很多。这是小弟的input文件,计算20个原子的Ga2O3体系 ...

回复 Reply

Riku 发表于 Post on 2023-11-18 18:09:01
截断能太大了,一般50Ry就差不多了,截断能越大内存占用越多。Ry与eV的换算可以使用这个网站:https://citizenmaths.com/zh-cn/e ... tronvolts-converter
Shana 发表于 Post on 2023-10-23 16:13:48
卡开发发 发表于 2023-10-5 09:47
额外补充两点:
1、磁矩和迭代参数适当调整。好的初猜和平顺的迭代可能一些能带收敛会较快,那么后面的步 ...

感谢卡老师
卡开发发 发表于 Post on 2023-10-5 09:47:21
额外补充两点:
1、磁矩和迭代参数适当调整。好的初猜和平顺的迭代可能一些能带收敛会较快,那么后面的步骤对角化的速度会逐渐变快。
2、在确保数值稳定的情况,对角化可以使用RMM-Davidson或者RMM-Paro用RMM-DIIS对个别过程进行加速。

万里云 发表于 Post on 2023-10-3 22:28:24
丁越 发表于 2023-10-3 21:27
感谢老师详细解答
我还有个问题请教一下老师,假如NEB计算是在单个节点内进行,那么这个nimage的划 ...

ni指定了同时计算多少个image的受力,单节点多image很可能爆内存。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
丁越 + 5 谢谢

查看全部评分 View all ratings

丁越 发表于 Post on 2023-10-3 21:27:35
本帖最后由 丁越 于 2023-10-3 21:31 编辑
万里云 发表于 2023-10-3 21:03
ni/nk/kb/ntg分别对应image, kpoint, bands和FFT格点并行,这四个参数相乘必需等于申请的总核数。大致规 ...

感谢老师详细解答
我还有个问题请教一下老师,假如NEB计算是在单个节点内进行,那么这个nimage的划分是否是有必要的呢?

另外这句话中"nk/nb/nb"应该是笔误了:
nk/nb/nb相当于KPAR/NPAR/NCORE。nd是scalapack并行时矩阵分块方案


评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
snljty2 + 5 谢谢

查看全部评分 View all ratings

万里云 发表于 Post on 2023-10-3 21:03:00
本帖最后由 万里云 于 2023-10-3 21:04 编辑
丁越 发表于 2023-10-3 20:30
请问一下老师,这个-nimage参数我有点没看明白到底和NEB的插点数目(image)怎么对应联系的?即每个插点 ...

ni/nk/kb/ntg分别对应image, kpoint, bands和FFT格点并行,这四个参数相乘必需等于申请的总核数。大致规律是并行层级越高,跨进程数据交换量越少,内存占用量越大。并行层级越低,数据交换量越大,内存占用越少。但内存占用看峰值,耗时看总和。因此内存占用满足这个规律,耗时不一定满足。

如果是做NEB计算,假设插入6个image,就申请6个节点,同时将ni设置成6。这样每个节点只在算出相应image的受力后才调用一次MPI,数据交换量是最小的。又假设每个节点有32个物理核心,那么nk*nb*nt必需等于32。据个人经验,如果是100原子左右,不可约k点在10以内的体系,用VASP的话1*1*32效率是最高的,也就是KPAR=1, NCORE=32。NPAR会自动设置为1。

如果是静态计算、优化、能带计算等单image计算,假设有4个不可约k点,建议申请4个节点,设置KPAR=4,NCORE=32,即每个节点负责一部分k点,节点内禁用band并行,所有的核都用来作FFT并行。

以上是在双路6326 CPU/256GB内存/IB互联集群上测试的结果。QE的并行方案可能和VASP有很大区别,以上经验很可能不适用,因此要多做测试。磨刀不误砍柴工,参数选得好,相比于最差的情形能节省三分之一的时间。
丁越 发表于 Post on 2023-10-3 20:30:42
万里云 发表于 2023-9-30 10:38
输入文件中用了80Ry的动能截断,相当于1000多eV,又是Ga和O这样的主族元素,如果是PAW势,精度很高了。VASP ...


请问一下老师,这个-nimage参数我有点没看明白到底和NEB的插点数目(image)怎么对应联系的?即每个插点结构用多少个核心并行和这个参数是怎么一个对应关系。我看后面几个参数要优化的时候还必须要知道FFT格点,KS states 的数目等等才能估计,还挺麻烦的,不知道老师有什么简易的优化策略?
万里云 发表于 Post on 2023-10-1 20:25:51
MPI+OpenMP混合并行效率一般是比不过纯MPI的。MPI是进程级并行,内存占用大,为了不爆内存,进程数有时候要小于物理核心数。为了不浪费剩下的核心,就通过OpenMP进行线程级并行。
gog 发表于 Post on 2023-10-1 07:07:50
也和编译有关
元无虚空 发表于 Post on 2023-9-30 14:16:56
ahxb 发表于 2023-9-30 13:44
qe可以用OpenMP并行,也能用MPI并行,具体是否支持和怎么编译有关。如果原先使用全MPI并行,可以考虑设置Op ...

要达到最高运行效率,需要合理搭配openmp+mpi杂化并行
ahxb 发表于 Post on 2023-9-30 13:44:45
qe可以用OpenMP并行,也能用MPI并行,具体是否支持和怎么编译有关。如果原先使用全MPI并行,可以考虑设置OpenMP并行核数,能适当加快计算时间,一般也会节约一些内存。
Shana 发表于 Post on 2023-9-30 10:56:58
万里云 发表于 2023-9-30 10:38
输入文件中用了80Ry的动能截断,相当于1000多eV,又是Ga和O这样的主族元素。如果是PAW势,精度很高了。VASP ...

多谢老师,解释的非常清楚。感谢老师指导。
万里云 发表于 Post on 2023-9-30 10:38:21
本帖最后由 万里云 于 2023-10-3 22:26 编辑

输入文件中用了80Ry的动能截断,相当于1000多eV,又是Ga和O这样的主族元素,如果是PAW势,精度很高了。VASP的ENCUT要设置成同样的值才能做比较。

无论VASP还是QE,只要是采用平面波基组的程序,做变体积的变胞优化时都会遇到Pulay应力的问题。解决办法有两个:加大动能截断,或者做定体积变胞再手动拟合状态方程。因此可以把动能截断砍掉一些,然后定体积变胞。

再就是调节QE的并行参数。这些参数不是写在输入文件里面,而是在命令行指定,记得有-ni -nk -nb -nt -nd几个。ni是对image并行,只在NEB计算时才有意义。nk/nb/nt相当于KPAR/NPAR/NCORE。nd是scalapack并行时矩阵分块方案,貌似vasp中没开放这个参数。具体要做测试。

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

GMT+8, 2026-2-20 17:53 , Processed in 0.202766 second(s), 32 queries , Gzip On.

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