计算化学公社

 找回密码 Forget password
 注册 Register
楼主 Author: lightman
打印 Print 上一主题 Last thread 下一主题 Next thread

[CP2K] 求助:CP2K+OpenMPI通信器泄漏问题:运行NEB后总是出现MPI_ABORT

[复制链接 Copy URL]

200

帖子

1

威望

695

eV
积分
915

Level 4 (黑子)

16#
发表于 Post on 2026-4-20 04:06:55 | 只看该作者 Only view this author
本帖最后由 UW_0728. 于 2026-4-20 04:13 编辑
lightman 发表于 2026-4-19 21:36
是的,问题已经解决了,重新安装采用MPICH库编译就行了。

其实,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

参与人数
Participants 1
eV +3 收起 理由
Reason
lightman + 3 赞!

查看全部评分 View all ratings

Failed to load the content due to unknown reasons.

21

帖子

0

威望

129

eV
积分
150

Level 3 能力者

17#
 楼主 Author| 发表于 Post on 2026-4-20 16:07:08 | 只看该作者 Only view this author
UW_0728. 发表于 2026-4-20 04:06
其实,MPICH也有一定概率触发MPI finalize failure,不过那个不是CP2K层面的,而是MPICH程序层面的,这也 ...

谢谢,受教啦!给你一个大大滴赞👍

118

帖子

0

威望

4366

eV
积分
4484

Level 6 (一方通行)

18#
发表于 Post on 2026-4-20 23:45:11 | 只看该作者 Only view this author
UW_0728. 发表于 2026-4-20 04:06
其实,MPICH也有一定概率触发MPI finalize failure,不过那个不是CP2K层面的,而是MPICH程序层面的,这也 ...

曾经看到过IntelMPI是MPICH套壳的说法,请问IntelMPI相比OpenMPI是否有上述好处?

另外,如果使用Intel工具链编译,是否有必要额外编译MPICH?
「狩りってのは先に焦せった方の負けだ、ハンターも獲物もな」

200

帖子

1

威望

695

eV
积分
915

Level 4 (黑子)

19#
发表于 Post on 2026-4-21 05:21:31 | 只看该作者 Only view this author
LittlePupil 发表于 2026-4-20 23:45
曾经看到过IntelMPI是MPICH套壳的说法,请问IntelMPI相比OpenMPI是否有上述好处?

另外,如果使用Inte ...

是,Intel MPI就是MPICH套壳,最多就是针对Intel机器做了些优化

我觉得应该没必要

我不喜欢Intel全家桶(MKL除外),所以可能也给不出什么好的针对性的说法和建议
Failed to load the content due to unknown reasons.

3

帖子

1

威望

168

eV
积分
191

Level 3 能力者

20#
发表于 Post on 2026-4-21 23:23:16 | 只看该作者 Only view this author
UW_0728. 发表于 2026-4-21 05:21
是,Intel MPI就是MPICH套壳,最多就是针对Intel机器做了些优化

我觉得应该没必要

说到 MKL, 请问现在的 cp2k 2025.2+ 往后的版本
可以使用GNU 编译器 + openmpi + MKL (作为 blas + lapack + scalapack) 这个选择吗

cp2k dashboard 里面
cp2k ci pipline 的 intel oneapi build 里面没开 mpi / 也没使用 GNU 编译器

118

帖子

0

威望

4366

eV
积分
4484

Level 6 (一方通行)

21#
发表于 Post on 2026-4-21 23:32:42 | 只看该作者 Only view this author
本帖最后由 LittlePupil 于 2026-4-22 11:01 编辑
UW_0728. 发表于 2026-4-21 05:21
是,Intel MPI就是MPICH套壳,最多就是针对Intel机器做了些优化

我觉得应该没必要

谢谢回复。

单论由其支持不如GNU编译器广泛及一些标准与后者有微妙差别导致的一些库的编译需要费些功夫甚至根本无法实现而言,Intel全家桶确实不招人喜欢,奈何在有些机器上用Intel工具链编译的CP2K就是比用GNU编译器编译的效率有明显提升。
「狩りってのは先に焦せった方の負けだ、ハンターも獲物もな」

200

帖子

1

威望

695

eV
积分
915

Level 4 (黑子)

22#
发表于 Post on 2026-4-22 02:29:00 | 只看该作者 Only view this author
本帖最后由 UW_0728. 于 2026-4-22 03:40 编辑
s8ga 发表于 2026-4-21 23:23
说到 MKL, 请问现在的 cp2k 2025.2+ 往后的版本
可以使用GNU 编译器 + openmpi + MKL (作为 blas + lapa ...

使用CMake完全可以,跟OpenBLAS等标准库的表现毫无区别;使用传统的Arch files+make我不敢保证不会出问题,有编译或者运行崩溃的风险(好在2026.1开始移除了这一定制化、脆弱的构建系统)。

注意截至目前的发行版CP2K(2026.1)使用的COSMA版本有bug,会无法正确检测MKL导致编译不过去,遇到这种情况加一个“--with-cosma=no”,或者直接拉取开发分支编译(or等待2026.2版本;目前更新的COSMA解决了这一问题)
Failed to load the content due to unknown reasons.

200

帖子

1

威望

695

eV
积分
915

Level 4 (黑子)

23#
发表于 Post on 2026-4-22 02:31:51 | 只看该作者 Only view this author
本帖最后由 UW_0728. 于 2026-4-22 02:39 编辑
LittlePupil 发表于 2026-4-21 23:32
单论由其支持不如GNU编译器广泛及一些标准与后者有微妙差别导致的一些库的编译需要费些功夫甚至根本无法 ...

Intel全家桶(oneAPI)编译的CP2K有问题(或者直接编译不过去),千万别用。主要原因在于,CP2K的源代码利用了大量现代Fortran功能和特性,而现流行的Fortran编译器里几乎只有GCC gfortran对此有最完整的支持(GCC也是CP2K测试最多使用的,甚至包括Fedora Rawhide里未发布的GCC 16.0.1也在Spack构建的测试队列中,有什么问题能够立即关注和修复、或者跟相关依赖包or编译器的开发方联系)。Dashboard里面那几个是绿的一方面是巧合(CP2K方面没问题+oneAPI版本恰好没问题),另一方面是开发者们为了让其保持绿灯特意针对Intel编译器关掉了所有依赖libint等个别库的测试(而这些测试实际上要么崩溃要么跑出来错误结果)
Failed to load the content due to unknown reasons.

118

帖子

0

威望

4366

eV
积分
4484

Level 6 (一方通行)

24#
发表于 Post on 2026-4-22 11:23:03 | 只看该作者 Only view this author
UW_0728. 发表于 2026-4-22 02:31
Intel全家桶(oneAPI)编译的CP2K有问题(或者直接编译不过去),千万别用。主要原因在于,CP2K的源代码 ...

谢谢忠告。

至少对于2024.1和2025.1两个版本,实践中oneAPI编出来的版本的“make test”结果确实惨不忍睹,但是我的个人算例(GEO_OPT+STRESS_TENSOR)和之前用GNU+OMPI编出来的2024.1版本的结果是对得上的。
「狩りってのは先に焦せった方の負けだ、ハンターも獲物もな」

本版积分规则 Credits rule

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

GMT+8, 2026-5-8 18:14 , Processed in 0.173108 second(s), 21 queries , Gzip On.

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