0
我想發送兩個數組:double A
和int B
在MPI中使用廣播(我正在使用C++)。通常,communicator.Bcast
爲讀者,但不爲作家。所以,如果我這樣做:兩個MPI廣播一個接一個
communicator.Bcast(A, a_len, ...)
communicator.Bcast(B, b_len, ...)
它可能會發生,某些進程會先檢索第二條消息,事情會搞砸。
我想知道,這個問題的好,乾淨的解決方案是什麼?我應該使用派生數據類型/ MPI_Pack?看起來很醜陋。我能以某種方式在廣播中強制使用TAG嗎?
值得一提的是,只要集體呼叫的順序在所有等級中相同,保證就存在。否則,行爲是不確定的。 –