我试图使用MPI(MPMD通信)来沟通两个不同的进程。其中一个使用GLUT来渲染一些基于另一个进程发送的数据而生成的数据。Glut + MPI_Send,实际上并没有阻止
我的问题是,在初始化阶段,“消费者”(使用GLUT的人)将某些配置数据发送到“生产者”,但似乎MPI_Send调用没有被阻止。例如,我从消费者向生产者发送4条不同的消息,每条消息都有不同的标签。它似乎工作正常。然后我评论第一个MPI_Send,而不改变另一个进程的代码(这意味着它们都不应该分别超过第一个MPI_Send和MPI_Recv)。问题在于发送者发送了所有这三个消息,并且似乎每个MPI_Send都返回MPI_SUCCESS,因为在每个MPI_Send打印消息对应的正确进化之后我做了测试。同时,接收器不会进步。
我试图在简单的应用程序中重现此行为,没有GLUT,他们的工作。但与此同时,我认为没有理由让GLUT引起这个问题。你有什么建议吗?
在此先感谢。
您错误地将_synchronous behaviour_与_blocking_相混淆。 –