我正在尝试实现主人计划。在MPI中使用非阻塞发送和阻塞接收?
我的主人有工人打算做的工作。每次工人完成一项工作,他都会向主人请求一份新工作,并由主人将其发送给他。工人正在计算最小路径。当一个工人发现一个比他获得的全球最小值更好的最小值时,他将它发送给每个人,包括主人。
我计划让工人和主人用MPI_ISEND
发送数据。另外,我认为接收应该被阻止。当没有人要求工作或更新最佳结果时,主人无事可做,所以他应该阻止等待接收。另外,每个工人在完成工作之后都应该等待领取新工具。
尽管如此,我不知道的使用异步非阻塞发送的影响,并阻止同步接收。
另一个我认为是使用MPI_IPROBE
,但我不确定这会给我任何优化。
请帮我理解我在做什么是对的。这是正确的解决方案吗?