我正在尝试使用 MPI(MPMD 通信)通信两个不同的进程。其中一个使用 GLUT 来渲染基于另一个进程发送的数据生成的一些数据。
我的问题是,在初始化阶段,“消费者”(使用 GLUT)将某些配置数据发送给“生产者”,但 MPI_Send 调用似乎没有阻塞。例如,我从消费者向生产者发送了 4 条不同的消息,每条消息都有不同的标签。它似乎工作正常。然后我注释第一个 MPI_Send,而不更改其他进程的代码(这意味着它们中的任何一个都不应分别超过第一个 MPI_Send 和 MPI_Recv)。问题是发送者发送了所有三个消息,并且似乎每个 MPI_Send 返回 MPI_SUCCESS,因为我在每个 MPI_Send 打印消息对应于正确进化之后所做的测试。同时,接收器没有进展。
我试图在没有 GLUT 的情况下在更简单的应用程序中重现这种行为,并且它们奏效了。但与此同时,我认为 GLUT 没有理由导致这个问题。你有什么建议吗?
提前致谢。