我正在尝试实施主从计划。
我的主人有工人要做的工作。工人每完成一项工作,他就向主人要求一份新工作,主人把它发给他。工人们正在计算最小路径。当一个worker找到一个比他得到的全局最小值更好的最小值时,他会将它发送给包括master在内的每个人。
我计划让工人和主人使用MPI_ISEND
. 另外,我认为接收应该是阻塞的。当没有人请求工作或更新最佳结果时,master 无事可做,因此他应该阻塞等待接收。此外,每个工人都应该在完成工作后等待接收以获取新的。
不过,我不确定使用非阻塞异步发送和阻塞同步接收的影响。
我认为另一种方法是使用MPI_IPROBE
,但我不确定这会给我带来任何优化。
请帮助我了解我所做的是否正确。这是正确的解决方案吗?