我试图理解我通过MPI收到的错误消息:
MPT ERROR: rank:0, function:MPI_RECV, Message truncated on receive: An application bug caused the sender to send too much data
一个明显的解释是我有一个MPI_SEND
发送的消息太大,无法接收到相应的消息。但是我发现这不太可能,因为:
1)我已经进行了广泛的调试,结果表明这不是问题。
2)这是我第二次看到正在运行的代码出现此错误。我之前通过在通信代码之前插入MPI_Barrier()
来解决此问题,这与MPI_Send
中消息的大小无关。我的解释是,障碍呼叫使MPI可以“屏住呼吸”,冲掉各种杂物,以及其他所需的东西。 (不用说,这种方法这次不起作用。)
我正在SGI ICE X系统上使用ifort编译此Fortran代码。