繁体   English   中英

slurm 作业因“总线错误”而崩溃是什么意思?

[英]What does it mean for slurm job to crash with `bus error`?

通过 slurm srun --pty bash运行 Python 脚本时,我收到一条神秘的错误消息Bus error: core dumped

我搜索了 slurm 文档,它没有提到这种错误类型。

发生了什么事,我该如何解决?

我发现了有关bus error的一般信息,但这并不能解释它在 SLURM 环境中如何以及为什么会发生以及可以采取哪些措施来避免它:什么是总线错误? 它与分段错误不同吗?

至少在一种情况下,这可能是由于我的工作需要太多内存,因此被 SLURM 杀死。

当我直接在工作节点上运行因总线错误而崩溃的同一个作业时,它在声明 >30GB 后被杀死。

Ben Evans 关于耶鲁集群话语的有用回答可能更普遍地适用于其他集群:

在 Yale 集群上,总线错误通常意味着您的作业内存 (RAM) 不足。 如果您无法减少代码的内存使用量,您可以使用 --mem-per-cpu 或 --mem Slurm 标志为您的作业请求额外的内存。

更多细节:由于我们使用 cgroups 7 管理内存的方式,您的程序可能会遇到此错误,因此许多作业可以在同一台物理机器上运行而不会相互干扰。 如果作业内的进程试图访问分配给该作业的内存“外部”的内存,例如超过您请求的内存,则操作系统会告诉您的程序地址无效,错误总线错误,即 SIGBUS,退出(10) . 您可能更熟悉的类似故障是分段故障,即 SIGSEGV,exit(11),通常是由于程序错误地尝试访问有效内存地址造成的。

https://ask.cyberinfrastructure.org/t/what-does-it-mean-when-i-get-a-bus-error-in-my-job/1101/2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM