第2个版本的cp2k跑杂化泛函能正常跑下去,但会比intel版本慢50%以上(但跑其他泛函速度非常接近)。我的任务是:包含64个水分子的体系,NVT平衡MD,10000step。计算设置:revPBE0+D3,DZVP-MOLOPT-SR-GTH基组,admm-dzp辅助基组(使用ADMM),使用OT。输入文件如下:
(, 下载次数 Times of downloads: 16)
上传 Uploaded
点击下载Click to download
计算速度:Intel-cp2k:稳定后速度13.4s/step;GCC(8.5.0)-cp2k:稳定后速度20.3s/step
并且还观察到就算除去内存泄漏,intel版本使用的内存也会远高于gcc版本。intel版本最初为663MB/process,然后会一直涨到爆内存;gcc版本从380MB/process缓慢涨到420MB/process。在检查算ERI后发现两个版本所有ERI都是in-core的,不存在储存信息不一致的问题。因此合理推测可能是不同编译器和数学库在计算过程中储存的中间量不一样,这个可能会极大影响计算速度。
下面分别是两个版本的第一个离子步的运行信息:
可以看到能量是基本一致的,但速度上intel要快很多
因此我想问一下:intel版本的内存泄漏问题有办法解决吗?以及gcc版本算杂化泛函如此缓慢是正常的吗? (, 下载次数 Times of downloads: 1)