计算化学公社

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

[CP2K] 求助-CP2K7.1编译完成且test全部通过却无法正常运行

[复制链接 Copy URL]

251

帖子

4

威望

4412

eV
积分
4743

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
根据刘博的帖子"超详细CP2K编译过程,GNU9.3+intel MKL+openmpi【含视频】"编译了CP2K-7.1 popt版本(psmp编译报错,就在make那一步去掉了),且test后全部通过:--------------------------------- Summary --------------------------------
Number of FAILED  tests 0
Number of WRONG   tests 0
Number of CORRECT tests 3273
Number of NEW     tests 8
Total number of   tests 3281
GREPME 0 0 3273 8 3281 X

Summary: correct: 3273 / 3281; new: 8; 7min
Status: OK

--------------------------------------------------------------------------
Regtest took 396.00 seconds.
--------------------------------------------------------------------------
Sat Mar 13 20:54:28 CST 2021

然后,用一个270原子的体系进行进一步测试。该inp文件先用官方发布的7.1 ssmp版本测试运行,并无异常,跑一步电子步8.7 s,占用内存10G。然而,用自己编译好的popt运行时却发现187g内存被撑爆了,跑一步电子步需要120 s。同时,从out文件的输出来看,服务器的全部核心(56核)都被分别用来执行一个任务了,即56核同时跑56次,具体对比如下:
类似这种信息“Step     Update method      Time    Convergence         Total energy    Change”,popt运行时同时输出了56次(正常情况下就输出一次)。
我多次更改提交任务的方式(PBS调度或者直接运行)、命令,甚至还重新编译了3次,全都是一样的反常结果,以下是我的提交命令(在source 的那几个intel的命令中已经尝试过各种排列组合,都不行),还请大家帮看下,谢谢!
#!/bin/sh
#PBS -N test
#PBS -l nodes=1:ppn=56
##PBS -q workq
cd $PBS_O_WORKDIR
source ~/opt/cp2k71/3/cp2k-7.1/tools/toolchain/install/setup
#source /opt/intel2018/compilers_and_libraries_2018/linux/mkl/bin/mklvars.sh intel64 ilp64
#source /opt/intel2018/parallel_studio_xe_2018.4.057/bin/psxevars.sh
source /opt/intel2018/mkl/bin/mklvars.sh intel64
export PATH=$PATH:~/opt/cp2k71/3/cp2k-7.1/exe/local
source /opt/intel2018/bin/compilervars.sh intel64
source /opt/intel2018/impi/2018.4.274/bin64/mpivars.sh intel64
mpirun -n 56 cp2k.popt cp2k.inp 1>cp2k.out 2>cp2k.err


说明一下,我按照sob老师的方法(http://bbs.keinsci.com/thread-21608-1-1.html),也成功编译了8.1版本,运行一切正常,但是和超算上同等硬件的节点比较后发现8.1的速度比7.1慢一倍,甚至只有intel编译的7.1的0.4左右,而且组里准备自建服务器不租超算了,故才在服务器上自行编译7.1。



24

帖子

0

威望

796

eV
积分
820

Level 4 (黑子)

2#
发表于 Post on 2021-3-14 00:04:01 | 只看该作者 Only view this author
本帖最后由 wangtaochem 于 2021-3-14 00:05 编辑

可以提供计算文件的话,我可以用Intel2018编译的cp2k-7.1帮忙测试一下。此外,可以把运行命令中的 -n 56 去掉试试:mpirun cp2k.popt cp2k.inp 1>cp2k.out 2>cp2k.err

251

帖子

4

威望

4412

eV
积分
4743

Level 6 (一方通行)

3#
 楼主 Author| 发表于 Post on 2021-3-14 00:27:11 | 只看该作者 Only view this author
wangtaochem 发表于 2021-3-14 00:04
可以提供计算文件的话,我可以用Intel2018编译的cp2k-7.1帮忙测试一下。此外,可以把运行命令中的 -n 56 去 ...

谢谢,我尝试了把-n 56去掉,还是一样内存爆满、多核平行而没有并行计算的情况。后来我还干脆把mpirun也去掉了,结果变成了1个核在单独计算了。
计算文件如下,如果方便还请帮忙测试一下。

cp2k.inp

9.54 KB, 下载次数 Times of downloads: 4

5万

帖子

99

威望

5万

eV
积分
112551

管理员

公社社长

4#
发表于 Post on 2021-3-14 02:44:24 | 只看该作者 Only view this author
这种事一般就是MPI导致的,比如当前环境下激活的MPI和编译时用的MPI不同,导致没法正常MPI并行
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

24

帖子

0

威望

796

eV
积分
820

Level 4 (黑子)

5#
发表于 Post on 2021-3-14 09:46:42 | 只看该作者 Only view this author
djjj148 发表于 2021-3-14 00:27
谢谢,我尝试了把-n 56去掉,还是一样内存爆满、多核平行而没有并行计算的情况。后来我还干脆把mpirun也 ...

我在自己的机器上运行一回儿就正常结束了,你看看.out文件有没有问题。

cp2k.out

23.83 KB, 下载次数 Times of downloads: 12

251

帖子

4

威望

4412

eV
积分
4743

Level 6 (一方通行)

6#
 楼主 Author| 发表于 Post on 2021-3-14 10:37:44 | 只看该作者 Only view this author
sobereva 发表于 2021-3-14 02:44
这种事一般就是MPI导致的,比如当前环境下激活的MPI和编译时用的MPI不同,导致没法正常MPI并行

谢谢sob老师提醒,我编译7.1的mpi的确有点诡异。对于8.1,按照您的博文安装后,
  1. source /opt/intel2018/parallel_studio_xe_2018.4.057/bin/psxevars.sh
  2. source ~/opt/cp2k81/cp2k-8.1/tools/toolchain/install/setup
复制代码
就可以正常运行,此时which mpirun指向的是 ~/opt/cp2k81/cp2k-8.1/tools/toolchain/install/openmpi-4.0.5/bin/mpirun然而用同样的方式运行7.1:
  1. source /opt/intel2018/parallel_studio_xe_2018.4.057/bin/psxevars.sh
  2. source ~/opt/cp2k71/2/cp2k-7.1/tools/toolchain/install/setup
复制代码
却报错:
  1. #16  0xcbf2d3 in __f77_interface_MOD_init_cp2k
  2. #17  0x462241 in cp2k
  3.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/start/cp2k.F:198
  4. #18  0x41c32c in main
  5.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/start/cp2k.F:45
  6.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/f77_interface.F:232
  7. #17  0x462241 in cp2k
  8.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/start/cp2k.F:198
  9. #18  0x41c32c in main
  10.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/start/cp2k.F:45
  11. #18  0x41c32c in main
  12. #17  0x462241 in cp2k
  13.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/start/cp2k.F:198
  14. #18  0x41c32c in main
  15.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/start/cp2k.F:45
  16.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/start/cp2k.F:45
  17. #16  0xcbf2d3 in __f77_interface_MOD_init_cp2k
  18.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/f77_interface.F:232
  19. #17  0x462241 in cp2k
  20.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/start/cp2k.F:198
  21. #18  0x41c32c in main
  22.         at /home/lj/opt/cp2k71/3/cp2k-7.1/src/start/cp2k.F:45
  23. --------------------------------------------------------------------------
  24. Primary job  terminated normally, but 1 process returned
  25. a non-zero exit code. Per user-direction, the job has been aborted.
  26. --------------------------------------------------------------------------
  27. --------------------------------------------------------------------------
  28. mpirun noticed that process rank 11 with PID 0 on node localhost exited on signal 11 (Segmentation fault).
复制代码
我无奈只能先source ~/opt/cp2k71/2/cp2k-7.1/tools/toolchain/install/setup再激活intel,此时which mpirun指向的就是intel的mpi了,可以运行CP2K但是会出现上述的“无法正常并行计算”的情况。当然,这种做法应该是不对的,因为我在使用toolchain脚本时写的是--with-openmpi=install,就应该用toolchain编译的openmpi而不是intel的mpi,只是不知道为什么用toolchain编译的openmpi正式计算时会报上述错误(而且我用toolchain编译的openmpi做test时是全部通过的),麻烦老师指点一下。

251

帖子

4

威望

4412

eV
积分
4743

Level 6 (一方通行)

7#
 楼主 Author| 发表于 Post on 2021-3-14 10:38:54 | 只看该作者 Only view this author
wangtaochem 发表于 2021-3-14 09:46
我在自己的机器上运行一回儿就正常结束了,你看看.out文件有没有问题。

是的我看着没问题,应该是我这里的软件问题

24

帖子

0

威望

796

eV
积分
820

Level 4 (黑子)

8#
发表于 Post on 2021-3-14 10:52:49 | 只看该作者 Only view this author
djjj148 发表于 2021-3-14 10:38
是的我看着没问题,应该是我这里的软件问题

mpi的问题的话,把.bashrc文件打开,把INTEL编译器注释掉。
另外,如果需要编译Intel版本的cp2k-7.1的话我可以给你提供编译文件和编译方法。

251

帖子

4

威望

4412

eV
积分
4743

Level 6 (一方通行)

9#
 楼主 Author| 发表于 Post on 2021-3-14 11:06:40 | 只看该作者 Only view this author
wangtaochem 发表于 2021-3-14 10:52
mpi的问题的话,把.bashrc文件打开,把INTEL编译器注释掉。
另外,如果需要编译Intel版本的cp2k-7.1的话 ...

我并没有在.bashrc激活intel的mpi呢,我装完intel的全家桶后都是在提交任务的脚本里激活intel的组件的。我刚才描述的意思是我也不想用intel的mpi跑CP2K,应该用toolchain编译的openmpi,只是用openmpi上来就报错很尴尬

能装intel版本的cp2k-7.1最好了,麻烦您提供一下方法和编译文件吧,我之前看一位B站up主的帖子试了下没有成功https://www.bilibili.com/read/cv7303152/

2302

帖子

1

威望

5481

eV
积分
7803

Level 6 (一方通行)

10#
发表于 Post on 2021-3-14 11:40:20 | 只看该作者 Only view this author
看你后文提到, 似乎有采用openMPI?

建议,在执行的脚本中,添加一句,
export OMP_NUM_THREADS=1
Or
export OMP_NUM_THREADS=2

看介绍信息:
CP2K is written in Fortran 2008 and can be run efficiently in parallel using a combination of multi-threading, MPI, and CUDA.

明显, cp2k是典型的openMP+MPI混合并行的模式。
对于openMP的程序,
多数情形下,
不指定 OMP_NUM_THREADS=1Or2,内存会爆浆的,
而且奇慢无比。
机器负载会飙升。


或者读读这个:
Conventionally, there are six versions:

Acronym        Meaning
sdbg        OpenMP + debug settings
popt        OpenMP + OMP_NUM_THREADS=1
ssmp        OpenMP
pdbg        MPI + OpenMP + debug settings
popt        MPI + OpenMP + OMP_NUM_THREADS=1
psmp        MPI + OpenMP

可以自行测试,对于一台机器上的多核心并行,
是openMP快还是MPI快?
或者是混合模式快?

不是所有的并行计算,上来都是mpirun -np XXX来搞的。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

251

帖子

4

威望

4412

eV
积分
4743

Level 6 (一方通行)

11#
 楼主 Author| 发表于 Post on 2021-3-14 15:56:45 | 只看该作者 Only view this author
wangtaochem 发表于 2021-3-14 10:52
mpi的问题的话,把.bashrc文件打开,把INTEL编译器注释掉。
另外,如果需要编译Intel版本的cp2k-7.1的话 ...

用Intel版本的cp2k-7.1最好了,麻烦提供下编译文件和编译方法,不胜感激~!

251

帖子

4

威望

4412

eV
积分
4743

Level 6 (一方通行)

12#
 楼主 Author| 发表于 Post on 2021-3-14 15:58:15 | 只看该作者 Only view this author
abin 发表于 2021-3-14 11:40
看你后文提到, 似乎有采用openMPI?

建议,在执行的脚本中,添加一句,

谢谢王老师,试了下还是不行

2302

帖子

1

威望

5481

eV
积分
7803

Level 6 (一方通行)

13#
发表于 Post on 2021-3-14 18:01:52 | 只看该作者 Only view this author
djjj148 发表于 2021-3-14 15:58
谢谢王老师,试了下还是不行

intel2020u2,
无任何压力。
7.1 8.1均无问题。

老版本没有测试。

High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

24

帖子

0

威望

796

eV
积分
820

Level 4 (黑子)

14#
发表于 Post on 2021-3-14 21:44:39 | 只看该作者 Only view this author
djjj148 发表于 2021-3-14 15:56
用Intel版本的cp2k-7.1最好了,麻烦提供下编译文件和编译方法,不胜感激~!

http://bbs.keinsci.com/thread-17324-1-1.html,这个帖子里面的链接可以下载编译所需的文件。

251

帖子

4

威望

4412

eV
积分
4743

Level 6 (一方通行)

15#
 楼主 Author| 发表于 Post on 2021-3-14 22:45:13 | 只看该作者 Only view this author
wangtaochem 发表于 2021-3-14 21:44
http://bbs.keinsci.com/thread-17324-1-1.html,这个帖子里面的链接可以下载编译所需的文件。

您的这个帖子我看过,是gcc编译的吧,和刘博的帖子中的方法一样吧。您可以说下intel编译CP2K的方法吗?

本版积分规则 Credits rule

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

GMT+8, 2024-11-27 21:00 , Processed in 0.936410 second(s), 24 queries , Gzip On.

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