【发布时间】:2013-08-13 21:42:41
【问题描述】:
我有 41 台计算机在同一个局域网上使用 MPI。 MPI 在这些机器上运行良好,没有任何问题。我想通过随机选择使用其中一个向其他 40 台计算机发送浮点数。我的意思是主分配器计算机将随机选择一个主机并向它发送一个浮点数。这个过程将被重复执行。这 40 个主机将使用这些浮点数进行计算。出于某些“启发式优化”的原因,需要随机选择。因此,对于发送浮点数,可能会经常选择一些主机,可能很少选择一些主机(可能永远不会选择)。
我试图通过阅读文档和使用示例来理解阻塞和非阻塞通信。结果,我看到我不能使用MPI_Send 和MPI_Recv 进行我提到的随机选择。因为,接收主机必须等待分发计算机的发送过程,而无需进行任何收益计算,这是其阻塞模型的性质。 MPI_ISend 和 MPI_IRecv 可能有用,但我找不到方法。因为我发现的示例程序大多使用MPI_Wait。最终,这些程序也等待来自分发计算机的数据而不做任何事情。 我的主机必须检查消息,但如果没有消息,它必须使用初始浮点数值或之前收到的值继续其自己的计算。
我该怎么做?至少,哪些函数可以用于此目的。
感谢阅读
【问题讨论】: