MPI_Send出错

时间:2014-02-28 04:29:00

标签: c++ c mpi

我正在写一个mpi的c ++包装器。

我遇到了一个与mpi有关的奇怪错误:在我的情况下,只有当消息足够大时才会出现错误,运行时错误如下:

Fatal error in MPI_Send: Other MPI error, error stack:
MPI_Send(173)...........................: MPI_Send(buf=0x7fffbd3db7f8, count=1,     MPI_DOUBLE, dest=1, tag=2014, comm=0x84000004) failed
PIDI_CH3I_Progress(461)................: 
MPID_nem_handle_pkt(636)................: 
MPIDI_CH3_PktHandler_EagerShortSend(308): Failed to allocate memory for an unexpected message. 261895 unexpected messages queued.

我只使用MPI_Send(没有带请求的MPI_Isend)以及如何发生此错误(可以死锁触发这个)?

1 个答案:

答案 0 :(得分:2)

问题似乎是您没有将匹配的来电发布到MPI_Recv。当它说你在意外的消息队列中有200000条消息时,这意味着你已经发送了200000条消息而没有告诉接收进程它们到达时把它们放在哪里。

无论您的邮件大小是什么,这都将最终发生。如果您的消息更大(由于内存不足),它会更快发生。