0
我有一個主節點,每隔一段時間使用MPI_Bcast廣播消息。問題是,我有一個特定節點需要比其他節點運行慢一點,並且說,它只會在一半時間內參加bcast。所以它像:MPI - 如果MPI_Bcast()發送的消息未在其中一個節點中收到(不會調用MPI_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(忽略它)。
*發送*和*廣播*在MPI中表示不同的東西,並且有多種類型的發送。請解釋更多。 –
@HighPerformanceMark我已經更新了這個問題。謝謝。 tbh,我不確定我完全理解MPI廣播,所以請讓我知道如果我失去了一些東西(我希望我不是) – Mel
這是一個錯誤的程序。 MPI集體必須集體呼叫。故事結局。 – Jeff