You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Segmentation fault报错:MPI问题还是内存限制所致?

问题分析:Segmentation Fault是MPI还是内存限制导致?

问题描述

请问该Segmentation fault错误是由MPI还是内存限制导致的?我已尝试调整不同核心数量、更换不同目录,但由于软件要求使用最新版MPI,无法更改MPI版本。

报错信息

[node111:1798902:0:1798902] 捕获到信号11(段错误:地址0x35未映射到对象)
==== 回溯信息(线程ID:1798902) ====
0  /lib/libucs.so.0(ucs_handle_error+0x324) [0x14da10316874]
1  /lib/libucs.so.0(+0x24a9f) [0x14da10316a9f]
2  /lib/libucs.so.0(+0x24dd4) [0x14da10316dd4]
3  /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x(__intel_avx_rep_memcpy+0x400) [0x792ad10]
4  /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x(for__format_value+0x138) [0x78d2928]
5  /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x(for_write_seq_fmt_xmit+0x164c) [0x788f54c]
6  /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x(for_write_seq_fmt+0x1471) [0x788d841]
7  /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0x1f45850]
8  /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0x16f0df9]
9  /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0x160d8dd]
10 /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0xcf27a5]
11 /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0x787e50]
12 /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0x550623]
13 /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0x4ed3ac]
14 /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0x644bf6]
15 /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0x43224d]
16 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x14da136460b3]
17 /home/software/espresso/qe-7.2-intel23-intelmpi/bin/qe2pert.x() [0x43216e]
=================================
forrtl: 严重错误(174): 发生SIGSEGV段错误
镜像文件           程序计数器(PC)        函数名              行号        源文件      
libpthread-2.31.s  000014DA1CF523C0  未知函数               未知行号  未知源文件
qe2pert.x          000000000792AD10  __intel_avx_rep_memcpy 未知行号  未知源文件
qe2pert.x          00000000078D2928  for__format_value      未知行号  未知源文件
qe2pert.x          000000000788F54C  for_write_seq_fmt_xmit 未知行号  未知源文件
qe2pert.x          000000000788D841  for_write_seq_fmt      未知行号  未知源文件
qe2pert.x          0000000001F45850  未知函数               未知行号  未知源文件
qe2pert.x          00000000016F0DF9  未知函数               未知行号  未知源文件
qe2pert.x          000000000160D8DD  未知函数               未知行号  未知源文件
qe2pert.x          0000000000CF27A5  未知函数               未知行号  未知源文件
qe2pert.x          0000000000787E50  未知函数               未知行号  未知源文件
qe2pert.x          0000000000550623  未知函数               未知行号  未知源文件
qe2pert.x          00000000004ED3AC  未知函数               未知行号  未知源文件
qe2pert.x          0000000000644BF6  未知函数               未知行号  未知源文件
qe2pert.x          000000000043224D  未知函数               未知行号  未知源文件
libc-2.31.so       000014DA136460B3  __libc_start_main      未知行号  未知源文件
qe2pert.x          000000000043216E  未知函数               未知行号  未知源文件
/var/spool/torque/mom_priv/jobs/254237.masterbeta.SC: 第50行: /home/wslu: 是一个目录

错误原因判断

这个段错误既不是MPI本身导致,也不是直接的内存限制问题,根源在于程序执行Fortran格式化输出时的内存访问异常,结合报错信息细节:

  • 回溯栈显示错误起始于for__format_value、for_write_seq_fmt这类Fortran标准库的格式化输出函数,随后触发__intel_avx_rep_memcpy的内存拷贝错误,说明程序在处理输出格式化时访问了无效内存地址(0x35是极小地址,通常对应未初始化指针或数组越界)。
  • 末尾提示作业脚本第50行存在错误:误将/home/wslu目录当作可执行文件调用,这会干扰程序执行流程,间接引发后续内存访问错误。

排查建议

  • 优先检查作业脚本第50行的命令,修正将目录当作可执行文件调用的错误。
  • 若脚本无误,排查程序输入文件的参数配置,比如输出文件名是否设置错误、格式化输出的变量是否未初始化。
  • 可编译带调试信息的程序版本,或使用内存调试工具(如valgrind)定位具体的内存访问问题。

内容的提问来源于stack exchange,提问作者MathJacky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:15:54