计算化学公社

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

[CP2K] 求助:内存不足导致CP2K振动分析失败

[复制链接 Copy URL]

44

帖子

0

威望

310

eV
积分
354

Level 3 能力者

本帖最后由 stishovite 于 2024-5-20 08:33 编辑

大家好,我刚开始学习第一性原理计算,最近学会了编译cp2k,跑了一些结构优化和能量计算的任务,还算顺利。
但是进行振动分析时,总是失败。刚开始以为是cp2k编译的问题,折腾了几天后发现,是内存不足导致的。

CPU: AMD Ryzen9 7950x 16核心32线程 + 内存: DDR5  32G*2  + 固态:500G,系统是全新安装的Ubuntu24.04,CP2K 是2024.1版。
计算体系包括192个原子,其中有64个Si,128个O,泛函PBE,基组6-311G**,用Multiwfn3.8(dev)将优化结果转为振动分析输入文件,见附件。

以下是几个我能想到的可能的解决方案:

1、优化输入文件,在合理范围内牺牲计算精度。(我现在的水平不知道如何设置)
或2、优化任务提交。(好像在哪看到过给每个核心分配可用最大内存)
或3、再增加两根内存32G*2,总共达到128G。(不知道能否满足内存消耗)
或4、重新购置一套工作站E5-2696v4*2,DDR4 256G 内存,1T固态。(有点小贵,但估计内存是够用了,不清楚跑200个原子的振动分析效率如何)
或5、转投其他程序。(不知道是否以及哪个可行)

或其他方案?

请大家帮我出出主意,如何解决这个问题。

cp0scv.inp (14.22 KB, 下载次数 Times of downloads: 16)

11

帖子

0

威望

270

eV
积分
281

Level 3 能力者

2#
发表于 Post on 2024-5-16 20:30:43 | 只看该作者 Only view this author
psmp版本下,32核跑了下内存70GB可以成功进入电子步

6万

帖子

99

威望

6万

eV
积分
125141

管理员

公社社长

3#
发表于 Post on 2024-5-16 20:52:20 | 只看该作者 Only view this author
说清楚运行命令。out文件也不给,别人都不知道你用了多少MPI进程
最直接节约振动分析耗时的做法就是减少副本数(可以同时结合OpenMP方式并行避免CPU浪费,即恰当使用psmp版)

北京科音CP2K第一性原理计算培训班(http://www.keinsci.com/workshop/KFP_content.html)里我详细讲了

北京科音自然科学研究中心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

44

帖子

0

威望

310

eV
积分
354

Level 3 能力者

4#
 楼主 Author| 发表于 Post on 2024-5-16 21:42:55 | 只看该作者 Only view this author
本帖最后由 stishovite 于 2024-5-20 08:33 编辑
sobereva 发表于 2024-5-16 20:52
说清楚运行命令。out文件也不给,别人都不知道你用了多少MPI进程
最直接节约振动分析耗时的做法就是减少副 ...

谢谢sob老师,我之前用的命令是mpirun -np 16 cp2k.popt cp0scv.inp |tee cp0scv,
出现“MPI_ABORT was invoked on rank 10 in communicator MPI_COMM_WORLD”之类的错误。如下:

  1. REPLICA| layout of the replica grid, number of groups                        16
  2. REPLICA| layout of the replica grid, size of each group                       1
  3. REPLICA| MPI process to grid (group,rank) correspondence:
  4.   (   0 :    0,   0)  (   1 :    1,   0)  (   2 :    2,   0)  (   3 :    3,   0)
  5.   (   4 :    4,   0)  (   5 :    5,   0)  (   6 :    6,   0)  (   7 :    7,   0)
  6.   (   8 :    8,   0)  (   9 :    9,   0)  (  10 :   10,   0)  (  11 :   11,   0)
  7.   (  12 :   12,   0)  (  13 :   13,   0)  (  14 :   14,   0)  (  15 :   15,   0)
  8. --------------------------------------------------------------------------
  9. MPI_ABORT was invoked on rank 10 in communicator MPI_COMM_WORLD
  10.   Proc: [[33611,1],10]
  11.   Errorcode: 1

  12. NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
  13. You may or may not see output from other processes, depending on
  14. exactly when Open MPI kills them.
  15. --------------------------------------------------------------------------
  16. --------------------------------------------------------------------------
  17. prterun has exited due to process rank 10 with PID 0 on node HPC calling
  18. "abort". This may have caused other processes in the application to be
  19. terminated by signals sent by prterun (as reported here).
复制代码

现在正在试mpirun -np 6 -x OMP_NUM_THREADS=2 cp2k.psmp cp0scv.inp |tee cp0scv.out
目前内存占用60% (40GB),希望能顺利跑完。



44

帖子

0

威望

310

eV
积分
354

Level 3 能力者

5#
 楼主 Author| 发表于 Post on 2024-5-16 21:43:30 | 只看该作者 Only view this author
zhuoh 发表于 2024-5-16 20:30
psmp版本下,32核跑了下内存70GB可以成功进入电子步


谢谢,现在正在试mpirun -np 6 -x OMP_NUM_THREADS=2 cp2k.psmp cp0scv.inp |tee cp0scv.out
目前内存占用60% (40GB),希望能顺利跑完。

44

帖子

0

威望

310

eV
积分
354

Level 3 能力者

6#
 楼主 Author| 发表于 Post on 2024-5-18 10:45:51 | 只看该作者 Only view this author
本帖最后由 stishovite 于 2024-5-18 10:49 编辑
stishovite 发表于 2024-5-16 21:42
谢谢sob老师,我之前用的命令是mpirun -np 16 cp2k.popt cp0scv.inp |tee cp0scv,出现“MPI_ABORT was i ...

向大家及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个小时,感觉还得很长时间。


我想请教大家,还有没有什么办法可以提升效率,牺牲一点精度也行
以下是输入文件中的部分内容:

  1. &KIND Si
  2.       ELEMENT Si
  3.       BASIS_SET 6-311G**
  4.       POTENTIAL ALL
  5.     &END KIND
  6.     &KIND O
  7.       ELEMENT O
  8.       BASIS_SET 6-311G**
  9.       POTENTIAL ALL
  10.     &END KIND
  11.   &END SUBSYS

  12.   &DFT
  13.     BASIS_SET_FILE_NAME  EMSL_BASIS_SETS
  14.     POTENTIAL_FILE_NAME  POTENTIAL
  15. #   WFN_RESTART_FILE_NAME cp0scv-RESTART.wfn
  16.     CHARGE    0 #Net charge
  17.     MULTIPLICITY    1 #Spin multiplicity
  18.     &QS
  19.       EPS_DEFAULT 1.0E-14 #Set all EPS_xxx to values such that the energy will be correct up to this value
  20.       METHOD GAPW
  21.     &END QS
  22.     &POISSON
  23.       PERIODIC XYZ #Direction(s) of PBC for calculating electrostatics
  24.       PSOLVER PERIODIC #The way to solve Poisson equation
  25.     &END POISSON
  26.     &XC
  27.       &XC_FUNCTIONAL PBE
  28.       &END XC_FUNCTIONAL
  29.     &END XC
  30.     &MGRID
  31.       CUTOFF  400
  32.       REL_CUTOFF  55
  33.     &END MGRID
  34.     &SCF
  35.       MAX_SCF 128
  36.       EPS_SCF 1.0E-07 #Convergence threshold of density matrix of inner SCF
  37. #     SCF_GUESS RESTART #Use wavefunction from WFN_RESTART_FILE_NAME file as initial guess
  38. #     IGNORE_CONVERGENCE_FAILURE #Continue calculation even if SCF not converged, works for version >= 2024.1
  39.       &DIAGONALIZATION
  40.         ALGORITHM STANDARD #Algorithm for diagonalization
  41.       &END DIAGONALIZATION
  42.       &MIXING #How to mix old and new density matrices
  43.         METHOD BROYDEN_MIXING #PULAY_MIXING is also a good alternative
  44.         ALPHA 0.4 #Default. Mixing 40% of new density matrix with the old one
  45.         NBROYDEN 8 #Default is 4. Number of previous steps stored for the actual mixing scheme
  46.       &END MIXING
  47.       &PRINT
  48.         &RESTART OFF #Do not generate wfn file to suppress meaningless I/O cost
  49.         &END RESTART
  50.       &END PRINT
  51.     &END SCF
  52.     &PRINT
  53.       &MOMENTS
  54.         PERIODIC T #Use Berry phase formula (T) or simple operator (F), the latter normally applies to isolated systems
  55.       &END MOMENTS
  56.     &END PRINT
  57.   &END DFT
  58.   &PROPERTIES
  59.     &LINRES #Activate linear response calculation
  60.       PRECONDITIONER FULL_ALL #Preconditioner for conjugate gradient minimization
  61.       EPS 1E-6 #Target accuracy for the convergence of the conjugate gradient
  62.       &POLAR
  63.         DO_RAMAN T #Compute the electric-dipole--electric-dipole polarizability
  64.         PERIODIC_DIPOLE_OPERATOR T #Type of dipole operator: Berry phase(T) or Local(F)
  65.       &END POLAR
  66.     &END LINRES
  67.   &END PROPERTIES
  68. &END FORCE_EVAL

  69. &MOTION
  70.   &PRINT
  71.     &RESTART
  72.       BACKUP_COPIES 0 #Maximum number of backing up restart file, 0 means never
  73.     &END RESTART
  74.   &END PRINT
  75. &END MOTION
  76. &VIBRATIONAL_ANALYSIS
  77.   DX 0.01 #Step size of finite difference. This is default (Bohr)
  78.   NPROC_REP 1 #Number of processors to be used per replica. This is default
  79.   TC_PRESSURE 0 #1 atm. Pressure for calculate thermodynamic data (Pa)
  80.   TC_TEMPERATURE 298.15 #Temperature for calculate thermodynamic data (K)
  81.   THERMOCHEMISTRY #Print thermochemistry information (only valid for isolated systems)
  82.   INTENSITIES T #Calculate IR/Raman intensities
  83.   FULLY_PERIODIC T #Avoiding to project out rotation component from Hessian matrix
  84.   &PRINT
  85.     &MOLDEN_VIB #Output .mol (Molden file) for visualizing vibrational modes
  86.     &END MOLDEN_VIB
  87.   &END PRINT
  88. &END VIBRATIONAL_ANALYSIS
复制代码


44

帖子

0

威望

310

eV
积分
354

Level 3 能力者

7#
 楼主 Author| 发表于 Post on 2024-5-18 18:11:48 | 只看该作者 Only view this author
本帖最后由 stishovite 于 2024-5-22 08:30 编辑
stishovite 发表于 2024-5-18 10:45
向大家及sob老师汇报一下进展:

AMD Ryzen9 7950x , DDR5  64G,Ubuntu24.04,CP2K 2024.1。

还在计算, 这是当前的out文件, 请大家帮忙分析一下存在什么问题, 以及如何提升效率.

44

帖子

0

威望

310

eV
积分
354

Level 3 能力者

8#
 楼主 Author| 发表于 Post on 2024-5-22 09:03:59 | 只看该作者 Only view this author
本帖最后由 stishovite 于 2024-5-22 09:39 编辑
sobereva 发表于 2024-5-16 20:52
说清楚运行命令。out文件也不给,别人都不知道你用了多少MPI进程
最直接节约振动分析耗时的做法就是减少副 ...

向sob老师及各位坛友汇报进展,并请教问题:

AMD 7950x 16核,DDR5  64G内存,Ubuntu24.04,CP2K2024.1。
做2*1*2超胞共192个原子的振动分析,之前用mpirun -np 16 cp2k.popt cp3VV.inp |tee cp3VV.out,内存爆浆

经过sob老师的指点,最终用下面的命令跑成功,全程内存占用96%左右,耗时16小时。
mpirun -np 12 -x OMP_NUM_THREADS=2 cp3k.psmp cp3VV.inp |tee cp2VV.out

附上输入和输出文件。 cp3VV.inp (14.51 KB, 下载次数 Times of downloads: 9) cp3VV.out.zip (7.06 MB, 下载次数 Times of downloads: 6)

然后用Multiwfn很顺利做出了拉曼光谱,但是发现和实验结果不符。
按照sob老师之前向其他坛友的回复,可能是由于晶胞尺寸较小导致的。
目前我这个2*1*2超胞的尺寸是14*12*14,是否还是不够大?或者是我的输入文件有问题?




另外让我头疼的是,如果还需要继续扩胞,那么计算耗时又得大幅增加。我初步的想法是,合理牺牲精度,但这个技术活对我这个新手来说难以拿捏。


请大家帮我看看输入文件,还有什么好办法进行优化,还望不吝赐教。


6万

帖子

99

威望

6万

eV
积分
125141

管理员

公社社长

9#
发表于 Post on 2024-5-23 04:23:34 | 只看该作者 Only view this author
stishovite 发表于 2024-5-22 09:03
向sob老师及各位坛友汇报进展,并请教问题:

AMD 7950x 16核,DDR5  64G内存 ...

只有电解质电容爆浆,不存在内存爆浆

16核不要用-np 12 -x OMP_NUM_THREADS=2,应当-np 8 -x OMP_NUM_THREADS=2,二者的乘积不应超过物理核心数

没有实验谱,没法判断相符程度。可以尝试继续扩胞得更大,也注意是否和实验谱的测试条件有可比性

不建议用6-31G*,CP2K用户做opt freq类任务没特殊情况一律用DZVP-MOLOPT-SR-GTH
北京科音自然科学研究中心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

44

帖子

0

威望

310

eV
积分
354

Level 3 能力者

10#
 楼主 Author| 发表于 Post on 2024-5-24 17:51:24 | 只看该作者 Only view this author
sobereva 发表于 2024-5-23 04:23
只有电解质电容爆浆,不存在内存爆浆

16核不要用-np 12 -x OMP_NUM_THREADS=2,应当-np 8 -x OMP_NUM_ ...

感谢社长的回复。

2*1*2超胞192个原子,计算出来的主峰是486,实验给出来的主峰是520。

我现在扩成2*2*2了,384个原子,正在跑,感觉根本跑不动

44

帖子

0

威望

310

eV
积分
354

Level 3 能力者

11#
 楼主 Author| 发表于 Post on 2024-5-24 20:32:26 | 只看该作者 Only view this author
本帖最后由 stishovite 于 2024-5-24 20:33 编辑
sobereva 发表于 2024-5-23 04:23
只有电解质电容爆浆,不存在内存爆浆

16核不要用-np 12 -x OMP_NUM_THREADS=2,应当-np 8 -x OMP_NUM_ ...

请问sob老师,如果只想获得周期性体系的拉曼光谱,还有哪些计算途径呢?QE、ORCA等等可以吗,不知道计算耗时怎么样?

目前用cp2k跑2*2*2超胞的振动分析实在跑不动了。

6万

帖子

99

威望

6万

eV
积分
125141

管理员

公社社长

12#
发表于 Post on 2024-5-25 04:03:05 | 只看该作者 Only view this author
stishovite 发表于 2024-5-24 20:32
请问sob老师,如果只想获得周期性体系的拉曼光谱,还有哪些计算途径呢?QE、ORCA等等可以吗,不知道计算 ...

QE根本算不动,CP2K算不动的其它程序也别想算得动
ORCA根本不支持周期性体系(支持簇模型,那是另一码事,跟当前无关)
算不动就换更好的机子或者租超算之类
北京科音自然科学研究中心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

44

帖子

0

威望

310

eV
积分
354

Level 3 能力者

13#
 楼主 Author| 发表于 Post on 2024-5-25 07:58:10 | 只看该作者 Only view this author
本帖最后由 stishovite 于 2024-5-25 08:09 编辑
sobereva 发表于 2024-5-25 04:03
QE根本算不动,CP2K算不动的其它程序也别想算得动
ORCA根本不支持周期性体系(支持簇模型,那是另一码事 ...


谢谢社长回复,我再细调一下参数对比一下,如果是在不行,那就从硬件下手。
另外,社长,还有几个问题:
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。同样的,这个参数对计算精度和速度的影响是怎样的?



实在不好意思不断追问社长问题,但还是期待社长的回复。不胜感激。

6万

帖子

99

威望

6万

eV
积分
125141

管理员

公社社长

14#
发表于 Post on 2024-5-25 09:35:11 | 只看该作者 Only view this author
stishovite 发表于 2024-5-25 07:58
谢谢社长回复,我再细调一下参数对比一下,如果是在不行,那就从硬件下手。
另外,社长,还有几个问题 ...

1 不能

2 对耗时影响甚微,所以Multiwfn默认设得较严

3 SCF收敛限越严,达到收敛所需的SCF圈数越多,耗时越高。而且设得太严可能始终也达不到收敛
从经验上来说,1E-7对于振动分析来说通常够用,如果碰到虚频可以再尝试1E-8。1E-6对于振动分析来说太糙了,对于CP2K这样基于有限差分算Hessian的程序,SCF收敛限太糙不仅出现虚频概率大,而且结果准确度低。
北京科音自然科学研究中心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

15

帖子

0

威望

236

eV
积分
251

Level 3 能力者

15#
发表于 Post on 2024-10-1 09:28:38 | 只看该作者 Only view this author
可以用用LBFGS算法来算振动分析吗,两百多个原子,fixed了3/4的原子也感觉有点算不出,内存溢出(分析表面吸附)

本版积分规则 Credits rule

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

GMT+8, 2026-2-22 07:10 , Processed in 0.187820 second(s), 23 queries , Gzip On.

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