|
|
本帖最后由 UW_0728. 于 2026-4-20 04:13 编辑
其实,MPICH也有一定概率触发MPI finalize failure,不过那个不是CP2K层面的,而是MPICH程序层面的,这也就意味着只有CP2K完全结束进程时才可能触发,此时你该算的都已经算完,因此不会对CP2K运行产生什么实质性影响。
顺带一提,OpenMPI默认的绑核策略(--bind-to core)会导致用MPI和OpenMP混合并行时CP2K的进程被强制绑定在前几个线程上(包括开启超线程的情况),使得运行速度大幅拖慢(有人可能认为这是CP2K的问题,其实并不是)。遇到这个问题,解决办法是mpirun时加上“--bind-to none”强制取消绑核(也可以用“--bind-to numa”或“--bind-to node”达到相同目的),或者改用MPICH(默认设置就是“--bind-to none”)。如果你的任务频繁使用混合并行,个人认为后者更省心,而且CP2K自己的toolchain配置默认的选择就是MPICH(想安装OpenMPI必须指定--with-openmpi;除非检测到了系统已有的MPI),因此很多其他通信问题在MPICH并行版本的CP2K上触发概率都应该会降低(不过在运行性能上没有任何差别)。 |
评分 Rate
-
查看全部评分 View all ratings
|