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

Slurm集群中ARMADILLO程序随机触发Bus Error问题求助

关于HPC集群中ARMADILLO程序Bus Error的问题

问题背景

  • 在HPC集群上运行基于ARMADILLO C++开发的可执行文件,通过任务数组或Bash循环一次性提交数百个仅输入参数不同的任务
  • 部分任务突然崩溃,抛出Bus Error(核心已转储),报错信息如下:

/var/spool/slurmd/job58791836/slurm_script: line 193: 3086318 Bus error
(core dumped) ./${exec_name}.o
"${@:14}" -L $L -J $J -J0 $J0 -g $g -g0 $g0 -h $h -w $wx -th $thread_num
-m 1 -r $r -k $k_sym -p $p_sym -x $x_sym
-op $operator -fun $fun -s $site -b 0 -ch $ch -seed $seed -jobid $jobid -q_ipr 2.0 1>&${filename}.log

  • 任务最大内存需求约4GB,但已分配至少12GB,仍出现报错
  • 编译命令:
icpx main.cpp XYZ_UI.cpp XYZ_sym.cpp XYZ.cpp -o ${exec_name}.o\
 -pthread -lhdf5 -Wall -Wformat=0 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core\
 -liomp5 -lpthread -lm -ldl -lmkl_sequential -lstdc++fs -fopenmp -std=c++2a -O3 ${compile_suffix} "${@:1}"
  • 集群多数节点为AMD架构,怀疑Intel编译器使用了仅适配Intel CPU的优化指令
  • 用valgrind检测内存泄漏,仅发现still reachable类型,该情况不会影响程序运行
  • 程序触发SIGBUS后立即崩溃,无任何代码输出(原本设计会打印输入参数)

疑问

  1. 用Intel编译器为AMD CPU编译C++代码是否存在问题?
  2. 除CPU不匹配或内存分配问题外,Bus Error还有哪些触发可能?
  3. 使用同一可执行文件访问编译后的共享库会导致Bus Error吗?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:33:33