计算化学公社

标题: cp2k输出文件里每一项都重复输出四遍的疑问 [打印本页]

作者
Author:
876449830    时间: 2022-6-13 14:18
标题: cp2k输出文件里每一项都重复输出四遍的疑问
各位前辈,我编译了cp2k-9.1后,按照社长的帖子http://bbs.keinsci.com/thread-21608-1-1.html提交了其中的test.inp算例,提交命令为mpirun -np 4 cp2k test.inp |tee test.out,输出文件里每一项都重复输出四遍(如图所示),但是只用cp2k test.inp |tee test.out提交的话(默认只调用一个CPU),输出结果只有一次。我想请教一下,用mpirun多核提交任务时是多核算一个任务还是每个核分别算同样的任务呢?那我这样情况是不是属于没有编译好呢?谢谢各位!

作者
Author:
Eudaimonia    时间: 2022-6-13 14:38
用 mpirun -np 4 cp2k.popt test.inp |tee test.out 试试
你这抄作业都抄错了
作者
Author:
highlight    时间: 2022-6-13 14:48
你的 cp2k 实际是 ssmp,mpirun -np 4 可不就相当于同时跑了四个一样的任务么
看清楚不同版本是咋运行的:
先测试ssmp版。将test.inp放到当前目录下,运行:cp2k.ssmp test.inp |tee test.out。输出信息会在屏幕上显示,也同时写入到了test.out里。默认情况下所有CPU核心都会被用于OpenMP并行计算,如果比如想只用4核,就先运行export OMP_NUM_THREADS=4命令然后再运行CP2K,此时运行过程中CP2K进程的CPU占用率应当在300~400%。

再测试popt版。假设用4核通过MPI方式并行,就执行:mpirun -np 4 cp2k.popt test.inp |tee test.out。在top中看到会有4个cp2k.popt在运行,占用率皆接近100%。


作者
Author:
876449830    时间: 2022-6-13 15:07
Eudaimonia 发表于 2022-6-13 14:38
用 mpirun -np 4 cp2k.popt test.inp |tee test.out 试试
你这抄作业都抄错了

我用alias把cp2k.popt简写了。
作者
Author:
876449830    时间: 2022-6-13 15:08
highlight 发表于 2022-6-13 14:48
你的 cp2k 实际是 ssmp,mpirun -np 4 可不就相当于同时跑了四个一样的任务么
看清楚不同版本是咋运行的: ...

可是我已经用alias把popt版本简写了诶。
作者
Author:
PoorChaos    时间: 2022-6-13 15:53
876449830 发表于 2022-6-13 15:08
可是我已经用alias把popt版本简写了诶。

如果是按博文 在~/.bashrc里面加入一行alias cp2k='mpirun -np 4 cp2k.popt'
你的运行命令用 cp2k test.inp |tee test.out不就好了吗
作者
Author:
876449830    时间: 2022-6-13 16:00
PoorChaos 发表于 2022-6-13 15:53
如果是按博文 在~/.bashrc里面加入一行alias cp2k='mpirun -np 4 cp2k.popt'
你的运行命令用 cp2k test. ...

对的呀,但是很奇怪输出就有4遍一样的,感觉编译出问题了。
作者
Author:
highlight    时间: 2022-6-13 16:24
876449830 发表于 2022-6-13 16:00
对的呀,但是很奇怪输出就有4遍一样的,感觉编译出问题了。

跟编译有啥关系
你同时跑了四个作业,还都输出到同一个文件,当然有四个输出了
你也别搞什么 alias 或改名了,直接
export OMP_NUM_THREADS=4
cp2k.ssmp test.inp |tee test.out
# 或
mpirun -np 4 cp2k.popt test.inp |tee test.out

作者
Author:
876449830    时间: 2022-6-13 16:35
highlight 发表于 2022-6-13 16:24
跟编译有啥关系
你同时跑了四个作业,还都输出到同一个文件,当然有四个输出了
你也别搞什么 alias ...

还是没懂诶,我用mpirun -np 4 提交同一个任务,我是想让cp2k调用多核跑一个任务呀,但是输出4遍一样的信息,这是什么鬼咯
作者
Author:
876449830    时间: 2022-6-13 16:35
highlight 发表于 2022-6-13 16:24
跟编译有啥关系
你同时跑了四个作业,还都输出到同一个文件,当然有四个输出了
你也别搞什么 alias ...

还是没懂诶,我用mpirun -np 4 提交同一个任务,我是想让cp2k调用多核跑一个任务呀,但是输出4遍一样的信息,这是什么鬼咯
作者
Author:
highlight    时间: 2022-6-13 16:45
本帖最后由 highlight 于 2022-6-13 16:46 编辑
876449830 发表于 2022-6-13 16:35
还是没懂诶,我用mpirun -np 4 提交同一个任务,我是想让cp2k调用多核跑一个任务呀,但是输出4遍一样的信 ...

因为 ssmp 只是 openmp 版本,不是 mpi 版本,mpirun 时就相当于运行了完全一样且独立的四个进程啊
你输入 date 能输出一次时间,mpirun -np 4 date 是不是就输出了四个?
作者
Author:
876449830    时间: 2022-6-13 17:18
highlight 发表于 2022-6-13 16:45
因为 ssmp 只是 openmp 版本,不是 mpi 版本,mpirun 时就相当于运行了完全一样且独立的四个进程啊
你输 ...

懂了,感谢解答!那就是我调用的是ssmp版本的,但是我是用cp2k.popt也是一样的诶,这是怎么回事嘞?
作者
Author:
highlight    时间: 2022-6-14 08:49
876449830 发表于 2022-6-13 17:18
懂了,感谢解答!那就是我调用的是ssmp版本的,但是我是用cp2k.popt也是一样的诶,这是怎么回事嘞?

那说明你的 cp2k.popt 实际指向了 ssmp,估计是 alias 或重命名时搞出岔子了
只编译一个版本就好啊,我最习惯的还是 psmp
作者
Author:
abin    时间: 2022-6-14 09:17
新版本,默认编译,没有popt
实际上是指向psmp 版本的。

要么用官方提供的docker镜像,
或者使用我修改之后的镜像。
我修改的镜像,用起来很方便。

一知半解,又生搬硬套,当然会有莫名其妙的错误了。

作者
Author:
876449830    时间: 2022-6-14 09:57
highlight 发表于 2022-6-14 08:49
那说明你的 cp2k.popt 实际指向了 ssmp,估计是 alias 或重命名时搞出岔子了
只编译一个版本就好啊,我 ...

好滴,感谢!我得再重编一下了
作者
Author:
Peng_    时间: 2023-11-3 19:43
876449830 发表于 2022-6-14 09:57
好滴,感谢!我得再重编一下了

博主重新编辑解决问题了吗,我也遇到了相同的问题
作者
Author:
876449830    时间: 2023-11-6 07:50
Peng_ 发表于 2023-11-3 19:43
博主重新编辑解决问题了吗,我也遇到了相同的问题

编译有问题,重新编译一下就好。
作者
Author:
Night5116    时间: 2024-4-4 01:34
想请问下您解决了吗 我也遇到一样的问题了

作者
Author:
876449830    时间: 2024-4-6 09:34
Night5116 发表于 2024-4-4 01:34
想请问下您解决了吗 我也遇到一样的问题了

重新编译即可




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