我有一个主节点,它经常使用 MPI_Bcast 广播一条消息。问题是,我有一个特定节点需要比其他节点运行得慢一些,并且说它只会参与 bcast 一半的时间。所以它就像:
// -- iteration 1
Master: MPI_Bcast(msg1)
Node1: MPI_Bcast(msg1)
Node2: MPI_Bcast(msg1)
Node0: MPI_Bcast(msg1)
// -- iteration 2
Master: MPI_Bcast(msg2)
Node1: MPI_Bcast(msg2)
Node2: MPI_Bcast(msg2)
Node0: DoSomethingImportantAndDontParticipateInBcast()
// -- iteration 3
Master: MPI_Bcast(msg3)
Node1: MPI_Bcast(msg3)
Node2: MPI_Bcast(msg3)
Node0: MPI_Bcast(msg3)
这可能吗?请注意,在最后一次迭代中,我希望 Node0 接收 msg3 而不是 msg2(它被忽略了)。