Error with MPI_Send

Error with MPI_Send

本文关键字:Send MPI with Error      更新时间:2023-10-16

我正在编写 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),此错误如何发生(死锁会触发吗)?

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

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