计算化学公社

标题: 请问该如何限制CP2K的内存呢? [打印本页]

作者
Author:
玉米猫    时间: 2022-4-27 00:09
标题: 请问该如何限制CP2K的内存呢?
各位老师好,我最近遇到一个问题。CP2K提交任务后,全部CPU都满负荷工作,计算很顺利,但随着运行,可用内存逐渐减小,最后kswapd进程启动,CPU负荷急剧下降,速度变得很慢(每步迭代从10s增加到了500s),但是没有出现报错。通过查找资料,发现可能是IntelMPI的问题,有人换了MPI后重新编译使问题得到了解决。我想问一下各位老师,有没有通过更改输入文件的方式来限制CP2K内存使用从而解决这个问题的方法呢?

作者
Author:
sobereva    时间: 2022-4-27 05:33
CP2K输入文件里没法设置
不一定是Intel MPI的问题,可能本来任务中途就是占用内存大,当然怀疑的话也可以改用OpenMPI试试

作者
Author:
abin    时间: 2022-4-27 10:11
如果是cp2k 7.1
搭配intel2018u4u5,
可以规避内存爆浆的问题。
注意,是采用intel工具链编译所有组件。

其他版本未知。

如果使用其他版本编译器,
请勿使用xHost -O3,
要使用value safe之类的优化,比如-O2 之类。
作者
Author:
m1racle    时间: 2025-12-8 00:39
sobereva 发表于 2022-4-27 05:33
CP2K输入文件里没法设置
不一定是Intel MPI的问题,可能本来任务中途就是占用内存大,当然怀疑的话也可以 ...

老师好,我今天遇到了同样的问题,我使用的是VM虚拟机,rocky9.7,24G内存,20核,cp2k-2025.2,我的解决办法是export OMP_NUM_THREADS=4(小一点),原先是16出现的问题,降为8会多跑几个,然后我调成4就跑完了,虽然说我不清楚原理是什么,并且这个数调小后不会显著增加计算时间,想问一下原理是什么,谢谢老师
作者
Author:
sobereva    时间: 2025-12-8 01:14
m1racle 发表于 2025-12-8 00:39
老师好,我今天遇到了同样的问题,我使用的是VM虚拟机,rocky9.7,24G内存,20核,cp2k-2025.2,我的解决 ...

需要交代物理核心数、总物理内存、CP2K的版本(psmp或ssmp等)、当前MPI并行进程数、副本数、跑的任务
作者
Author:
m1racle    时间: 2025-12-8 15:35
sobereva 发表于 2025-12-8 01:14
需要交代物理核心数、总物理内存、CP2K的版本(psmp或ssmp等)、当前MPI并行进程数、副本数、跑的任务

物理核心20,物理内存32g,cp2k-2025.2(ssmp),抱歉不太懂当前MPI进程数和副本数怎么查看(任务已经结束了)。做的MOF的opt,使用Multiwfn生成的输入文件,选择的是晶胞尺寸不变的优化结构,其他均未修改,基组手动修改的DZVP-MOLOPT-SR-GTH
作者
Author:
Uus/pMeC6H4-/キ    时间: 2025-12-8 15:58
本帖最后由 Uus/pMeC6H4-/キ 于 2025-12-8 16:02 编辑
m1racle 发表于 2025-12-8 15:35
物理核心20,物理内存32g,cp2k-2025.2(ssmp),抱歉不太懂当前MPI进程数和副本数怎么查看(任务已经结束了 ...

几何优化任务是单个副本的(不像CI-NEB、振动分析等任务那样分多个副本),而ssmp版本来就是单MPI进程、纯粹OpenMP多线程并行的。这个ssmp版是官方预编译的还是自己在虚拟机内编译的,如果是后者的话那用了什么编译器和MPI来编译?MOF有多少原子、盒子尺寸多大?

20个物理核心、32 G物理内存是宿主机的全部配置,还是VMware里分配给虚拟机的部分?在虚拟机的linux系统里从 lscpu 指令输出找Thread(s) per core和Core(s) per socket,以及从 free -h 指令输出找total列Mem行,可以确认虚拟机实际识别到的部分(而能分配给CP2K计算的不能超过这些上限)。

(编辑:另外,这该不会是Intel大小核的笔记本吧,可以讲讲CPU型号)
作者
Author:
m1racle    时间: 2025-12-8 16:51
Uus/pMeC6H4-/キ 发表于 2025-12-8 15:58
几何优化任务是单个副本的(不像CI-NEB、振动分析等任务那样分多个副本),而ssmp版本来就是单MPI进程、 ...

cp2k安装和编译方式完全按照sob老师的博文(http://sobereva.com/586)安装编译(toolchain)的,单个晶胞424个原子,盒子和晶胞同大小。
20个物理核心和32G是宿主机配置,虚拟机配置为20核,24GB内存,cpu是AMD AI 365




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