计算化学公社

标题: 关于CP2K提交任务时的并行核数指定问题 [打印本页]

作者
Author:
社会主义小战士    时间: 2023-2-26 12:35
标题: 关于CP2K提交任务时的并行核数指定问题
各位前辈好,我在编译完成CP2K(2023版本)之后,提交任务使用如下命令:
$./cp2k-2023.1/exe/local/cp2k.popt test.inp |tee test.out
然后是可以在算了,但是查看后台进程发现:
(, 下载次数 Times of downloads: 15)
这个CPU只有100%。
机器是36物理核,72线程的,ubuntu系统。
是不是需要输入并行的命令?或者在~/.bashrc里提前定义什么?


作者
Author:
社会主义小战士    时间: 2023-2-26 12:50
OK,已经可以并行跑了。
原来需要使用如下命令:
$mpirun /path/to/cp2k.popt test.in
作者
Author:
乐平    时间: 2023-2-26 20:24
本帖最后由 乐平 于 2023-2-26 20:26 编辑
社会主义小战士 发表于 2023-2-26 12:50
OK,已经可以并行跑了。
原来需要使用如下命令:
$mpirun /path/to/cp2k.popt test.in

你只用了 mpirun 但是没有指定用多少核并行啊

  1. mpirun -np 36 /path/to/cp2k.popt -i test.in -o test.out
复制代码


作者
Author:
sobereva    时间: 2023-2-27 02:57
CP2K第一性原理程序在CentOS中的简易安装方法
http://sobereva.com/586http://bbs.keinsci.com/thread-21608-1-1.html
再测试popt版。假设用4核通过MPI方式并行,就执行:mpirun -np 4 cp2k.popt test.inp |tee test.out。在top中看到会有4个cp2k.popt在运行,占用率皆接近100%。

作者
Author:
943436427    时间: 2023-11-16 16:32
乐平 发表于 2023-2-26 20:24
你只用了 mpirun 但是没有指定用多少核并行啊

老师您好我想请问一下就是我不管用的是mpirun -np 36 /home/room/software/cp2k-2023.2/exe/local/cp2k.psmp -o al2cu.out -i al2cu.inp
还是mpirun -np 72 /home/room/software/cp2k-2023.2/exe/local/cp2k.psmp -o al2cu.out -i al2cu.inp
我的cpu占用都是百分之百,服务器配置是72个物理核心双线程。
作者
Author:
啊不错的飞过海    时间: 2023-11-16 16:57
943436427 发表于 2023-11-16 16:32
老师您好我想请问一下就是我不管用的是mpirun -np 36 /home/room/software/cp2k-2023.2/exe/local/cp2k.p ...

有的版本的mpi会在不显式定义OMP_NUM_THREADS时画蛇添足地把OMP并行核数设为物理核心数,可能是这个导致的。
指定OMP_NUM_THREADS或给mpi加--map-by关键字可以凑合解决这一问题。
作者
Author:
943436427    时间: 2023-11-16 17:04
本帖最后由 943436427 于 2023-11-16 17:27 编辑
啊不错的飞过海 发表于 2023-11-16 16:57
有的版本的mpi会在不显式定义OMP_NUM_THREADS时画蛇添足地把OMP并行核数设为物理核心数,可能是这个导致 ...

OMP_NUM_THREADS这个是放在inp文件中吗?我加了这个之后反而无法运行了。
使用mpirun --map -by -np 71 /home/room/software/cp2k-2023.2/exe/local/cp2k.psmp -o al2cu.out -i al2cu.inp &
mpirun -np 72 --map -by /home/room/software/cp2k-2023.2/exe/local/cp2k.psmp -o al2cu.out -i al2cu.inp

mpirun -np 72 --hostfile nodes --map-by node /home/room/software/cp2k-2023.2/exe/local/cp2k.psmp -o al2cu.out -i al2cu.inp也不行





作者
Author:
啊不错的飞过海    时间: 2023-11-16 17:21
943436427 发表于 2023-11-16 17:04
OMP_NUM_THREADS这个是放在inp文件中吗?我加了这个之后反而无法运行了。
使用mpirun --map -by -np 71 ...

不是,是作为环境变量定义。删去输入文件里的OMP_NUM_THREADS,执行export OMP_NUM_THREADS=1,然后执行你的mpirun。
作者
Author:
943436427    时间: 2023-11-16 17:29
本帖最后由 943436427 于 2023-11-16 17:34 编辑
啊不错的飞过海 发表于 2023-11-16 17:21
不是,是作为环境变量定义。删去输入文件里的OMP_NUM_THREADS,执行export OMP_NUM_THREADS=1,然后执行 ...

我的输入文件里没有OMP_NUM_THREADS
不过我将输入改为mpirun -np 3  /home/room/software/cp2k-2023.2/exe/local/cp2k.psmp -o al2cu.out -i al2cu.inp &
占用就变成百分之五十了
我查看了使用情况两个pmsp分别占用35个核多一点剩下一个pmsp占用1个核

作者
Author:
啊不错的飞过海    时间: 2023-11-16 17:32
943436427 发表于 2023-11-16 17:29
我的输入文件里没有OMP_NUM_THREADS

那直接export OMP_NUM_THREADS=1之后 mpirun -n 36 /home/room/software/cp2k-2023.2/exe/local/cp2k.psmp -o al2cu.out -i al2cu.inp&应该就能获得一个正常的占用。你用的mpi和编译cp2k时候的是一个吧?
作者
Author:
943436427    时间: 2023-11-16 17:33
本帖最后由 943436427 于 2023-11-16 17:36 编辑
啊不错的飞过海 发表于 2023-11-16 17:32
那直接export OMP_NUM_THREADS=1之后 mpirun -n 36 /home/room/software/cp2k-2023.2/exe/local/cp2k.psm ...

是同一个我是用他脚本安装的
如果我用mpirun -np 4 占用就成这样了

作者
Author:
943436427    时间: 2023-11-16 17:37
本帖最后由 943436427 于 2023-11-16 17:44 编辑
啊不错的飞过海 发表于 2023-11-16 17:32
那直接export OMP_NUM_THREADS=1之后 mpirun -n 36 /home/room/software/cp2k-2023.2/exe/local/cp2k.psm ...
这个方法也可以非常感谢!
用这个方法之后我的运存占用低了很多从原本接近200GB的使用变成30GB上下的占用,运算速度看起来快了非常多。
这个方法是更好的方法。




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