2014-03-31 97 views
0

我想在MPI中執行一個實現,我在同一臺機器上(本地主機)調用多個從站(最多4個),並將我for循環的計算分佈在從站之間。 MPI適合我當前的應用程序,我不能採用openMP路線。 涉及的變量大約是50,全部都是一維數組。 將50個變量發送到主進程的最佳方式是什麼?我應該發送還是接收所有變量,還是應該將它們打包在一個2D數組中,並將此數組發送給主數據? 我正在尋找一種高效且計算便宜的方法。在MPI中傳遞多個變量

謝謝

回答

0

像往常一樣:這取決於。如果您的單個陣列足夠大,延遲變得微不足道,那麼單獨發送每個陣列就可以了。否則,通過將所有這些數組收集到一個數組中來增加消息的大小會更好。 如果你的變量是不同類型的,你可以使用MPI數據類型來描述數據的佈局。

此外,如果您需要從多個進程收集此數據,使用MPI_Gather或其變體之一可能是一個好主意。 也可能是,在您的情況下,一個可行的選擇是利用MPI提供的單側通信工具。