mpich2的问题

发布于 2022-07-22 00:36:10 字数 559 浏览 23 评论 2

运行并行计算的时候出现这个问题, 在google查不到解决办法,有没有mpi大拿帮忙看看,这是什么错误代码?

p0_21098:  p4_error: interrupt SIGx: 1
bm_list_21099:  p4_error: interrupt SIGx: 1
p0_21098: (8444.481986) net_send: could not write to fd=4, errno = 32
p0_21098:  p4_error: interrupt SIGx: 1
bm_list_21099:  p4_error: interrupt SIGx: 1
p0_21098: (8444.481986) net_send: could not write to fd=4, errno = 32
net_send: could not write to fd=4, errno = 32

这是因为P4_GLOBMEMSIZE 16777216 设置的不够大么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

滿滿的愛 2022-07-22 02:09:44

感谢版主 好像是程序的问题

懒猫 2022-07-22 01:39:57

1. 做几个测试

- 跑一下 tstmachines 看看是否正常 (在mpich下面)
- mpich带的fpi 之类的例子跑一下,看看是否正常

2. GLOBMEMSIZE的问题,如果 tstmachines 和 fpi 之类的sample 都OK
你 设置一下 export P4_GLOBMEMSIZE=16777216看看

3. 程序造成的问题. 从stdout来看,你的程序跑的时候,好像被异常的杀掉了.

因为我以前在head node向SGE 递交程序的时候,我如果想要干掉所有node得上的程序就会 SGE -> kill all 这个process, 然后就会出现非常类似的输出.
我不知道你什么环境下工作,我在SGE上处理并行程序的时候,可以进去qlogin ,一个交互式的login工具,逐段debug我的MPI程序.
debug的时候,用stderr代替stdout,因为mpi程序跑的时候,error message都是buffer掉的,不容易帮助你检查代码.
BTW: MPI程序debug不是很容易:">

4. 节点通信和权限上的问题

head node 递交作业后,作业要在每个node都有权限运行,且通信要保证OK. 我不知道你的环境到底是怎样的. 建议你先从简单的环境方面开始检查,也许会减少点时间.

good luck,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文