计算化学公社

标题: 小白成功编译7.1版本,用40核跑的比20核慢是怎么回事? [打印本页]

作者
Author:
xxq星球    时间: 2021-7-13 10:35
标题: 小白成功编译7.1版本,用40核跑的比20核慢是怎么回事?
编译操作如下:export CP2K_TOOLCHAIN_OPTIONS="--with-gcc=install --with-openblas=no --with-scalapack=no --with-openmpi=no --mpi-mode=mpich --with-mkl=system --math-mode=mkl --with-plumed=install --libint-lmax=6 --enable-cuda=no"
硬件是:Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz ,一个节点是20核。内存是64G

测试发现调用2个节点比一个节点还要慢是怎么回事?因为openmpi编译报错,这里用的mpich3.3版本,是mpi的原因?还是内存不够的原因?



作者
Author:
xxq星球    时间: 2021-7-13 10:36
用cp2k.popt提交的任务
作者
Author:
abin    时间: 2021-7-13 12:55
首先确认体系大小是否合适?

比如, 算一个水分子,TD+opt+freq 高斯2核心, 可能一会儿就搞定了; 使用128核心, 估计需要很久.
这种就是, 不恰当的并行设定.

第二,
节点之间通过啥网络通讯的? 如果是以太网, 效果不一定理想.

推测, 也许是测试算例太小, 并不适合多核心并行计算.

如果要测定是否网络瓶颈,
可以先搞一个节点内4核心计算; 再搞一个双节点, 每节点2核心, 看看效果如何?
如果差异十分明显, 那就充分说明, 网络太差了.
作者
Author:
xxq星球    时间: 2021-7-13 15:58
谢谢你的回复,关于第一点,我体系大概有200个原子,体系是否太小?关于第二点,我简单做了测试4个核的情况,一个节点跑57个电子步,同时两个节点跑45步。这样的差异明显吗?
作者
Author:
xxq星球    时间: 2021-7-13 15:59
abin 发表于 2021-7-13 12:55
首先确认体系大小是否合适?

比如, 算一个水分子,TD+opt+freq 高斯2核心, 可能一会儿就搞定了; 使用128 ...

谢谢你的回复,关于第一点,我体系大概有200个原子,体系是否太小?关于第二点,我简单做了测试4个核的情况,一个节点跑57个电子步,同时两个节点跑45步。这样的差异明显吗?
作者
Author:
abin    时间: 2021-7-13 16:23
如果你的描述是
同一个计算,
使用一个机器上的四个核心,比如五分钟,跑了57电子步?
两台机器,A用两个核心,B用两个核心,同样五分钟,跑了45电子步?
是这个意思吗?
如果仅仅涉及到4个MPI进程交换数据,差距如此明显,那说明网络太差了。

另,建议对比做一次循环耗时更直接。

一般而言,以太网用来跑MPI,尤其是交换数据频繁的应用,
效果很差劲。
作者
Author:
xxq星球    时间: 2021-7-13 19:45
abin 发表于 2021-7-13 16:23
如果你的描述是
同一个计算,
使用一个机器上的四个核心,比如五分钟,跑了57电子步?

是这个意思。根据你的分析我大概知道可能是交换数据太慢导致的问题,感谢你的帮助!




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