计算化学公社
标题:
cp2k使用杂化泛函计算较大二维体系能带时该如何控制内存使用量?
[打印本页]
作者Author:
h2ospume
时间:
2024-6-17 16:58
标题:
cp2k使用杂化泛函计算较大二维体系能带时该如何控制内存使用量?
各位老师好!本人是今年刚参加完
第三届培训
开始学习cp2k的小白。
目前在使用cp2k计算Ca原子内嵌金属富勒烯的二维聚合物(Ca@C60)的能带时总是遇到内存不足的问题,想知道如何才能控制内存使用量。
情况为每次计算均在SCF WAVEFUNCTION OPTIMIZATION第一步处内存不足终止
计算使用的是学校的集群,单节点有64核,内存有512G,采用slurm调度系统和module,相关软件版本为:openmpi/4.1.5-gcc_13.1.0,singularity/3.11.1,intel-oneapi-mpi/2021.9.0,gcc/13.1.0。
输入文件见附件,由multiwfn( Version 3.8(dev), release date: 2024-Apr-17)生成。计算过程中内存使用的曲线,sbatch命令及晶胞结构如图。一个晶胞中包含两个Ca@C60,共计122个原子。
我首先使用PBE进行了计算,非常顺利。将生成的.kp文件作为初猜,再使用HSE06+ADMM+RI-HFX进行计算,开启了smearing,k点为1,2,1.
最初我使用的是官方docker镜像配合学校集群上的singularity进行的计算,在出现内存不足的情况下进行了如下尝试:
1.认为是内存溢出导致的,重新使用toolchain+openmpi的方式编译了cp2k,无效。
2.转为使用intelmpi编译,在集群上不能正常运行,遂放弃。
3.调整mpirun -np参数以及OMP_NUM_THREADS参数,分别尝试了只使用64核中的32核,20核甚至3核,即-np后设为相应数字,对内存占用毫无影响,依旧内存不足程序终止,只是计算速度会变慢。
4.修改输入文本,写入
&MEMORY
MAX_MEMORY 3000
&END MEMORY
无论MAX_MEMORY后数值如何均无效。
5.尝试了PBE0,也会内存不足。
6.分别换用了popt,psmp和ssmp版,均无效。
7.使用培训提供的例子(hBN)进行计算,一切正常。
作者Author:
sobereva
时间:
2024-6-18 02:26
RI-HFX(具体来说是RI-HFXk)算这个绝对没戏。一般计算条件下只能算晶胞里有个位数原子的情况,否则又不算不动内存又肯定不够
RI-HFXk生来就是专用于算晶胞里原子很少结合很多k点的情况的。这一点我在北京科音CP2K第一性原理计算培训班(
http://www.keinsci.com/workshop/KFP_content.html
)里明确讲了:
(, 下载次数 Times of downloads: 3)
上传 Uploaded
点击下载Click to download
这个体系目前CP2K只能推荐用HLE17纯泛函算能带。虽然扩胞后用gamma点做杂化泛函计算然后反折叠原理上可行,但目前没有结合CP2K做反折叠的程序。
作者Author:
h2ospume
时间:
2024-6-18 09:03
sobereva 发表于 2024-6-18 02:26
RI-HFX(具体来说是RI-HFXk)算这个绝对没戏。一般计算条件下只能算晶胞里有个位数原子的情况,否则又不算 ...
好的,谢谢sob老师!
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3