计算化学公社

标题: 求助:cp2k计算过程中总是报错“内存不足”? [打印本页]

作者
Author:
liheng    时间: 2023-3-15 23:49
标题: 求助:cp2k计算过程中总是报错“内存不足”?
本帖最后由 liheng 于 2023-3-15 23:50 编辑

各位老师好,
       我在跑cp2k的过程中遇到了严重的内存问题。用36核跑一个能量计算的任务,分配给每个cpu 6G的内存,也就是总共216G的内存。跑一个仅仅80个原子的任务,任务跑到中途就死掉了,然后提示内存不足,我不明白为什么会这样?虽然我用了k点 (5*5*1),也知道k点吃内存。但这似乎还是有点夸张,因为根据vasp的使用经验我认为自己的k点密度都已经很小了,毕竟我的cell 大约是(6*6*50埃)这样的尺寸。根据大师兄的说法这种情况下k点要(8*8*1)才够。可是我才(5*5*1)就不行了。请各位老师给出一点建议或方向?
以下是任务输入文件和slurm脚本

作者
Author:
sobereva    时间: 2023-3-15 23:58
二维周期性体系不要用PSOLVER ANALYTIC,要用MT。不要用太老的Multiwfn产生CP2K输入文件
CUTOFF完全没必要那么大
你的体系6*6*1 k点基本够了
slurm我不清楚,从CP2K的角度来说“分配给每个cpu 6G的内存”对于纯泛函计算是没法实现的。CP2K对纯泛函算单点没有控制内存使用量的关键词

你的输入文件在我机子上81核并行用cp2k.popt算,耗内存最多时候总共也只不过50GB左右而已。

作者
Author:
liheng    时间: 2023-3-16 00:02
本帖最后由 liheng 于 2023-3-16 00:12 编辑
sobereva 发表于 2023-3-15 23:58
二维周期性体系不要用PSOLVER ANALYTIC,要用MT。不要用太老的Multiwfn产生CP2K输入文件
CUTOFF完全没必要 ...

我用的是3.8 (dev)版本的Multiwfn;
我用CUTOFF 350 也报错;
您觉得有没有可能是cp2k编译或者intel_mpi有问题呢?因为实际内存占用确实很高。这个slurm脚本中,#SBATCH --mem-per-cpu=6G 表示本次任务最多分配的内存就是这么多(乘以相应的核数)。
而cp2k 在每一步结构优化会有这个:Estimated peak process memory after this step [MiB]                        6366 (这是之前跑结构优化的输出结果,用的是4*4*1)
而用(5*5*1)或者更高的密度的k点后,这个Estimated peak process memory会更高,甚至到10G左右,也就是我一个这样小的任务,用36核跑,他就要吃360G的内存。


作者
Author:
sobereva    时间: 2023-3-16 00:27
liheng 发表于 2023-3-16 00:02
我用的是3.8 (dev)版本的Multiwfn;
我用CUTOFF 350 也报错;
您觉得有没有可能是cp2k编译或者intel_m ...

slurm的事我不清楚,纯泛函算能量或者受力能占360GB内存肯定是没正常运行。k点、CUTOFF都是题外话。可能编译有问题,也可能运行方式有问题。若无特殊情况,建议用OpenMPI。并且注意编译用的MPI和运行用的MPI必须一致。
作者
Author:
anson    时间: 2023-3-16 00:36
扔36核机器上没爆内存,也就48G/128G。k点放大到6×6×1占到了70G,依然没爆。
合理怀疑是slurm或者intelmpi的锅
作者
Author:
liheng    时间: 2023-3-16 00:41
anson 发表于 2023-3-16 00:36
扔36核机器上没爆内存,也就48G/128G。k点放大到6×6×1占到了70G,依然没爆。
合理怀疑是slurm或者intelm ...

好的,谢谢。我先试下
作者
Author:
liheng    时间: 2023-3-16 00:42
sobereva 发表于 2023-3-16 00:27
slurm的事我不清楚,纯泛函算能量或者受力能占360GB内存肯定是没正常运行。k点、CUTOFF都是题外话。可能 ...

谢谢老师,我下去再试一下
作者
Author:
reid    时间: 2023-3-16 23:20
http://bbs.keinsci.com/thread-21608-1-1.html  按照sob老师这个帖子装。原先用个人电脑算,只有使用PBE0或者算频率时才碰到过内存不足。其它时候还没碰到过。
作者
Author:
liheng    时间: 2023-3-20 16:32
reid 发表于 2023-3-16 23:20
http://bbs.keinsci.com/thread-21608-1-1.html  按照sob老师这个帖子装。原先用个人电脑算,只有使用PBE0 ...

我用cp2k-8.1跑了下没有问题。应该是我cp2k-9.1装得有问题
作者
Author:
liheng    时间: 2023-3-20 22:52
本帖最后由 liheng 于 2023-3-20 22:56 编辑
sobereva 发表于 2023-3-15 23:58
二维周期性体系不要用PSOLVER ANALYTIC,要用MT。不要用太老的Multiwfn产生CP2K输入文件
CUTOFF完全没必要 ...

sob老师,我按照您说的“二维周期体系不用PSOLVER ANALYTIC,要用MT”,可是cp2k-9.1(以及cp2k-8.1,都测试了)会报错啊。错误:Index to radix array not found. 我用新旧Multiwfn分别生成了输入文件,新的会报错旧的不会。于是我控制变量把每一个不同都试了,最后发现是”MT“会报错。顺便再问一下,新的Multiwfn生成的二维周期体系输入文件的真空层是不是太大了,比如我一个5nm左右的例子,其真空层就有5~6nm,整个cell在Z方向有11nm

作者
Author:
sobereva    时间: 2023-3-21 02:48
liheng 发表于 2023-3-20 22:52
sob老师,我按照您说的“二维周期体系不用PSOLVER ANALYTIC,要用MT”,可是cp2k-9.1(以及cp2k-8.1,都 ...

了解点MT的基本常识就知道用对你当前的体系MT必须有那么大的真空区,Multiwfn每个设置都有非常精心考量。分清楚nm和埃
别光说什么报错不报错,连个输入文件都不给,完全是毫无意义的提问。别以为不报错就代表合理。你倘若参加北京科音CP2K培训班系统性学学就知道analytic随真空区厚度的收敛性远远不如MT,所以analytic绝对不应当使用

作者
Author:
liheng    时间: 2023-3-21 14:39
sobereva 发表于 2023-3-21 02:48
了解点MT的基本常识就知道用对你当前的体系MT必须有那么大的真空区,Multiwfn每个设置都有非常精心考量。 ...

不好意思sob老师,我搞错了。不关MT的事,似乎是因为我的体系太大了,需要在在脚本的&GLOBAL中加上:EXTRAPOLATION LINEAR_P T (https://manual.cp2k.org/cp2k-9_1 ... XTENDED_FFT_LENGTHS),加上之后就没事了.以下是Multiwfn生成的input文件

作者
Author:
sobereva    时间: 2023-3-21 23:51
liheng 发表于 2023-3-21 14:39
不好意思sob老师,我搞错了。不关MT的事,似乎是因为我的体系太大了,需要在在脚本的&GLOBAL ...

EXTRAPOLATION LINEAR_P T不在你提到的页面里
如果你确实需要计算这么厚的slab,PSOLVER应当用periodic,真空区可以小得多,速度也快得多。MT最适合较薄的slab,由于MT有非周期性方向盒子尺寸需要达到体系有电子密度分布的跨度的>=两倍的强制要求,因此用于很厚的slab很吃亏。

作者
Author:
liheng    时间: 2023-3-22 16:09
sobereva 发表于 2023-3-21 23:51
EXTRAPOLATION LINEAR_P T不在你提到的页面里
如果你确实需要计算这么厚的slab,PSOLVER应当用periodic ...

所以您的建议是对我这种很厚的slab的情况还是使用XYZ(3D)周期性对吧,因为我看periodic只适用3D系统
作者
Author:
sobereva    时间: 2023-3-23 01:54
liheng 发表于 2023-3-22 16:09
所以您的建议是对我这种很厚的slab的情况还是使用XYZ(3D)周期性对吧,因为我看periodic只适用3D系统



并不存在“periodic只适用3D系统”这种说法。虽然MT大多数情况下是更好的选择,但不代表periodic就不适合,而且有表面偶极而在使用periodic时需要很大真空层才能达到收敛的情况还可以用偶极校正避免此问题
作者
Author:
chemistryMaga    时间: 2024-8-3 21:00
相同的情况,请问最后楼主使用8.1的版本解决内存占用问题了吗?
作者
Author:
neocc    时间: 2024-9-9 13:07
liheng 发表于 2023-3-21 14:39
不好意思sob老师,我搞错了。不关MT的事,似乎是因为我的体系太大了,需要在在脚本的&GLOBAL ...

EXTENDED_FFT_LENGTHS
在GLOBAL里面加入这个倒是可以解决报错问题,但是对避免爆内存好像没有效果




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3