2017-05-21 37 views
0

我想確定MPI中非阻塞點對點通信的開銷。有一些基準測試可用(如Sandia MPI Micro-Benchmark SuiteOSU micro-benchmarks),但由於某些原因,它們不區分MPI提供的發送模式(標準,就緒,緩衝,同步)和僅使用標準模式。 MPI報告指出非阻塞點對點通信中發送模式對MPI開銷的影響

在這種模式下,由MPI決定是否將傳出消息緩衝。 MPI可能緩衝傳出消息。在這種情況下,發送呼叫可能會在調用匹配接收之前完成。另一方面,出於性能原因,緩衝區空間可能不可用,或者MPI可能選擇不緩衝出去的消息。在這種情況下,發送呼叫將不會完成,直到發送匹配的接收,並且數據已被移至 接收器。

我認爲將消息寫入緩衝區可能與將消息直接發送給接收方(可能物理上很遠,通過低帶寬連接等進行連接)具有不同的性能。所以我的問題是,我的假設是否是錯誤的,緩衝發送和準備發送之間沒有任何顯着的性能差異(如果是,爲什麼) - 或者這些基準是否忽略了這些可能的差異(如果是,爲什麼) 。

回答

0

你的理解是正確的,緩衝和非緩衝發送的性能可以不同。如果您致電MPI_Send,MPI實施可以根據消息大小,系統架構,網絡速度和許多其他變量來選擇使用哪種機制。通常,緩衝發送用於小消息,同步發送用於大消息。

它是recommended,即MPI應用程序開發人員堅持使用MPI_Send並依靠MPI實現提供最佳性能。因此,大多數MPI基準還報告了MPI_Send的性能,而不是其他常用的模式。