| 可以用用LBFGS算法来算振动分析吗,两百多个原子,fixed了3/4的原子也感觉有点算不出,内存溢出(分析表面吸附) |
stishovite 发表于 2024-5-25 07:58 1 不能 2 对耗时影响甚微,所以Multiwfn默认设得较严 3 SCF收敛限越严,达到收敛所需的SCF圈数越多,耗时越高。而且设得太严可能始终也达不到收敛 从经验上来说,1E-7对于振动分析来说通常够用,如果碰到虚频可以再尝试1E-8。1E-6对于振动分析来说太糙了,对于CP2K这样基于有限差分算Hessian的程序,SCF收敛限太糙不仅出现虚频概率大,而且结果准确度低。 |
本帖最后由 stishovite 于 2024-5-25 08:09 编辑 sobereva 发表于 2024-5-25 04:03 谢谢社长回复,我再细调一下参数对比一下,如果是在不行,那就从硬件下手。 另外,社长,还有几个问题: 1、扩胞时,能否不设整数倍,而是小数倍,例如扩为2.5*1.5*2.5这样,对计算有什么影响吗?2、Multiwfn给出的振动分析输入文件里,EPS_DEFAULT = 1.0E-14,我看有的人设为EPS_DEFAULT = 1.0E-10,这个参数对计算精度和速度的影响是怎样的? 3、Multiwfn给出的振动分析输入文件里,EPS_SCF 1.0E-07,我看有的人设为EPS_SCF 5.0E-06 或 1.0E-06。CP2K官方提到“Vibrations are computed using finite differences, which implies a very tight (e.g. 1E-8) threshold is needed for EPS_SCF to get accurate low frequencies. ” 也就是EPS_SCF 至少得是1.0E-08。同样的,这个参数对计算精度和速度的影响是怎样的? 实在不好意思不断追问社长问题,但还是期待社长的回复。不胜感激。 |
stishovite 发表于 2024-5-24 20:32 QE根本算不动,CP2K算不动的其它程序也别想算得动 ORCA根本不支持周期性体系(支持簇模型,那是另一码事,跟当前无关) 算不动就换更好的机子或者租超算之类 |
本帖最后由 stishovite 于 2024-5-24 20:33 编辑 sobereva 发表于 2024-5-23 04:23 请问sob老师,如果只想获得周期性体系的拉曼光谱,还有哪些计算途径呢?QE、ORCA等等可以吗,不知道计算耗时怎么样? 目前用cp2k跑2*2*2超胞的振动分析实在跑不动了。 |
sobereva 发表于 2024-5-23 04:23 感谢社长的回复。 2*1*2超胞192个原子,计算出来的主峰是486,实验给出来的主峰是520。 我现在扩成2*2*2了,384个原子,正在跑,感觉根本跑不动 ![]() |
stishovite 发表于 2024-5-22 09:03 只有电解质电容爆浆,不存在内存爆浆 16核不要用-np 12 -x OMP_NUM_THREADS=2,应当-np 8 -x OMP_NUM_THREADS=2,二者的乘积不应超过物理核心数 没有实验谱,没法判断相符程度。可以尝试继续扩胞得更大,也注意是否和实验谱的测试条件有可比性 不建议用6-31G*,CP2K用户做opt freq类任务没特殊情况一律用DZVP-MOLOPT-SR-GTH |
本帖最后由 stishovite 于 2024-5-22 08:30 编辑 stishovite 发表于 2024-5-18 10:45 还在计算, 这是当前的out文件, 请大家帮忙分析一下存在什么问题, 以及如何提升效率. |
本帖最后由 stishovite 于 2024-5-18 10:49 编辑 stishovite 发表于 2024-5-16 21:42 向大家及sob老师汇报一下进展: AMD Ryzen9 7950x , DDR5 64G,Ubuntu24.04,CP2K 2024.1。 计算192个原子,其中64个Si,128个O,PBE + 6-311G**,振动分析 用mpirun -np 16 cp2k.popt cp0scv.inp |tee cp0scv,内存爆了 用mpirun -np 6 -x OMP_NUM_THREADS=2 cp2k.psmp cp0scv.inp |tee cp0scv.out, 内存占用60% (40GB),但是感觉算的很慢,9个小时后我终止了任务 用mpirun -np 8 -x OMP_NUM_THREADS=2 cp2k.psmp cp0scv.inp |tee cp0scv.out, 内存占用80% (52GB),现在已经跑了快24个小时,感觉还得很长时间。 我想请教大家,还有没有什么办法可以提升效率,牺牲一点精度也行 ![]() 以下是输入文件中的部分内容:
|
zhuoh 发表于 2024-5-16 20:30 谢谢,现在正在试mpirun -np 6 -x OMP_NUM_THREADS=2 cp2k.psmp cp0scv.inp |tee cp0scv.out 目前内存占用60% (40GB),希望能顺利跑完。 |
本帖最后由 stishovite 于 2024-5-20 08:33 编辑 sobereva 发表于 2024-5-16 20:52 谢谢sob老师,我之前用的命令是mpirun -np 16 cp2k.popt cp0scv.inp |tee cp0scv, 出现“MPI_ABORT was invoked on rank 10 in communicator MPI_COMM_WORLD”之类的错误。如下:
现在正在试mpirun -np 6 -x OMP_NUM_THREADS=2 cp2k.psmp cp0scv.inp |tee cp0scv.out 目前内存占用60% (40GB),希望能顺利跑完。 |
|
说清楚运行命令。out文件也不给,别人都不知道你用了多少MPI进程 最直接节约振动分析耗时的做法就是减少副本数(可以同时结合OpenMP方式并行避免CPU浪费,即恰当使用psmp版) 北京科音CP2K第一性原理计算培训班(http://www.keinsci.com/workshop/KFP_content.html)里我详细讲了
|
| psmp版本下,32核跑了下内存70GB可以成功进入电子步 |
手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图
GMT+8, 2026-2-22 05:41 , Processed in 0.272429 second(s), 25 queries , Gzip On.